TMMi is a worldwide standard for test process improvement. It is a well-researched model with international support that enables companies to understand the test process maturity and identify opportunities to perfect it in software development cycles.
TMMi (or software testing maturity model integration) was designed in 2005 to incorporate approved components from existing models to address relevant needs and trends. It is a test maturity model that has compliance with international testing standards. It provides guidelines for developing testing capabilities. Companies can apply TMMi to a number of software development life cycles to improve common testing challenges.
TMMi is an independent model, applicable to any methodology or business type. It is represented by the concept of maturity levels, which are easy to understand and use globally.
Structure of Software Testing Maturity Model
TMMi has the concept of levels through which an organization goes through while evaluating whether the system satisfies specific requirements.
TMMi is a staged model with five levels and a few process areas in each of them (except the first one). All five steps represent a logical hierarchy and evolutionary path. Every process area in the structure of TMMI is executed at each level without a possibility of being skipped. To achieve the goal, a company has to finish the levels gradually.
- Level 1 – Initial. Level 1 has no process areas and practices. There are no maturity goals as well. Procedures for determining test conditions are not used. Tests tend to be chaotic and performed in random processes. They serve as a part of debugging. It is the simplest phase, automatically achieved by any team.
- Level 2 – Managed. Tests as a managed process. Testing separates from debugging and development activities. The level has a different approach and a defined strategy. For example, a defined unit testing process with clear techniques and criteria. There is a test planning, which may occur not as early as expected. The Managed level has five process areas: test policy and strategy, planning (risk analysis and estimation), control (product quality and resources), design and execution, and environment. It is defined by frequent deliveries, time-boxed review meetings, defect prioritization, and focus on functionality.
- Level 3 – Defined. Tests are integrated into a development lifecycle. Testing is fully documented. Comprehensive and detailed reports allow a team to compare results across projects. The process is represented by early involvement of testing on the start, defined test life cycle, and constant feedback. At this stage, a team proceeds to non-functional testing. The existing process areas are test organization, training program, life cycle and integration, non-functional testing, and peer reviews (a fundamental part of the process).
- Level 4 – Measured. Tests are thoroughly designed and measured. The main characteristic of current level is the evaluation of software products. There is test measurement and product quality evaluation rather than looking for defects only. Measuring performance and usability help organizations to learn how to improve. At this stage, they can perfect product quality across all levels. More detailed reports are available (what was planned to achieve, what was achieved, what was predicted, etc.)
- Level 5 – Optimisation. Tests are continually improved (the process never stops). This level is characterized by process quality control and a major focus on defect prevention. Technological improvements are identified and applied. This level focuses on test process optimization, which means continuous involvement of new technologies and tools. Testing techniques and methods are regularly enhanced. Special attention is given to process efficiency and effectiveness. Defect prevention over defect detection. At this stage, the main focus is on quality control and test process optimization.
Achieving each level step-by-step ensures the company has made the required number of changes. They will become the underlying basis for the next level. To get maximum results in a relatively short period of time, a team is recommended to focus attention and efforts on a manageable number of process areas.
Why Use TMMi?
TMMi is essential for evaluating and improving a testing process. Unlike CMM/CMMi (capability maturity model integration), it is specifically created for that. TMMi enhances quality, provides adequate support, and helps to maintain test productivity. The most visible benefits of adopting this particular model are test predictability and reliability. They contribute to efficiency.
So, the first and the main reason a company might want to adopt TMMi is enhanced software quality. The second one is the possibility to discover bugs in the production phase. Higher quality and the ability to detect errors early lead to better productivity of test engineering and risk mitigation, which is always a priority. For that reason, a company gets improved customer satisfaction.
One more motivation for the adoption of the test maturity model is reduced costs. Even though it can be the least visible benefit for a company. If the only goal is to decrease costs or it is something a company gives priority to, TMMi is not an ideal option. It is suitable for those organizations looking to enhance product quality first. Among other less visible benefits of adopting TMMi are improving business alignment, accelerating software delivery, and increasing the prestige of a team.
How to Adopt TMMi?
A company starts with identifying its maturity level and defining whether it is active. The next step is setting a task and structuring the process. A company decides on what should be accomplished to satisfy a specific process area. What is going to be executed to get there? The review and feedback are continually required. The teams that are able to adopt a more mature test process achieve higher levels of integration.
Though the software community understands that a zero-defect standard is unachievable, TMMI model helps at least to get close to that standard. It is another attempt to get there.