Lecture 4: Test Planning

Test planning is a crucial component of software testing, involving the creation of a structured and detailed plan for testing a software application.

Defining Testing Objectives

Generally, the main objectives of testing include the following:

  • Ensuring compliance with business requirements
  • Enhancing user satisfaction
  • Detecting defects
  • Validating functionality
  • Minimizing software failure risks
  • Ensuring security

Selecting the Testing Approach

Common testing approaches include:

  • Black-box testing: Focuses on functionality without internal code knowledge
  • White-box testing: Examines internal code, logic, and algorithms
  • Gray-box testing: Combines elements of both black-box and white-box testing
  • Manual testing: Performed by testers executing test cases manually
  • Automated testing: Uses software tools to automate test execution
  • Regression testing: Ensures changes do not introduce new defects

Identifying Testing Resources

Testing resources include:

  • Personnel
  • Testing Tools
  • Infrastructure
  • Test Data
  • Budget

Developing the Test Schedule

  1. Defining the testing timeline: Establishing start and end dates.
  2. Identifying testing activities: Outlining necessary tests at each phase.
  3. Setting activity sequence: Organizing tests based on priority and dependencies.
  4. Allocating resources: Assigning personnel, tools, and infrastructure.
  5. Creating a structured schedule: Documenting timelines and dependencies.
  6. Reviewing and refining: Validating schedule feasibility.
  7. Communicating the schedule: Ensuring all stakeholders are informed

Defining Test Cases

  1. Setting Objectives: Determining the purpose of each test.
  2. Identifying Input Data: Selecting relevant inputs.
  3. Defining Expected Outputs: Establishing the anticipated results.
  4. Detailing Execution Steps: Outlining the process for running the test.
  5. Documenting Test Cases: Recording key information systematically.
  6. Reviewing & Refining: Ensuring completeness and accuracy.
  7. Grouping & Prioritizing: Organizing test cases for efficiency.

Sample Test Case

Identifying Test Data

Test data selection ensures accurate software validation. It includes:

  • Normal Data: Valid inputs for typical operations.
  • Boundary Values: Testing limits of input ranges.
  • Negative Data: Invalid inputs to assess error handling.
  • Error Messages: Evaluating system responses to failures.

Defect Management Process

The defect management process includes:

  1. Logging Defects: Recording details in a tracking tool.
  2. Classifying Defects: Assigning severity and priority levels.
  3. Analyzing Defects: Investigating root causes.
  4. Assigning Fixes: Directing defects to appropriate developers.
  5. Resolving Issues: Implementing corrective actions.
  6. Verifying Fixes: Ensuring issues are resolved without side effects.
  7. Closing Defects: Marking defects as resolved upon verification.

Severity & Priority

  • Severity: describes the impact of the defect on the application
  • Priority: is related to defect fixing urgency.

Stop Testing Criteria

Determining when to stop testing. Criteria include:

  • Completion of predefined test cases.
  • Achievement of required test coverage.
  • Compliance with performance and quality benchmarks.
  • Resolution of critical defects.

Test Plan Document

A test plan document typically includes:

  • Introduction: Purpose and scope.
  • Testing objectives: Goals and targets.
  • Approach: Strategies and methodologies.
  • Schedule: Timelines for activities.
  • Environment: Required hardware/software.
  • Test data: Input data details.
  • Test cases: Execution scenarios.
  • Automation: Tools and scripts used.
  • Risks and issues: Potential challenges.
  • Reporting: Communication protocols.
  • Conclusion: Summary and recommendations.