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
- Defining the testing timeline: Establishing start and end dates.
- Identifying testing activities: Outlining necessary tests at each phase.
- Setting activity sequence: Organizing tests based on priority and dependencies.
- Allocating resources: Assigning personnel, tools, and infrastructure.
- Creating a structured schedule: Documenting timelines and dependencies.
- Reviewing and refining: Validating schedule feasibility.
- Communicating the schedule: Ensuring all stakeholders are informed
Defining Test Cases
- Setting Objectives: Determining the purpose of each test.
- Identifying Input Data: Selecting relevant inputs.
- Defining Expected Outputs: Establishing the anticipated results.
- Detailing Execution Steps: Outlining the process for running the test.
- Documenting Test Cases: Recording key information systematically.
- Reviewing & Refining: Ensuring completeness and accuracy.
- Grouping & Prioritizing: Organizing test cases for efficiency.

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:
- Logging Defects: Recording details in a tracking tool.
- Classifying Defects: Assigning severity and priority levels.
- Analyzing Defects: Investigating root causes.
- Assigning Fixes: Directing defects to appropriate developers.
- Resolving Issues: Implementing corrective actions.
- Verifying Fixes: Ensuring issues are resolved without side effects.
- 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.