Monday, September 12, 2016

The Ideal

I have written a lot of posts on what the tester should be or do. Now I would like to address the ideal way to implement automation testing in a company. Remember that I have not done the research officially on anything I state. However, by working for a company or two and then talking to some developers and testers from other companies, I have collected the following thoughts on how to improve. I am also very aware of how there are individual circumstances of companies that do not allow the ideal to happen and have taken that into account for all of my thoughts. There are three points I would like to address, they are numbers, cost, and speed.
To start this off let’s talk about the numbers. I think there should be a manual tester and automation tester for every team of developers. I know someone might say that it would be a waste, but if they really think about it then one can see it. Ideally, the manual tester doing exploratory/integration testing and writing up the test cases and have the automation tester automating those test cases and doing regression testing on anything not written in time for regression testing. The reason companies commonly give for not doing more of this is the money.
Let’s now talk about the money. What does it cost to have two testers(automation and manual) per programming team? Let us set up a theoretical example. If you pay a manual tester $60,000 per year (see indeed) and you pay a Automation tester $79000 per year (see indeed). You pay a software engineer $94000 (see indeed). Each team has 5 developers per team. Alright, the odds that you find a bug earlier with 2 testers is more probable than 1. An automation tester gives more time to the manual tester with automating all the redundancy. Which means the manual tester can focus more on the new stuff, which means the bugs are found earlier. When bugs are found earlier you save the company money.  What does it cost to find a bug earlier than later? Steve Connell presented this graph in his book “Code Complete”
I think this graph does the best job at displaying the importance of finding bugs early. If we take a look at the lines and the how each of the lines represent the number of bugs found at various phases and the cost of the bugs at those various phases. See how it goes from $25 to $16000, where $16000 is the cost to repair defect bugs after release and $25 is the cost to repair the bug in coding phase.
The ideal of each software company is to release the product or new addition to the product as quickly as possible with as minimal amount of bugs as possible. With a automation tester automating every redundancy that is given, the manual tester can get to the integration testing as quickly as possible. Meaning that you get to release sooner. In some big companies they have it set up in such a way that it only takes a day in the sprint to test the new stuff and then they can release with high confidence.

In summary the ideal testing setup of a company is to have an automation tester and manual tester on every programming team. This will keep costs low by finding bugs early. This will also keep speeds high because you have the constant automation of any redundancy going on.

No comments :

Post a Comment