The seven-step software testing process follows the “V” concept of testing (see Figure 6-1). The V represents both the software development process and the seven-step soft- ware testing process. Both processes commence at the same time and proceed concur- rently through the end of the project. Note that step 7, post-implementation analysis, will occur for both the development process and the test process. The purpose of this analysis is to determine whether development and/or testing can be performed more effectively in the future.
Figure 6-1 The seven-step software testing process.
A brief overview of the seven-step software testing process follows: 1. Organizing for testing
a. Define test scope. Determine which type of testing is to be performed. b. Organize the test team.Determine, based on the type of testing to be per-
formed, who should be assigned to the test team.
c. Assess development plan and status. This is a prerequisite to building the test plan that will be used to evaluate the software implementation plan. During this step, testers will challenge the completeness and correctness of the development plan. Based on the extensiveness and completeness of the project plan, the testers will be in a position to estimate the amount of resources they will need to test the implemented software solution. 2. Developing the test plan
a. Perform risk analysis.Identify the test risks.
Define Requirements Design Software Build Software Install Software Operate and Maintain Software Step 1 Organizing for Testing
Chapter 7
Step 2 Developing the Test Plan
Chapter 8 Step 3 Verification Testing Chapter 9 Step 4 Validation Testing Chapter 10 Step 5
Analyzing and Reporting Test Results Chapter 11
Step 6
Acceptance and Operational Testing Chapter 12 Step 7 Post-Implementation Analysis Chapter 13 Development of Software Independent Test of Software
b. Write the test plan.Forming the plan for testing will follow the same pat- tern as any software planning process. The structure of all plans should be the same, but the content will vary based on the degree of risk the testers perceive as associated with the software being developed.
3. Verification testing
a. Test software requirements.Incomplete, inaccurate, or inconsistent requirements lead to most software failures. The inability to get the right requirements during the requirements phase will increase the cost of imple- mentation significantly. Testers, through verification, must determine that the requirements are accurate and complete and that they do not conflict with one another.
b. Test software design.This step tests both external and internal design through the verification techniques. The testers are concerned that the design will in fact achieve the objectives of the project as well as being effective and efficient on the designated hardware.
c. Test software construction.The method chosen to build the software from the internal design document will determine the type and extensiveness of tests needed. As the construction becomes more automated, less testing will be required during this phase. However, if software is constructed by a manual coding process, it is subject to error and should be verified. Experi- ence has shown that it is significantly cheaper to identify defects during the construction phase than through dynamic testing during the validation test- ing step.
4. Validation testing
a. Perform validation testing.This involves the testing of code in a dynamic state. The approach, methods, and tools specified in the test plan will be used to validate that the executable codes meets the stated software require- ments and the structural specifications of the design.
b. Record test results.Document the results achieved through testing. 5. Analyzing and reporting test results
a. Analyze the test results.Examine the results of testing to determine where action is required because of variance between “what is” and “what should be.”
b. Develop test reports.Test reporting is a continuous process. It may be both oral and written. It is important that defects and concerns be reported to the appropriate parties as early as possible so that the can be corrected at the lowest possible cost.
6. Acceptance and operational testing
a. Perform acceptance testing.Acceptance testing enables users of the software to evaluate the applicability and usability of the software in performing their day-to-day job functions. This tests what the user believes the software should perform, as opposed to what the documented requirements state the software should perform.
b. Test software installation.Once the test team has confirmed that the soft- ware is ready for production, the ability to execute that software in a pro- duction environment should be tested. This tests the interface to operating software, related software, and operating procedures.
c. Test software changes.While this is shown as step 6 in the context of per- forming maintenance after the software is implemented, the concept is also applicable to changes throughout the implementation process. Whenever requirements change, the test plan must change, and the impact of that change on software systems must be tested and evaluated.
7. Post-implementation analysis. Test improvements can best be achieved by evaluating the effectiveness of testing at the end of each software test assign- ment. Although this assessment is primarily performed by the testers, it should involve the developers, users of the software, and quality assurance profession- als if the function exists in the IT organization.