Monday, April 14, 2008

Who says testers needs to know programming?

In the last couple of talks I had with a few testing colleagues of mine, I found out that some persisted that testers will be trained in the future with programming skills as a must in their portfolio. They presented a job activity request that testers will be engaged in code inspection, in root cause analysis of problems in the code and finding patterns of problems in the future. All of that plus test automation in code level.

Are we or should we go into that direction? Maybe: we [testers] are known as people who like to know more, want to find how to break things and build them better [improving processes]. But, the simple truth is that we are also interested in systems thinking and systems view, and NOT going into code is something I saw attracting testers into the profession many times in my career.
Testers are specializing in systems testing; they are familiar with the system architecture, requirements, and studied the processes and end to end scenarios that are possible from client perspective - all clients profiles are relevant not just the ones that are most common. So, I can say that these testers are not less professionals, representing the client perspective, are capable or testing the product with its many aspects.
Do we need to go into a future where every tester needs to know programming? I do not believe so. But, we should have some testers do that – I suggest they shall be the ones having the most technical tendency. Some others with a more process orientation, and wide system view should keep on doing mainly what they have been doing so far – kick the hell out of the system’s processes.
So, to summarize our discussion (or is it just a beginning...), in my eyes we shall probably need two kinds of testers in the future:

Technical approach – a tester that would have to know code, be involved in a more close relationship with the developers, knows how to read code, and try to influence developers in testing better (with their code).
Customer-like approach – a tester that would have to know the product on a super customer level, knows the different architecture and design aspects, the end to end possible scenarios or customer stories, that the customer might exercise with the product.
Both approaches may be going hand in hand, enableing us to get from detection to prevention when exercising the testing profession.

2 comments:

Dani Almog said...

I do agree with the notion that the testing profession may (in the future)be devided into two diferent paths.
I see increasing need for deep knowlage and understanding the code and programing. In the other end of the scope - the supper user approach is more suitable when facing a customer.
sometimes I am wandering - are we talking about the same people?
there are offcourse some common technology and partices - even with that I wander can a tester examine correctily a componenet of software with out be familier with object oriantation development?
Dani

Unknown said...

Well, a tester can examine a component of software. But that can be achieved only if there is a special professional development of testers in that direction - meaning in programming skills oriented to testing and automation.

We see that already happening in the Agile arena, where testers are deep inside the code, working side by side with development programmers. So now we may call them "development programmers" and "Automation & Test Programmers".
Alon