Software Testing
1. Definition
Software Testing is the systematic process of evaluating a software application to identify defects, verify that it meets specified requirements, and ensure it is fit for use by end users.
2. Objectives of Software Testing
- Detect defects early
- Verify requirements are correctly implemented
- Validate business expectations
- Improve product quality
- Reduce risk and cost of failure
- Provide confidence to stakeholders
3. Why Software Testing Is Necessary
- Software is built by humans → errors are inevitable
-
Defects can cause:
- Financial loss
- Reputation damage
- Legal and compliance issues
- Testing prevents defect leakage into production
4. Quality in Software Testing
Quality means:
- Correct functionality
- Reliability and stability
- Usability and user satisfaction
- Performance under expected load
- Security and data protection
Testing ensures quality is measured, not assumed.
5. Role of a Manual Tester
A manual tester:
- Understands requirements and business logic
- Thinks like an end user
- Designs effective test scenarios
- Executes tests manually
- Reports defects clearly
- Validates fixes
- Supports release decisions
6. What Testing Is NOT
- Testing is not only clicking the application
- Testing is not proving the software works
- Testing is not done only after development
- Testing is not replacing development responsibility
7. Verification vs Validation
Verification:
“Are we building the product right?”
(Reviews, walkthroughs, requirement checks)
Validation:
“Are we building the right product?”
(Actual testing of the application)
8. Errors, Defects, and Failures
- Error: Human mistake (developer, tester, analyst)
- Defect (Bug): Flaw in the software
- Failure: Software behaves incorrectly in execution
9. Cost of Defects
Defect cost increases as it moves forward:
- Requirement phase → cheapest to fix
- Development phase → moderate cost
- Production → highest cost
Testing focuses on early detection.
10. Principles of Software Testing
- Testing shows presence of defects, not absence
- Exhaustive testing is impossible
- Early testing saves time and money
- Defects cluster together
- Pesticide paradox (tests must be updated)
- Testing is context-dependent
- Absence-of-errors fallacy
11. Manual Testing in Real Projects
Manual testing is heavily used for:
- Requirement validation
- Exploratory testing
- Usability testing
- Ad-hoc testing
- UAT support
- Business logic validation
Automation cannot replace these areas fully.
12. Manual Testing Deliverables
- Test scenarios
- Test cases
- Test data
- Defect reports
- Execution status reports
- Test summary report
13. Common Mistakes by Beginners
- Writing test cases without understanding requirements
- Ignoring negative scenarios
- Poor bug descriptions
- Testing only happy paths
- Not thinking from user perspective
14. Interview Perspective (How to Explain)
Short answer:
Software testing is the process of verifying and validating a software application to ensure it meets requirements, works correctly, and delivers quality to end users.
Real-time answer:
Software testing helps identify defects early, reduces business risk, and ensures the application behaves as expected under real-world usage.
15. Key Takeaway
Software Testing is:
- Analytical
- Risk-focused
- User-centric
- Quality-driven
A strong foundation in Software Testing concepts is mandatory before moving to any advanced testing area.