Blog

Using the Testing Maturity Model to improve Quality Assurance Process

The Testing Maturity Model is a great framework for improving an organization’s testing and Quality Assurance process to make sure that projects are delivered on time and within the client’s budget.

Being that reliability and providing high-quality deliverables are key values of 303 Software, we put the Testing Maturity Model to use for adopting the best practices for our testing process.

The Testing Maturity Model, developed by the Illinois Institute of Technology, follows a staged architecture for creating models that improve the testing process. The key focus in creating this staged architecture is to evolve an organization’s testing process from being unmanaged and ad hoc to one that is managed, defined, measured, and optimizable.

The process of integrating the Testing Maturity Model is broken out into five different phases:

Phase 1

In this first phase, the testing model of the organization isn’t clearly defined, and is often relegated to simple “debugging” and whose main purpose is to show that the software works, rather than providing a quality product.

Phase 2

The next phase of the model is to bring the testing process to a level where it is separate from debugging and is clearly defined as a phase that follows coding. Following this phase, the organization’s primary goal of testing should not be simply to show that the software works, but that it meets the stated specifications. The testing process, in other words, is starting to “mature.” The three main goals to accomplish this phase are:

Develop testing and debugging tools

Initiate a testing planning process

Integrate basic testing techniques into the testing process

Phase 3

At this phase, testing has become a process that occurs at every stage of the software life cycle. Doing so allows for less time spent later on having to fix problems that could be pre-empted at an earlier stage of the software cycle, such as in the planning phase. The control of testing from the beginning allows for less deviations to occur and that all testing is going according to plan. Testing in this phase is recognized as a professional activity, and is done by members of the team that have gone through technical training. The four main goals to accomplish this phase are:

Establish a software test organization

Establish a technical training program

Integrate testing into the software life cycle

Control and monitor testing

Phase 4

This phase of the model should mark a point when the testing process has almost matured. Testing at this phase becomes a process that is measured, quantified, and integrates a review process at all phases of the development process so that the finished product is of higher quality. Defects within the code are detected and evaluated, with priority and severity levels set and all defects are collected for future test use cases. The three main goals to accomplish this phase are:

Establish an organization-wide review program

Establish a test measurement program

Evaluate software quality

Phase 5

The final phase of the model marks a point where the testing process is fully mature. At this point, the previous phases should establish a solid infrastructure for testing that ensures that the testing process is defined and managed. The cost effectiveness of testing is monitored, and testing is at a point where it is continuously improving. Defects are often prevented, and quality control is practiced efficiently. Automated testing tools are also useful at this level, preventing common defects in the system from occurring. The three main goals of this phase are:

Defect prevention

Quality control optimization

Test process optimization

The ever growing complexity of software applications means that an organization’s QA process needs to be assessed and meet industry-level standards. This helps the organization know where its software stands in comparison to other software on the market, and increases the quality and reliability of the finished software. These are key things that 303 Software takes to mind in our own testing processes, and is what has allowed both our QA processes, as well as our overall work, to mature.