Wednesday, January 12, 2011

Some Ideas for Effective Software Testing

Requirements Phase
  • Idea 1: Involve Testers from the Beginning
  • Idea 2: Verify the Requirements
  • Idea 3: Design Test Procedures As Soon As Requirements Are Available
  • Idea 4: Ensure That Requirement Changes Are Communicated
  • Idea 5: Beware of Developing and Testing Based on an Existing System

Test Planning
  • Idea 6: Understand the Task At Hand and the Related Testing Goal
  • Idea 7: Consider the Risks
  • Idea 8: Base Testing Efforts on a Prioritized Feature Schedule
  • Idea 9: Keep Software Issues in Mind
  • Idea 10: Acquire Effective Test Data
  • Idea 11: Plan the Test Environment
  • Idea 12: Estimate Test Preparation and Execution Time

The Testing Team
  • Idea 13: Define Roles and Responsibilities
  • Idea 14: Require a Mixture of Testing Skills, Subject-Matter Expertise, and Experience
  • Idea 15: Evaluate the Tester's Effectiveness

The System Architecture
  • Idea 16: Understand the Architecture and Underlying Components
  • Idea 17: Verify That the System Supports Testability
  • Idea 18: Use Logging to Increase System Testability
  • Idea 19: Verify That the System Supports Debug and Release Execution Modes

Test Design and Documentation
  • Idea 20: Divide and Conquer
  • Idea 21: Mandate the Use of a Test-Procedure Template and Other Test-Design Standards
  • Idea 22: Derive Effective Test Cases from Requirements
  • Idea 23: Treat Test Procedures As "Living" Documents
  • Idea 24: Utilize System Design and Prototypes
  • Idea 25: Use Proven Testing Techniques when Designing Test-Case Scenarios
  • Idea 26: Avoid Including Constraints and Detailed Data Elements within Test Procedures
  • Idea 27: Apply Exploratory Testing

Unit Testing
  • Idea 28: Structure the Development Approach to Support Effective Unit Testing
  • Idea 29: Develop Unit Tests in Parallel or Before the Implementation
  • Idea 30: Make Unit-Test Execution Part of the Build Process

Automated Testing Tools
  • Idea 31: Know the Different Types of Testing-Support Tools
  • Idea 32: Consider Building a Tool Instead of Buying One
  • Idea 33: Know the Impact of Automated Tools on the Testing Effort
  • Idea 34: Focus on the Needs of Your Organization
  • Idea 35: Test the Tools on an Application Prototype

Automated Testing: Selected Best Practices
  • Idea 36: Do Not Rely Solely on Capture/Playback
  • Idea 37: Develop a Test Harness When Necessary
  • Idea 38: Use Proven Test-Script Development Techniques
  • Idea 39: Automate Regression Tests When Feasible
  • Idea 40: Implement Automated Builds and Smoke Tests

Nonfunctional Testing
  • Idea 41: Do Not Make Nonfunctional Testing an Afterthought
  • Idea 42: Conduct Performance Testing with Production-Sized Databases
  • Idea 43: Tailor Usability Tests to the Intended Audience
  • Idea 44: Consider All Aspects of Security, for Specific Requirements and System-Wide
  • Idea 45: Investigate the System's Implementation To Plan for Concurrency Tests
  • Idea 46: Set Up an Efficient Environment for Compatibility Testing

Managing Test Execution
  • Idea 47: Clearly Define the Beginning and End of the Test-Execution Cycle
  • Idea 48: Isolate the Test Environment from the Development Environment
  • Idea 49: Implement a Defect-Tracking Life Cycle
  • Idea 50: Track the Execution of the Testing Program

Reference:
  • Effective software testing : 50 specific ways to improve your testing / Elfriede Dustin.

1 comment:

  1. Reference: Effective software testing : 50 specific ways to improve your testing / Elfriede Dustin.

    ReplyDelete