SOFTWARE TESTING – COMPLETE CONCEPTS NOTES
1. What is Software Testing?
Software Testing is the process of evaluating a software application to find defects and ensure it
meets the specified requirements.
2. Why Software Testing?
• Ensures quality
• Finds defects early
• Improves customer satisfaction
• Reduces cost of failures
3. SDLC (Software Development Life Cycle)
Requirement Analysis → Design → Development → Testing → Deployment → Maintenance
4. STLC (Software Testing Life Cycle)
Requirement Analysis → Test Planning → Test Case Design → Test Environment Setup → Test
Execution → Test Closure
5. Types of Testing
• Manual Testing
• Automation Testing
6. Levels of Testing
• Unit Testing
• Integration Testing
• System Testing
• Acceptance Testing (UAT)
7. Types of Testing (Functional)
• Smoke Testing
• Sanity Testing
• Regression Testing
• Retesting
• Ad-hoc Testing
8. Non-Functional Testing
• Performance Testing
• Load Testing
• Stress Testing
• Security Testing
• Usability Testing
• Compatibility Testing
9. Test Case
A document with test steps, expected result, actual result, and status.
10. Bug / Defect Life Cycle
New → Assigned → Open → Fixed → Retest → Closed / Rejected
11. Severity vs Priority
Severity: Impact of defect on application
Priority: Urgency to fix the defect
12. Test Plan
Defines scope, approach, resources, and schedule of testing activities.
13. Black Box Testing
Testing without knowledge of internal code.
14. White Box Testing
Testing with knowledge of internal code structure.
15. Automation Testing
Uses tools like Selenium, TestNG, JUnit to automate test cases.
16. API Testing
Validates REST APIs using tools like Postman, Rest Assured.
17. Agile Testing
Continuous testing in Agile development model.
18. Entry & Exit Criteria
Conditions to start and stop testing.
19. Test Metrics
Used to measure quality and progress (Defect Density, Test Coverage).
20. Interview Important Keywords
SDLC, STLC, Smoke, Sanity, Regression, Defect Life Cycle, Test Plan, Test Case, Automation,
Agile