1.
Overview of Software Testing
I. Process of checking software for correctness, quality, and performance.
II. Ensures the product meets user requirements.
III. Helps to find and fix defects early.
IV. Improves reliability and reduces failure risks.
2. Testing Concepts
Error: Human mistake in coding or design.
Bug/Fault: Incorrect code caused by error.
Failure: Wrong behavior when software runs.
Verification: Checking if the product is built correctly.
Validation: Checking if the correct product is built.
Defect: Any mismatch between expected and actual result.
3. Testing Activities
Test Planning
Test Case Designing
Test Environment Setup
Test Execution
Defect Reporting & Tracking
Test Closure and Documentation
4. Testing Strategies
Black Box Testing
No knowledge of internal code.
Tests based on requirements.
Techniques: EP, BVA.
White Box Testing
Based on internal program logic.
Techniques: Path testing, Loop testing, Branch coverage.
Grey Box Testing
Partial knowledge of internal code.
5. Unit Testing
Tests individual components or functions.
Performed by developers.
Ensures each module works independently.
6. Integration Testing
Tests combined modules.
Detects interface and interaction errors.
Approaches: Top-Down, Bottom-Up, Hybrid, Big Bang.
7. Functional Testing
Ensures software performs required functions.
Black-box technique.
Focuses on “What the system does.”
8. Structural / White-Box Testing
Tests internal structure of code.
Covers logic, loops, paths, and conditions.
Ensures program structure works correctly.
9. Class / OO-Based Testing
Tests classes and objects in OOP systems.
Focus areas:
Attributes (state)
Methods (operations)
Inheritance behavior
Polymorphism
Object interactions
10. Use Case/Scenario Testing
Based on real user actions.
Each scenario tested from start to end.
Helps validate business flows.
11. Regression Testing
Re-testing after code modifications.
Ensures new changes don’t break old functionality.
Often automated.
12. Performance Testing
Tests speed, stability, and response time.
Types: Load, Stress, Volume, Scalability.
Ensures system works under heavy load.
13. System Testing
Complete system tested as a whole.
Checks both functional and non-functional requirements.
Ensures all modules work together.
14. Acceptance Testing
Done by customer/end-user.
Types: UAT, Alpha, Beta.
Confirms product meets business needs.
15. Installation Testing
Tests installation and uninstallation process.
Ensures software installs correctly with all components.
16. OO Test Design Issues
Difficulty in testing encapsulated data.
Complex inheritance chains.
Polymorphism requires multiple test scenarios.
Objects maintain states; needs state-based testing.
17. Test Case Design
A test case includes ID, input, steps, expected output, actual result.
Techniques:
Equivalence Partitioning
Boundary Value Analysis
Decision Tables
State Transition Diagrams
Use Case Testing
18. Quality Assurance (QA)
Ensures correct development processes.
Focuses on defect prevention.
Involves standards, audits, process improvement.
19. Root Cause Analysis (RCA)
Finds the underlying cause of defects.
Methods: 5 Whys, Fishbone Diagram.
Helps prevent future defects
20. Post-Mortem Analysis
Conducted after project completion.
Analyzes success, failures, and lessons learned.
Improves future project performance.