Typical maintainability objectives of affected stakeholders (e.g., the software owner or operator) include:
Maintainability tests should be included in a test strategy and/or test approach where one or more of the following factors apply:
Appropriate techniques for maintainability testing include static analysis and reviews should be started as soon as the design documents are available and should continue throughout the code implementation effort. Since maintainability is built into the code and the documentation for each individual code component, maintainability can be evaluated early in the lifecycle without having to wait for a completed and running system.
Dynamic maintainability testing focuses on the documented procedures developed for maintaining a particular application (e.g., for performing software upgrades). Selections of maintenance scenarios are used as test cases to ensure the required service levels are attainable with the documented procedures. This form of testing is particularly relevant where the underlying infrastructure is complex, and support procedures may involve multiple departments/organizations. This form of testing may take place as part of Operational Acceptance Testing (OAT).