One of the job descriptions for my work these days is that “I write code to test code”. And this sounds so familiar.
In a recent book “How Google tests software”, it is discussed in detail so as in what different ways Google engineers perform testing. The book is detailed and filled with practical experiences and it is not possible to explain the concept in this little window. But one thing is sure: almost every engineer there writes code to test code. Excerpts from Chapter 1 about the three dominant roles in engineering terms:
“SWEs (software engineers) write a lot of test code, including test-driven design (TDD), unit tests, …”
“SETs (software engineer in test) also spend close to 100 percent of their time writing code, but they do so in service of quality rather than coding features a customer might use.”
“Some Google TEs (test engineers) spend a good deal of their time writing code in the form of automation scripts and code that drives usage scenarios and even mimics the user.”
If I depict this picture as above where the numbered circles represent some engineer in a team, and that engineer may be totally focused on programming or testing activities, or it may have a mix.
The example from Google above means that they live by numbers 3, 5 & 4. (home work: relate these numbers with the roles mentioned above)
Some teams are against the idea of dedicated testers and they live by number 1, 3 & 5.
Some people are against the idea of “testers writing code”, they live by the number 1 & 2. But beware as more and more testing jobs need programming skills.
What are the numbers being used in your team? And how you think “write code to test code” is changing the numbers?