“All models are wrong, but some are useful.” – George E. P. Box
IT has many useful models for addressing the complexity of developing, delivering and running software. Well known models include the Capability Maturity Model Integration (CMMI®), the Information Technology Infrastructure Library (ITIL®) and the Test Maturity Model Integration (TMMi®) to name a few.
Testing is a mechanism for affecting product quality. The definition is of quality is varied, ranging from precise (Crosby – “Conformance to requirements”) to meta-physical (Juran – “Quality is an attitude or state of mind”). Without a standard model of testing that codifies a definition, it is difficult to determine whether testing is affecting quality in a positive manner. The TMMi is an independent test maturity model. It is a reference model representing an abstract framework of interlinked concepts based on expert opinions. The Wikipedia definition suggests that reference model can be used as a communication vehicle for ideas and concepts among the members of the model’s community. The use of a model as a tool to define the boundaries of a community also amplifies its usefulness as a communication tool as it defines the language the community uses to describe itself. The TMMi is a reference model of testing for the testing community defining the boundaries of testing, the language of testing and a path for process improvement and assessment.
Many developers (and development managers) think of testing as a group of activities that occur at the end of coding. This flies in the face of software engineering practice since the 1980s and the Agile tenant of integrating testing into the entire development process. The TMMi model explicitly details a framework in which testing is not an event or gate that has to be hurdled, but rather a set of activities that stretch across the development lifecycle (waterfall, iterative or Agile). A model provides a framework of the activities and processes that need to be addressed rather merely laying out a set of milestones or events that need to be followed explicitly. The TMMi model extends the boundary of testing to entire development process.
The TMMi model lays out a set five maturity levels and sixteen process areas ranging from test environment to defect prevention. The model is has a similar feel to the classic CMMI model. Since the model provides a set of definitions and a language to talk about testing and how it integrates into development, it provides the mechanism for members of the testing community to communicate more effectively.
The TMMi, through its framework of maturity levels, process areas, practices and sub-practices, lays out best practices for testing that should be considered when developing testing practices. Like other reference models, the TMMi provides a framework but does not prescribe how any project or organization should do any of the practices or sub-practices. By not prescribing how practices are to be implemented, the TMMi can be used in any organization that includes testing. A framework that is neutral to lean, Agile or waterfall practices that points that communicates best practices provides a tool to identify and pursue process improvement is a tool that can be molded by managers and practitioners to make testing more efficient and effective.