[Article] Do Testers Need Programming Skills ?

Many freshers (especially people with CS background) does not take up the first job as QA engineer and the reason they give is that many organizations give preference to people with development skills even while hiring people for testing positions. This raises the question does the testers need to be coders ? Some blogs report that organization like Microsoft hire the coders for test positions because they want to automate everything and eliminate manual testing. Automation is just one part of testing. But testers who understand programming and CS concepts have better analysis skills for testing. Testers with development skills can find the bugs earlier in development cycle and also find the cause for the bug. This also helps them in finding other places in code where there can be similar errors. I, personally feel that people with programming skills always makes better testers. Does this mean all the testers without programming knowledge be fired ?- of course not. Its always an option to have creative people as testers than bad programmers. An organization cannot have all the testers to have programming knowledge as well, with industry facing shortage of quality programmers. Microsoft seems to have found a way out of this by creating two different job profiles SDET and STE. SDET needs to have good programming skills as they are used for automation and debugging. But even this did'nt seem to have solved the problem completely. Can read more about SDET Vs STE here. Many of the testers currently are non programming people and may not agree with my views. Feel free to give your comments.


  1. Anonymous6:25 AM

    It depends on the context and application under test.

    Every project needs to consider what kind of resources and skills are needed.

    Finding out on whether a tester has programming skills is usually the wrong focus.


  2. Mallik,

    Hiring people with a development background or in-depth technical knowledge is simply not something that Microsoft is doing; but many companies in the industry are changing their hiring practices and targeting CS graduates. Also, MS did not make this change simply due to a need for greater automation, but specifically for the reasons you mention above. Also, to add to your list a tester who has a coding background can also participate in specification/requirement inspections, code reviews, they can debug problems, perform root cause analysis, and identify patterns, perform in-depth analysis, and yes, even develop tools for defect prevention.

    The assumption that testers who code are not creative is simply gross underestimate of a person's abilities. MS hires testers primarily based on the character traits found in any great tester, but we also require greater technical depth and prefer coding abilities which simply increases the overall value of the test engineer to the organization.

    And contrary to what some people want to believe, this cultural shift in the industry is not a fad, and as I said, I talk with more and more companies around the world who are requiring greater skills from their testers than simply the ability to pound out bugs from the keyboard.

    - Bj -

  3. Hey Rollison, I never mentioned that "testers who code are not creative" in the article. Also I was recently talking to one of guy from Microsoft and he said that MS is removing the STE profile and outsourcing the black box testing to services companies like TCS and Wipro. Does this mean one day Microsoft will have only testers with coding knowledge (SDET)?

  4. I've mentioned it previously, but it really depends on the context.

    No matter what two people you put together, skilled or not skilled in programming, I bet if they go to test something they will come up with different results.

    Focus on the requirements, or as James Bach keeps saying, 'The Mission'(!) If you only have one day to test something would you do automated tests, unit testing, exploratory testing?

    In an ideal world we would have all the resources and budget at hand, but from experience it is not the case.

    To say Black Box testing is losing it's sheen is wrong. With user's expecations increasingly high it would be unwise lower it's value.

    Software testing has not always been viewed as a seperate career path, we are fortunate that things have changed. However, it's now the case that you are not just a 'tester'. What kind of a tester are you? What do you specialise in? I can think of at least 5 specialities within software testing. There is now no way that someone can be an expert in them all.

    Rosie Sherry

  5. Rosiesherry, you have rightly pointed out that "No matter what two people you put together, skilled or not skilled in programming, I bet if they go to test something they will come up with different results." I agree that there should be diversity in the team and have already mentioned in article that its better to have both kind of people but my question was regarding the point raised by BJ Rollison about the change in hiring practices.

  6. If tester go for unit testing he should have programming skills else not..A quality tester have find out hidden bugs,may not worst programmer..if programmer comes into testing he should have testing skills

  7. I think,a tester mightn't need any programming skills as he will become a good tester where his own arena.In fact,he has some knowledge in programming skills which that is more enough to writing TSLs.In most cases tester doesn't need to do any unit testing.