Show in graph

Software → quality-assurance

Software Testing

The practice of evaluating software behavior to find defects, verify expectations, and increase confidence in changes.

Motivation

Software testing solves the problem of gaining confidence that software behaves as expected as it changes.

Where it fits

Testing belongs to software construction and professional engineering practice. It supports refactoring, deployment, reliability, and maintainability.

Subconcepts

Unit tests

Test a small unit of behavior in isolation.

Integration tests

Test how components work together.

Test doubles, mocks, and stubs

Replace collaborators so tests can control behavior and observe interactions.

Common mistakes

  • Testing implementation details instead of behavior.
  • Having only end-to-end tests and no fast feedback.
  • Treating test coverage as the same thing as confidence.