What is Maintainability testing in software?

It basically defines that how easy it is to maintain the system. This means that how easy it is to analyze, change and test the application or product.

Maintainability testing shall use a model of the maintainability requirements of the software/system. The maintainability testing shall be specified in terms of the effort required to effect a change under each of the following four categories:

  • Corrective maintenance – Correcting problems. The maintainability of a system can be measured in terms of the time taken to diagnose and fix problems identified within that system.
  • Perfective maintenance –  Enhancements. The maintainability of a system can also be measured in terms of the effort taken to make required enhancements to that system. This can be tested  by recording the time taken to achieve a new piece of identifiable functionality such as a change to the database, etc. A number of similar tests should be run and an average time calculated. The outcome will be that it is possible to give an average effort required to implement specified functionality. This can be compared against a target effort and an assessment made as to whether requirements are met.
  • Adaptive maintenance – Adapting to changes in environment. The maintainability of a system can also be measured in terms on the effort required to make required adaptations to that system. This can be measured in the way described above for perfective maintainability testing.
  • Preventive maintenance – Actions to reduce future maintenance costs. This refers to actions to reduce future maintenance costs.