Maintainability testing shall use a model of the maintainability requirements of the software/system. The maintainability requirements shall be specified in terms of the effort required to effect a change under each of the following four categories:
§ Corrective maintenance - correcting problems
§ Perfective maintenance - enhancements
§ Adaptive maintenance - adapting to changes in environment
§ Preventive maintenance - actions to reduce future maintenance costs
Maintainability may be tested statically and/or dynamically. Whether testing is undertaken statically or dynamically the objective remains to evaluate the actual or likely effort required to effect change in any (or all) of the circumstances outlined above.
Static maintainability testing is undertaken by carrying out an assessment of the maintainability of the system. The factors considered in such an assessment include complexity, structure, etc. The assessment is carried out through a series of reviews with each factor being assigned a weighting to reflect its importance (to the overall maintainability of the system) and a score to indicate the degree to which the factor is present (the lower the score the greater the maintainability). The products of this assessment are then summed to arrive at an overall maintainability measure for the system in question. Static maintainability tests are considered to be passed when the maintainability measure from the assessment is at or below the value specified in the maintainability requirements.
Dynamic maintainability testing is undertaken by executing typical maintenance activities on the system and measuring the effort spent (the impact of maintenance activities). Dynamic maintainability tests are considered to pass when the record of testing shows that the effort expended was less than (or equal to) that specified. The inputs to the tests are the maintainability actions, with the expected output being the effort expected to undertake these actions.
An advantage can be obtained by performing static and dynamic testing on a system with the results of dynamic tests being used to validate the maintainability score obtained during the maintainability assessment.
Maintainability testing shall be measured in the following ways:
§ Static testing – shall be measured as the percentage of the total specified maintainability factors assessed.
§ Dynamic testing – as a percentage of the specified maintainability requirements which have been exercised.