Developing a Rapid Testing Strategy
If you were to analyze your current software development process for ways to improve testing efficiency, where in the process would you look? Would you start by looking at the way you conduct test planning? At the means and contents of your automation? What about your defect tracking system?
Our approach in this book will be to look at every phase of the software process from the viewpoint of the test engineer to see if there is a way to speed up testing while maintaining or improving quality. The image we have in mind is one of you sitting in the "test engineer's swivel chair," turning to look at every aspect of the development process to see if you can prevent defects from escaping that phase of the process, or to see if you can extract information from that phase that will speed up your test effort.
Before we can take a detailed look at each phase of the software development process from the testing perspective, we need to lay some groundwork. In this chapter we define basic terms and concepts of software testing, and provide an overview of the software development process. Then we examine each phase of a typical development process to see how the efficiency and speed of testing can be improved. When examining each development phase, we bear the following questions in mind.
Is there any action that the test team can take during this phase that will prevent defects from escaping?
Is there any action that the test team can take during this phase that will help manage risk to the development schedule?
Is there any information that can be extracted from this phase that will allow the test team to speed up planning, test case development, or test execution?
If a test process is designed around the answers to these questions, both the speed of testing and the quality of the final product should be enhanced.