← Back to Home

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

  1. Testing shows presence of defects, not absence
  2. Exhaustive testing is impossible
  3. Early testing saves time and money
  4. Defects cluster together
  5. Pesticide paradox (tests must be updated)
  6. Testing is context-dependent
  7. 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.