How hard can it be? Testing software, after all is not ‘rocket science’. Further, if you know that you have intelligent developers and subject matter experts, you may feel that you have all of the bases covered when it comes to software testing. Not so fast….
On average, organizations industry-wide deliver software containing 15-50 defects for every thousand lines of code. This means major defects (or bugs) are slipping past your testers, and the costs for companies and users are in the billions. SDLC Partners’ CTO Alan Lawson has a great theory on why this occurs. “The best developers are actually sometimes the worst testers, because as a developer you’ve designed this thing in your head. You know how it’s supposed to work. You’ve spent all of your energy to make sure it works… when you test it, guess what? It “appears” to work.”
On the surface, decisions about what to test seem straightforward. Screens and functionality that are commonly used should be tested thoroughly. Potential mathematical errors which could result in critical failures are carefully scrutinized. But how closely are you assessing and planning these decisions? How do you know when something is stable enough to concentrate testing efforts elsewhere?
As Alan Lawson advised in his recent Techburgher interview, “Testing is a real professional discipline. Informal testing is not going to get you where you need to be.” Alan continued on to introduce the concept of a “Benevolent Saboteur,” which is the perfect way to describe the precarious role a truly talented and experienced software tester takes on every day. To find the most potentially dangerous, damaging, and expensive bugs early in the process is the greatest success of a software tester. As Alan noted, “Finding a bug early is a cause for celebration; finding it after you’ve gone to production is a tragedy.” In order to find bugs early, Alan and his team use a technique called “Risk-Based Testing”. The main idea in a risk-based approach is that you bring testers into the project early in the lifecycle, with the goal of identifying the core functions that may contain the highest complexity and greatest potential failure costs. Since testing resources are limited, it is important to concentrate testing activities on the areas of the software that represent the greatest risk. With advanced tools and techniques, you can dramatically improve not only your release cycles and efficiency of your software development organization, but also directly impact lifecycle costs and corporate perception. None of this happens by chance, and simply buying software testing tools won’t take you very far either. The best solution includes the right mix of experienced technical professionals, an intentional and proven approach to quality, and the right tools being used in the best way for your specific situation.
Feel free to share your insights into increasing quality and customer satisfaction using people, processes, and tools.
Please contact Marc Mann at firstname.lastname@example.org with any questions on this blog post or to further discuss software testing.