Revision factor testing classes
9.5.3 Revision factor testing classes
Easy revision of software is a fundamental factor assuring a software pack- age’s successful, long service and its successful sales to larger user populations. Related to these features are the revision testing classes dis- cussed in this section:
Maintainability tests
Flexibility tests
Testability tests.
206 Maintainability tests
9 The importance of software maintenance and maintainability can never be
overestimated; consider the fact that these functions consume more than
Softw
60% of total design and programming resources invested in a software sys- tem throughout its life cycle (Pressman, 2000). Although estimates of the
are tes
share of maintenance resources vary – from over 50% as reported by Lientz and Swanson (1980) and 65–75% as reported by McKee (1984) – their sig- nificance remains undeniable.
ting – str
Maintainability tests relate mainly to these issues: (1) The system structure abides by the standards and development proce-
dures imposed on the specific components for support of future
a tegies
maintenance activities, including the modular structure of self-contained modules and module size.
(2) The programmer’s manual is prepared according to approved documen- tation standards and provides complete system documentation.
(3) The internal documentation incorporated in the software code is pre- pared according to coding procedures and conventions and fully covers the system’s documentation requirements.
Software qualification testing is the software quality assurance tool preferred for checking adherence to maintainability requirements as in issue (1) above (see Section 9.4.4). Testing adherence to the requirements of issues (2) and (3) fall in the scope of programmer’s documentation testing and are per- formed unless included in the user documentation tests (see Section 9.5.2).
Flexibility tests Software system flexibility refers to the system’s capabilities, based on its structural and programming characteristics. These factors significantly affect the efforts required to adapt the software to the variety of customer needs as well as to introduce changes initiated by customers and maintenance teams for the purpose of improving system functionality.
Flexibility tests are intended to test the software characteristics that sup- port flexibility, such as adequate modular structure and application of parametric options to provide a wide range of possible applications.
Testability tests Testability requirements deal with the ease of testing the software system.
Thus, testability here relates to the addition of special features in the pro- gram that help the testers in their work, such as the possibility of obtaining intermediate results for certain checkpoints and predefined log files. Although often overlooked, these special testing support features should be specified in the requirements document as integral to the functional soft- ware requirements.
Another objective of testability deals with diagnostic tool applications 207 implemented for the analysis of the system performance and the report of
9.5 Bl
any failure found. Some features of this kind are activated automatically
when starting the software package or during regular operation and report whenever conditions warranting alarm arise. Other features of this type may
ac
be activated by the operator or maintenance technician. Testability is particu-
larly crucial for support of control rooms of large operating systems (e.g.,
ox
electricity plants) and for maintenance teams, especially with respect to diag-
nosis of failures. Maintenance support applications of this type may be
te
sting
activated at the customer site and/or at some remote help desk support center.
Testability tests will be carried out for applications of both types, as noted in the requirement specifications. The tests should relate mainly to aspects of correctness, documentation and availability, as already discussed.