Software Testing and Quality Assurance questions for Computer Science and MCA

Write a short note on CMM.

What is CMM?
  • CMM stands for Capability Maturity Model.
  • It is a development model used to develop and refine an organization's software development process.
Uses of CMM
  • It is used as a benchmark for assessing different organizations for equivalent comparison.
  • It can be used to assess an organization against a scale of five process maturity levels.
There are five levels of CMM:

1. Initial
2. Repeatable
3. Defined
4. Managed
5. Optimizing

Each level ranks the organization according to its standardization of processes.

Levels of CMM

Level I - Initial
  • This level is a basis for comparison with the next levels.
  • At this stage, the conditions are not stable for the development of quality software.
  • The results of any software project here absolutely depend on the manager and the programmer's experience. If managers or programmers leave the company, the quality of product will decrease.
Level II- Repeatable
  • At this level, some processes are repeatable; possibly with consistent results.
  • The project management technologies are introduced. This project planning and management is dependent on experience and there exists a special quality management group.
  • At critical times, the process tends to roll back to the initial level.
Level III - Defined
  • At this stage, there are sets of defined and documented standard processes established.
  • These standard processes are used to establish consistency of process performance across the organization.
Level IV - Managed
  • At this level, an organization monitors and controls its own process through data collection and analysis.
  • It uses process metrics, management can effectively control the AS-IS process for software development.
Level V - Optimizing
  • At this level, the focus is on continually improving process performance through both incremental and innovative technological changes.
  • Here, the processes are constantly being improved through feedback from current processes and introducing innovative processes to provide organization's needs.