In the previous post, we described the famous testing V-Model. This time we introduce you to testing levels based on Test process maturity, Beizer’s Testing Levels. We will introduce you to software testing based on the remarkable book, Introduction To Software Testing by Paul Ammann and Jeff Offutt.
Bori’s Beizer wrote a must-read book to become a skilled tester, Software Testing Techniques.
Software Testing Levels Based On Test Process Maturity
Process maturity is very similar to personal maturity. We are all revolutionary-minded until we get our first paycheck. We are immediately sober when we realize how much of paycheck is going to Government spending account.
Your organization is at level zero when there is no difference between debugging and testing. Ther is nothing wrong when developers use debugging tools to test their program. The problem is that they use only a few inputs/outputs, mostly chosen just to pass the happy path, or input/output comes from the senior developer. This is testing, but not enough testing.
It is the 21st century, and you probably worked at Level 1 organization where the purpose of testing is to show that software works. Happy paths are your business.
The purpose of testing is to show that software does not work. Testing coverage is much broader than in Level 1, but the problem becomes a conflict between testers and developers. Tester mindset becomes to find failures, and developers become very defensive and start rejecting bug reports.
The purpose of testing is not to prove anything but to reduce the risks of using the software. Welcome to modern testing.
Testing can show presence, but not the absence of bugs [Dijkstra].
Using the software, we are always at risk. The risk could be insignificant or could be significant. Testers and developers are not in conflict but work together to identify and reduce the risk.
Testing is a mental discipline that helps the whole team to produce high-quality software. Testers and developers are one team, and they put their mindset on software quality. Testers define what quality is and how to measure it. They teach developers what quality is and how to test software with quality in mind. Beizer uses a spell checker analogy. Spell checker identifies errors but also teaches us how to spell correctly.
At which Beizer level is your testing organization?