8 responses

  1. AlanPage
    May 28, 2013

    A University is not a vocational school. If you want to “train” a tester, there are many courses (and certificate programs) one could take regardless of background.
    A computer science degree is not training on how to be a programmer. A CS program provides theory and breadth around computers and software that, if one is able to pragmatically apply to software development, may help them get a job.
    I’m not entirely against a software testing degree (although a minor, or a specialization seems more realistic) – I just find it ludicrous to assume that the purpose of universities is to provide job training.

    • Lorinda Brandon
      May 28, 2013

      Hi Alan,

      point taken. I never meant to imply that a university would provide job training. I would hope that a Software Testing degree would do the same as a CS degree would – there is just as much methodology, philosophy and technique in software testing and, in my opinion, a degree program (either major or minor) would not only provide that same breadth and theory you refer to but also would expose software testing as a career opportunity for software professionals.

    • weethomas
      May 30, 2013

      By that argument, we shouldn’t immediately hire CS grads to do software development until they go through a vocational school specifically for that purpose.

    • BrianWilkins29
      June 26, 2013

      For a number of years, the universities role was to produce professional jobs. Doctors, lawyers, etc all learn theory but the university provided vocational training. People go to school to learn a profession to make money.

  2. Dude Abides
    May 29, 2013

    A Degree in software testing…I could see this a course in a program but not a full degree. The skills that need to be developed in this field are far too reaching for a limited scope program. Example: Courses like Chemistry help you learn pricipals like the scientific method which knowing helps me immensily in my career and Critical Thinking (Philosophy) help me understand false arguments coworkers and superiors often put on you when a problem is difficult or not understood. Chances are this is not the path a Software Testing Degree would have you go on.

  3. Anonymous
    May 29, 2013

    Honestly, you say point #2 is “lying to yourself” but after working at some major corporations: Warner Bros., Yahoo, eHarmony, NBC Universal… I’ve helped hire and not hire many candidates.

    I have to say I don’t really care what school a candidate comes from. We’ve hired many graduates with great looking resumes and lots of seeming potential, only to see lazy, worthless candidates step through the door… Padded resume’s are all too common. There have been several resumes land on my desk to review… and I see “Software Engineering major” who is well versed in “Java, C++, TDD, BDD…” all the catches… all those nice things we’re looking for… only to find out in a phone interview their depth is lacking everywhere.

    Conversely, I’ve brought on candidates with no college background, who have hit home runs – write automation suites, learned languages on the job (without any help from developers). I personally don’t know a Manager or Director who really cares about the college background anymore. What I look for is not just knowledge but eagerness to learn, drive and dedication. Which usually is found in a self taught tester. That self taught tester could have gone to MIT, or never stepped foot on a college campus. But if a tester can answer some questions on a phone interview that show me they not only know about technology (SQL, nosql, automation, etc.) but have a drive to improve and grow… and that what they have done is self taught – because… in this industry we all become self taught. Agile companies will not train people. People have to learn on their own. What you learn in school is already outdates in a Agile company. So the candidate must show signs of self teaching, for me to be willing to look at them.

    In fact, a case in point – I worked one job where we brought on Software Engineers in Test (SDET’s). The goal being they would first come on as testers writing code, and then transition to software development. These SDET’s were from well known colleges that they came from. These candidates were smart, but lacking in real world experience. Whether they studied a sub major in software testing, honestly wouldn’t impress me as much as someone doing it on their own and showing me the work they’ve accomplished (prototypes.)

    When I used to interview, I’d first prototype an automation of the companies website… walk in the door and run it for them… then answer their tech questions. I think that speaks louder the the college background. That’s what I look for in bringing on QA. That attitude. Not the “well we learned XYZ” but rather “I went out and learned this… and I’m willing to learn more.”

    • weethomas
      May 30, 2013

      The point is, given a choice of only calling one of those graduates for an interview, you’d call the Computer Science grad, not the Journalism grad. You may not have noticed, the schools were MIT and Harvard – so the point there was that you could assume that both candidates were well educated in their respective fields. So given a choice between bringing in a CS grad and a journalism grad who both have impeccable credentials in their respective fields for a testing job, you’re likely going to pick the CS grad even though the journalism grad has “programming” experience and is well versed at “investigative” techniques.

  4. Sean Toner
    July 3, 2013

    I tend to disagree that a separate degree is needed to be a Software Test Engineer. One of my favorite epigrams from Alan Perlis is #7:

    “It is easier to write an incorrect program than understand a correct one.”

    This implies that it is actually _harder_ to be a software tester (at least a white box one) than a developer. I have spent about equal time as a developer (currently a linux driver developer) and as a FW Test Engineer. Admittedly, I was mostly a white box and integration test engineer, but you had to know how to both read and write code. And in fact, I wrote orders of magnitude more code as a Test Engineer than as a developer.

    I analogized to my boss why you can’t just write a script in a day or two. I explained it like this, “Does it make any sense for a teacher to give a test to a student, but before handing out the test asks, ‘Can you tell me what the answers to this question are before I hand out the test?’.” But that is what many test organizations do…they allow the developer to tell testers if a test case was successful or not. That is the proverbial fox guarding the hen house.

    The reply I get back is, “well, you should have a spec that gives you the answer. You shouldn’t even have to know how the code works to tell if the test was successful or not”. To which I reply that is often not the case at all. Firstly, even if you have a spec, specs are human written languages. They are not formal languages like a computer language is. Ever seen a “should” or “may” or “undefined” in a spec before? They are all over the place.

    So this goes to my second favorite quote from Richard Feynman:

    “What I can not build, I do not understand”.

    And how can you test something you don’t understand? Black box testers withstanding, other testers should understand how a product works in order to test it. How will they know where the weak points in the product are (the corner cases)? How will they know if code paths are ever getting tested? How will they decipher odd messages in logs? How will they know how to automate tests unless they understand the protocol of the product?

    In other words…testers ARE developers. They just write software to test and understand other software. I do not work in the database/web programming world, and testers in the hardware world do not have pre-built tools like Selenium or GUI macro recorders to do the testing for us. Very often we had to write the low-level tools that interfaced with the hardware in order to test it. One criticism I have shared with developers is that Test Engineers often throw a defect over the wall and say “hey developer, you deal with it”. The trouble is there is little to no triaging done. When I was testing SAS controllers, maybe it was the firmware, or the driver, or even the C shared library we used to make ioctls to the driver. I imagine the same is true in the “software” world; was it a front end javascript problem, a SQL query that hung up a server, or maybe some Java back end code in the Tomcat servlet container? When a Test engineer just frivolously assigns a defect to a developer because he has no idea how the code works, it wastes the developers time if it goes to the wrong developer for him to troubleshoot (and developers spend more time debugging and fixing than writing new code for new projects…so any time saved here is very important)

    As I mentioned, I wrote literally orders of magnitude more code as a Test Engineer than as a developer (though admittedly, most of it was in higher level languages like python or Java, but I did still write more C++ code than I have C code as a driver developer). It’s unfortunate that Test Engineers are thought of as inferior or less capable than “real” developers. But have a separate major for Test Engineering? Nah…I don’t think so. I don’t see Civil Test Engineering or Mechanical Test Engineering or Electrical Test Engineering.

Leave a Reply




Back to top
mobile desktop