The software world is changing by the minute. Testing software that is constantly changing is a daunting task, especially when market share and profitability depends on quick delivery. You may be hunting and searching for ‘test process improvement best practices’ but don’t be in the rush to embark on a software test process improvement effort such as CMMI, TPI, TMMi, etc. without basic essentials. Here are things to keep in mind:
1) Why are you changing the process? What is not working? What is working right? You must be able to answer these questions in order to ensure you are not throwing out a perfectly good system. The main reason should be to improve the quality and therefore the profitability of your product. If you can’t show your changes will result in this, maybe you shouldn’t make the changes.
Example: A health care software provider realized their processes were not working right because of the large amount of rework that had to be done. Software had to be rewritten because of vague requirements. Bad configuration control caused defects which were fixed to reappear. They were able to clearly identify what wasn’t working and had a clear mission on what to improve.
2) How will you measure success? No severe defects found after production? More defects found earlier in the SW Development Life Cycle? Keep the end in mind and have checkups along the way to make sure that you are going in the right direction.
Example: An oil exploration company had a problem that a large number on defects were being found late in the SDLC. This caused too many severe defects to found in production. The ratio of defects found in integration test to defects found in acceptance tests to defects found in the field became a real clear measurement of how much they were improving.
3) Good processes can’t replace good people. An experienced and knowledgeable tester can make a test process improvement work magnificently, while test monkeys can make any process improvement seem like a failure.
Example: An oil rig software provider decided it had to radically improve it’s testing processes. They adopted all the latest testing strategies, and test plans and thought that they could get anyone to do the testing. They had detailed test cases which they thought would give them 100% coverage, but soon realized that good experienced knowledgeable testers are indispensable and that most defects are found during exploratory testing. A good tester can find 10 times the amount of defects, and more severe defects than a novice or any test case. While test cases are necessary to ensure basic functionality, new functionality and nuances in testing real life user scenarios are difficult to automate and difficult for inexperienced testers to execute.
These 3 basic elements should come before embarking on a test process improvement best practices effort. Don’t make the mistake of forgetting common sense and overlooking the basics.