In present times it is difficult for the software industry to make zero defect products due to the size and complexity of the software increases rapidly with customers and users demanding more and more in less time. Although the industry has invested substantial effort to improve the quality of its products, it seems achieving zero defects are like catching the sun in the sky or looking for a black hole spread in the universe. To improve the quality of the product, the industry has often focused on improving its development process and less focus on the QA testing activities. Earlier testing was considered as debugging oriented during which most software development organizations had not differentiated between the testing and debugging.
The Capability Maturity Model integration (CMMi v1.3) often regarded as the industry standard for software process improvement, having a global acceptance with more and more organizations opting for the certifications, yet it focuses only 30% to 40% of testing activities. In recent years there have been numerous test models that have been evolved but none of them made the global acceptance due to lack of awareness or was restricted only to group of industries and academics.
Test Maturity Model integration (TMMi v3.1) is developed by TMMi Foundation, a testing community of experts specializing in testing arena, which helps in filling up the gap for the CMMi and various test models, is positioned as a complimentary model to CMMi. TMMi has been developed as a staged model that uses predefined sets of process areas to define an improvement path for the organization.
TMMi contains stages or levels through which an organization passes as its testing process evolves from ad hoc test process to managed, defined, measured and optimized. Achieving each stage or level ensures that a foundation for the next stage has been laid for the adequate improvement. The five levels in the TMMi prescribe a maturity hierarchy with an evolutionary path to test process improvement.
TMMi recognizes testing as chaotic with undefined test process and testing is often considered as part of debugging in the organization. Most likely the success in the organization is determined by the heroic deeds or the risks are accepted by the customers and users. The organizations are often characterized by over commitment, abandoning of processes in crisis times, and an inability to repeat the successes. There are no key processes involved at this level and is highly recommended for the advancement into next level.
Testing is a managed process that clearly separates it from debugging and helps to ensure that the existing practices are retained during times of stress. The main objective of software testing is to verify that the product satisfies its requirements. However, testing is still perceived by many stakeholders as being a project phase that follows right after coding. In this level testing is recognized as multileveled ranging from unit to acceptance test. For each identified test level there are specific objectives defined in the organization-wide or program-wide test strategy. The process areas at level 2 are:
At this level, organizations understand the importance of reviews in quality control and implement a formal review program linked to dynamic test process. Testing is fully integrated into the development lifecycle and the associated milestones. At this level test process improvement is fully institutionalized as part of the test organization’s accepted practices and testing is perceived as a profession. The process areas at level 3 are:
At this level testing becomes a measured process for the implementation of the Level 2 and Level 3 process areas to encourage further growth and accomplishment of the test organization. Testing is perceived as evaluation that consists of all testing lifecycle activities concerned with validation and verification for a product or related work products.
With respect to product quality, the presence of a measurement program allows an organization to implement a product quality evaluation process by defining quality needs, quality attributes and quality metrics. Products or related work products are evaluated using quantitative criteria for quality attributes such as reliability, usability and maintainability.
Level 4 also covers establishing a coordinated test approach between peer reviews of static testing and dynamic testing and the usage of peer reviews results and data to optimize the test approach with both aiming at making test more effective and more efficient. Peer reviews are directly integrated with dynamic testing process and is a part of the test strategy, test plan and test approach. The process areas at level 4 are:
At level 5, an organization is capable of continuously improving its processes based on a quantitative understanding of statistically controlled processes. Improving test process performance is carried out through incremental and innovative process and technological improvements. The testing methods and techniques are optimized and there is continuous focus on fine-tuning and process improvement. The defect prevention process area is established to identify and analyze common causes of defects across development lifecycle and define actions to prevent similar defects from occurring in the future. Test process optimization process area introduces mechanisms to fine-tune and continuously improve testing. The process areas at level 5 are:
To summarize, TMMi process areas provide wide support and a more detailed specification of what is required to establish a defined verification and validation process. TMMi framework addresses all test levels (including static and dynamic testing) of structured testing (test lifecycle, techniques, infrastructure and test organization). TMMi provides an excellent reference model to aid in test process improvement for both internal and external customers and suppliers.