Introduction to Software Testing
Harry
· 21 Sep 2026
· 3 views
Log in to track your progress and mark lessons complete.
Sponsored
What is Software Testing?
Software testing is the process of evaluating a system to check whether it meets the specified requirements and to find defects. Testing answers two questions: does the software do what it should, and does it avoid doing what it should not?
Why Software Testing is Important
- Quality - catches bugs before users do, protecting brand trust.
- Cost - a bug found in requirements costs 1x to fix; in production it costs 100x (Boehm law).
- Security - testing exposes SQL injection, XSS and auth flaws early.
- Confidence - regression suites let teams release weekly without fear.
Error vs Bug vs Defect vs Failure
- Error - a human mistake (wrong logic in code).
- Defect/Bug - the deviation in the software caused by the error.
- Failure - the observable wrong behaviour when the defect executes.
QA vs QC vs Testing
- QA (Quality Assurance) - process-oriented: prevents defects (audits, standards, reviews).
- QC (Quality Control) - product-oriented: finds defects (testing, inspections).
- Testing - executes the software to detect defects; it is a subset of QC.
Tester Roles and Responsibilities
- Understand requirements and write test cases and test data.
- Execute tests, log clear bug reports, and retest fixes.
- Build and maintain automation suites and CI pipelines.
- Report quality metrics (pass rate, defect density, leakage) to stakeholders.
- Testing shows the presence of bugs, never their absence (Dijkstra).
- QA prevents, QC detects, testing executes.
- Earlier testing is exponentially cheaper than late fixes.