|
Effective Software Testing: 50 Specific Ways to Improve Your Testing
The knowledge of what constitutes a successful, end-to-end software testing effort is typically gained through experience. In this new book, noted testing expert Elfriede Dustin imparts the best of her collected wisdom. She presents fifty specific tips for a better testing program. These fifty tips are divided into ten sections, and presented so as
to mirror the chronology of a software project. Using this book as a guide and reference, quality assurance professionals will be better able to insure the quality of their next application. While testing has historically been viewed as an afterthought in the grand scheme of software engineering, the success of an application, and possibly an organization, can rest on the shoulders of the testing team. That's because the testing program functions as the final quality gate for an application. Testing allows or denies the transition of an application into the market. There are a multitude of seemingly minor tasks that must be performed and managed by the testing team.
Contents:
Preface
Acknowledgments
I
REQUIREMENTS PHASE
1
Involve Testers from the Beginning
2
Verify the Requirements
3
Design Test Procedures as Soon as Requirements Are Available
4
Ensure That Requirement Changes Are Communicated
5
Beware of Developing and Testing Based on an Existing System
II
TEST PLANNING
6
Understand the Task at Hand and the Related Testing Goal
7
Consider the Risks
8
Base Testing Efforts on a Prioritized Feature Schedule
9
Keep Software Issues in Mind
10
Acquire Effective Test Data
11
Plan for the Test Environment
12
Estimate Test Preparation and Execution
III
THE TESTING TEAM
13
Define the Roles and Responsibilities
14
Require a Mixture of Testing Skills, Subject Matter Expertise, and Experience
15
Evaluate the Testers' Effectiveness
IV
THE SYSTEM ARCHITECTURE
16
Understand the Architecture and Underlying Components
17
Verify That the System Supports Testability
18
Use Logging to Increase System Testability
19
Verify That the System Supports Debug vs
Release Execution Modes
V
TEST DESIGN AND DOCUMENTATION
20
Divide and Conquer
21
Mandate the Use of a Test Procedure Template, and Other Test Design Standards
22
Derive Effective Test Cases from Requirements
23
Treat Test Procedures as Living Documents
24
Use System Design and Prototypes
25
Use Proven Testing Techniques When Designing Test Case Scenarios
26
Avoid Constraints and Detailed Data Elements in Test Procedures
27
Apply Exploratory Testing
VI
UNIT TESTING
28
Structure the Development Approach to Support Effective Unit Testing
29
Develop Unit Tests in Parallel or before the Implementation
30
Make Unit Test Execution Part of the Build Process
VII
AUTOMATED TESTING TOOLS
31
Be Aware of the Different Types of Testing Support Tools
32
Consider Building a Tool Instead of Buying One
33
Be Aware of the Impact of Automated Tools on the Testing Effort
34
Focus on the Needs of Your Organization
35
Test the Tools on an Application Prototype
VIII
AUTOMATED TESTING-SELECTED BEST PRACTICES
36
Do Not Rely Solely on Capture/Playback
37
Develop a Test Harness When Necessary
38
Use Proven Test Script Development Techniques
39
Automate Regression Tests Whenever Possible
40
Implement Automated Builds and Smoke-Tests
IX
NONFUNCTIONAL TESTING
41
Do Not Make Nonfunctional Testing an Afterthought
42
Conduct Performance Testing with Production Sized Databases
43
Tailor Usability Tests to the Intended Audience
44
Consider All Aspects of Security, for Specific Requirements and System-Wide
45
Investigate the System's Implementation to Plan for Concurrency Tests
46
Setup an Efficient Environment for Compatibility Testing
X
MANAGING THE TEST EXECUTION
47
Clearly Define the Beginning and the End of the Test Execution Cycle
48
Isolate the Test Environment from the Development Environment
49
Implement a Defect Tracking Life-Cycle
50
Track the Execution of the Test Program
Index
0201794292T08272002
Brief Description:
Emphasises on the integration of testing into various phases of the software development life cycle, from requirements definition to design and final coding. This book includes fifty lessons that focus on the key aspects of software testing: test planning, design, documentation, execution, unit testing, automated testing, and more.
|