The Capability Maturity Model Integration (CMMI) is a process model that provides a lucid definition of the process improvement approach which examines whether an organization’s current processes are in place and helps them identify their strengths and weaknesses. The essence of CMMI is to produce quality software.
CMMI is a tool provided by SEI which helps organizations standardize design, implementation and testing of software to increase its quality. According to CMMI, the most important features required to build great software are five ‘Maturity Levels’ or three ‘Capability Levels’ bundled together in a comprehensive model. CMMI supports the development teams to understand the current processes, learn what worked in previous projects and implement standards that will help increase the quality of their software products in the future.
The difference between ‘capability level’ and ‘maturity level’
Both these levels are closely related and often depend on each other. To measure the attained improvement in individual process areas Capability level is used, whereas maturity level determines the improvements achieved in multiple process areas.
Benefits of CMMI processes in software testing:
Implementation of CMMI in testing a software application
Many software test departments are not interested in the implementation of software development standards. I think that the reason behind not implementing CMMI is perceptual.
Test engineers are not considered as part of the product delivered to the customer, hence the test software is not really required to CMMI development processes. While some test engineers would like to follow a standard process like CMMI, the time restrictions for project delivery make following a rigorous development process very challenging.
However since the past few years, some test software teams have started incorporating CMMI in their testing processes. This implementation has been motivated by the increasing importance of software in testing and the benefits that design departments have seen after following the standard.
When CMMI model is implemented in testing:
CMMI can be effectively implemented as follows
The CMMI model is not limited to processes alone. Enterprises can apply it to people, work groups, teams, rules and projects. To implement CMMI in your organization:
Mapping of software testing with CMMI
Test and requirements
Procedure of verification or validation
Testing in the software life cycle
Integration sequences
Integration procedures
Interfaces
Following the best test practices mentioned below, you can achieve CMMI levels in your enterprise:
Test management
I can confidently say that CMMI contributes towards a valuable support environment for test managers and test leads or checklist for setting up processes. While considering CMMI level 2, some important recommendations are mentioned for test leaders and mangers. There are a many real examples related to software testing and related areas. CMMI focuses much more on the testing aspects but it is not a dedicated test improvement model. Verification and validation are an integral part of the overall development process. It expands the scope of and visibility of the product lifecycle and testing activities to confirm that the product meets client’s expectations. CMMI incorporates various lessons from the best practices in measurement, risk management and test management. It also helps implementation of robust high-maturity practices and fully complies with ISO standards.
References:
http://blog.testing-whiz.com/2012/05/capability-maturity-model-integration.html
http://www.process-park.de/fileadmin/031215_CMMI%2BTest_Slides_revised.pdf