1.Requirements Phase 1
Item 1:Involve Testers from the Beginning 3
Item 2:Verify the Requirements 5
Item 3:Design Test Procedures As Soon As Requirements Are Available 11
Item 4:Ensure That Requirement Changes Are Communicated 15
Item 5:Beware of Developing and Testing Based on an Existing System 19
2.Test Planning 23
Item 6:Understand the Task At Hand and the Related Testing Goal 25
Item 7:Consider the Risks 31
Item 8:Base Testing Efforts on a Prioritized Feature Schedule 39
Item 9:Keep Software Issues in Mind 41
Item 10:Acquire Effective Test Data 43
Item 11:Plan the Test Environment 47
Item 12:Estimate Test Preparation and Execution Time 51
3.The Testing Team 63
Item 13:Define Roles and Responsibilities 65
Item 14:Require a Mixture of Testing Skills,Subject-Matter Expertise,and Experience 75
Item 15:Evaluate the Tester's Effectiveness 79
4.The System Architecture 91
Item 16:Understand the Architecture and Underlying Components 93
Item 17:Verify That the System Supports Testability 97
Item 18:Use Logging to Increase System Testability 99
Item 19:Verify That the System Supports Debug and Release Execution Modes 103
5.Test Design and Documentation 107
Item 20:Divide and Conquer 109
Item 21:Mandate the Use of a Test-Procedure Template and Other Test-Design Standards 115
Item 22:Derive Effective Test Cases from Requirements 121
Item 23:Treat Test Procedures As"Living"Documents 125
Item 24:Utilize System Design and Prototypes 127
Item 25:Use Proven Testing Techniques when Designing Test-Case Scenarios 129
Item 26:Avoid Including Constraints and Detailed Data Elements within Test Procedures 135
Item 27:Apply Exploratory Testing 139
6.Unit Testing 143
Item 28:Structure the Development Approach to Support Effective Unit Testing 145
Item 29:Develop Unit Tests in Parallel or Before the Implementation 151
Item 30:Make Unit-Test Execution Part of the Build Process 155
7.Automated Testing Tools 159
Item 31:Know the Different Types of Testing-Support Tools 161
Item 32:Consider Building a Tool Instead of Buying One 167
Item 33:Know the Impact of Automated Tools on the Testing Effort 171
Item 34:Focus on the Needs of Your Organization 177
Item35:Test the Tools on an Application Prototype 183
8.Automated Testing:Selected Best Practices 185
Item 36:Do Not Rely Solely on Capture/Playback 187
Item 37:Develop a Test Harness When Necessary 191
Item 38:Use Proven Test-Script Development Techniques 197
Item 39:Automate Regression Tests When Feasible 201
Item 40:Implement Automated Builds and Smoke Tests 207
9.Nonfunctional Testing 211
Item 41:Do Not Make Nonfunctional Testing an Afterthought 213
Item 42:Conduct Performance Testing with Production-Sized Databases 217
Item 43:Tailor Usability Tests to the Intended Audience 221
Item 44:Consider All Aspects of Security,for Specific Requirements and System-Wide 225
Item 45:Investigate the System's Implementation To Plan for Concurrency Tests 229
Item 46:Set Up an Efficient Environment for Compatibility Testing 235
10.Managing Test Execution 239
Item 47:Clearly Define the Beginning and End of the Test-Execution Cycle 241
Item 48:Isolate the Test Environment from the Development Environment 245
Item 49:Implement a Defect-Tracking Life Cycle 247
Item 50:Track the Execution of the Testing Program 255