Course Process

What is Maintainability Testing?

Maintainability Testing is performed to evaluate the software or system’s ability to get modified without any issues and to satisfy and meet the requirement change and needs of the user. Once the system is deployed to the production environment, it requires maintenance.

The software is expected to undergo several changes to fix defects, add new functionalities, modify the existing functionalities, and changes in non-functional characteristics of software. It is a very important testing type throughout the software life cycle as it analyzes and tests the system which is subjected to changes. This type of testing ensures the flexible implementation of the modifications in the system.

The ISO25010 standard defines five sub characteristics for maintainability:

Modularity – The degree to which a system or module is composed of discrete components so that a change to one component has minimal impact on other components.

Reusability – The degree to which an assertion can be used in more than one system determines the system’s reusability.

Analyzability – The degree of effectiveness and efficiency with which it is possible to assess the impact on a system, of the change, or to diagnose a product for deficiencies or causes of failures, or to identify parts to be modified.

Modifiability – The degree to which a product or system can be effectively and efficiently modified without introducing defects or degrading existing product quality.

Testability  The degree of effectiveness and efficiency with which test criteria can be established for a system. Tests can be performed to determine if the criteria have been met.


Checklist of Maintainability Testing

  1. Testers verify the development of the standards for structured programming, standards for database approach, and standards for user interfaces.
  2. Verify the input, processing, and output whether they are implemented separately
  3. Verifying the reusability feature by assigning proper parameters with necessary conditions for programs.
  4. Verify the system is properly distributed and algorithms are optimized.
  5. Verify the system is distributed.


Categories of Maintainability Testing

Corrective maintenance: It suggests fixing the problems. The maintainability of the system is measured by the amount of time required to diagnose and fix the problems as soon as it is identified.

Perfective maintenance: It suggests the system’s modifications. The maintainability of the system is measured by the amount of effort required to make enhancements to the system.

Adaptive maintenance: It suggests adaptiveness to the changes in the special environment. This is used to test the changes in the environment. The effort required to make the adaptations required by the system.

Preventive maintenance: It suggests the actions for reducing expenditures, needed for system support. It refers to reduce future maintenance costs.


Factors used in maintainability assessment

  1. Size
  2. Maintainers’ perception
  3. Complexity
  4. Environmental facilities
  5. Structure
  6. Maintenance relationships
  7. Development process
  8. System users/customers
  9. Documentation
  10. Maintenance team
  11. Development team
  12. Test facilities
  13. Development timescale
  14. Operating procedures
  15. Maintenance procedures
  16. Problem change traffic
  17. Development relationships
  18. Business change in traffic



Maintainability testing shall be measured in the following ways:

Static testing – shall be measured as the percentage of the total specified maintainability factors assessed.

Examples of static measurements are:

  1. The volume of the code which is measured by lines-of-code
  2. The cyclomatic complexity of a unit or the system as a whole
  3. Comment to code ratio
  4. Nesting depth of decision statements
  5. Coupling parameter by measuring the number of data items passed between modules

Dynamic testing as a percentage of the specified maintainability requirements which have been exercised.

Examples of dynamic measurements are:

  1. Elapsed time for implementing a change
  2. Stability of the system determine through mean time between failures