Software Testing · Software Engineering

Software Testing Process

Watch lectures

Software Testing Process

Definition

Software Testing is the process of executing a program with the intent of finding defects/errors and verifying that the software meets its specified requirements — the goal is not to prove the software is correct, but to find as many defects as possible.

Testing vs. Debugging

  • Testing — the process of finding defects (identifying that something is wrong)
  • Debugging — the process of locating and fixing the root cause of a found defect

Key Terminology

  • Error/Mistake — a human action that produces an incorrect result (in requirements, design, or code)
  • Fault/Defect/Bug — a flaw in the software (incorrect step, process, or data) caused by an error
  • Failure — the observable, incorrect behavior of the software when a fault is executed
Error (human mistake) → Fault/Defect (in code) → Failure (observed incorrect behavior)

Testing Levels (Overview — each detailed in later topics)

  1. Unit Testing — testing individual modules/functions in isolation
  2. Integration Testing — testing interactions between combined modules
  3. System Testing — testing the complete, integrated system
  4. Acceptance Testing (Alpha/Beta) — testing by/for the customer before final release

The General Testing Process

  1. Test Planning — define scope, strategy, resources, schedule
  2. Test Case Design — design test cases (Boundary Value, Equivalence Class, etc.)
  3. Test Execution — run test cases against the software
  4. Defect Reporting — log and report any discovered defects
  5. Regression Testing — re-test after fixes to ensure no new issues introduced

Verification vs. Validation

Verification Validation
"Are we building the product right?" "Are we building the right product?"
Checks conformance to design/spec Checks it meets actual user needs
Static techniques (reviews, walkthroughs) Dynamic technique (executing the software)

Why Testing Is Critical

  • Testing is estimated to consume 30-50% of total development cost
  • Undetected defects become exponentially more expensive if they reach production (see cost escalation in Module 2)

Exam tip: Know the Error → Fault → Failure chain and the Verification vs. Validation distinction — both are classic opening theory questions for the Testing module.

Free AppAndroid App

Coursify Android App

Generate AI courses, take quick quizzes between classes, and master complex engineering concepts on the go.

← All Software Engineering modules