System and Software Testing Strategies
This chapter deals with the design and implementation of a testing strategy in system and software development. Such testing is necessary in order to increase the probability that the software or system developed by the development organization meets customer needs and performs according to specifications. The goal of such efforts is to ensure that the delivered product will gain acceptability of users and to provide feedback and insights to developers so that they can improve and monitor development processes. Organizations at Level 5 of the CMMI are able to make efficient use of such feedback, while organizations at low maturity levels are using testing as a final attempt to prevent problems from reaching the customer.
We begin this chapter with a section on the design of a test strategy, followed by sections on test strategy implementation, the analysis of test data, and the assessment of testing effectiveness and efficiency using STAM—the Software Trouble Assessment Matrix. We include in this chapter a discussion on the newly evolving field of software cybernetics as a method for facilitating the monitoring and control of a testing program. We conclude the chapter with an introduction to software reliability models. The mathematical details of the software reliability models are included in an appendix to this chapter; they require a proper mathematical background and can be skipped without loss of continuity.