Test Process Improvement
Nowadays, software systems became a consistent part of our lives, rapidly growing in size and complexity. Forced by competition and the tendency to shorter commercial life cycles (especially in the consumer product market), the quality of products becomes a vital aspect of success. Hence, assuring the quality of products becomes as important as software specification, design, usability, etc.
The area of software testing has been overlooked long enough, even though it has existed as long as development. The turning point for taking software testing into account and recognizing it as a separate branch of software development was 1979 when Glenford Myers published his famous “The Art of Software Testing”. In his book Myers described various testing techniques, proposed a systematic test approach, raising the awareness that software testing is a separate discipline. As every revolutionary idea, it took several years for the IT community to digest and apply Myers’s ideas. However, in the second half of the 1980s, the effects became visible in the USA IT market. This approach affected the European market in the 1990s, and the era of Software testing started.
However, not all was so rosy. Many companies struggled with the concept of the software testing process. Questions arose: What is the testing process? How should the test process improvement be organized and implemented? How should you embed it into the organization? What are the consequences of it? In short, guidance for the process of test process improvement was in need, as well as a method to measure the maturity level of testing.
The satisfactory test process today, doesn't guarantee that in future there won’t be a necessity to improve it. Mature companies continually review their testing process, are proactive and always forward in thinking. The ability to have testing standards along with a constant improvement strategy for meeting both company and customer needs is what we call company maturity. Here, the concept of the test improvement process becomes vital.
Today, there are several standard models for the test improvement process, created and applied especially for testing. These models are:
● Testing Maturity Model integration (TMMi)
● Test Process Improvement (TPI) Next
● Critical Testing Processes (CTP)
● Systematic Test and Evaluation Process (STEP)
The basic idea behind TMM is that every organization goes through
● "debugging-oriented' period, where testing was merely seen as an activity to help remove bugs,
● "destruction-oriented period, where implementation faults are detected,
● "evaluation-oriented" period, when the requirements, design, and implementation faults are detected
● "prevention-oriented" period, where the scope of testing is broadly defined and includes review activities, with the primary goal to prevent requirement, design and implementation fault.
During the TPI next model, each testing process aspect (test planning, test metrics, test environment, etc.) is covered by 16 predefined areas. This model has 4 maturity levels – initial, controlled, efficient and, optimizing. Each of these 16 areas is evaluated using predefined checkpoints at each maturity level. Based on evaluation results, a maturity matrix is developed to assist in visualizing and summarizing key areas.Critical Testing Processes (CTP)
Critical Testing Processes (CTP) model defines that some testing processes are critical. Proper execution will lead to successfully supported critical processes. This model is a content reference model and identifies 12 critical test processes.
The CTP model is integrated within any SDLC model. It uses metrics to compare companies against best practices and averages in the industry, which are defined from interviews with participants.
STEP is a content reference model that states the start of the testing process from the software product requirements gathering phase and continues until the system retires. It insists on “testing before coding” through a requirement based test strategy. This ensures that test cases are written early, which in turn states that the requirements are correct before design and coding begins.
These models for improving test processes can lead the overall IT industry to achieve greater maturity level and professionalism.
● Increase effectiveness and efficiency of test activities
● Align testing with organizational priorities and with other project processes
● Improve value of testing to the organization
● Improve overall software quality
● Reduce down time
● Reduce errors
● Enhance compliance
● More efficient and effective business operations
● Long-term reduction in the cost of testing
● Long-term reduction in the length of the test process
● Effective base-lining and evaluation tool to determine if the test improvements and benefits envisaged are being achieved