Welcome to Shaun Luttin's public notebook. It contains rough, practical notes. The guiding idea is that, despite what marketing tells us, there are no experts at anything. Sharing our half-baked ideas helps everyone. We're all just muddling thru. Find out more about our work at bigfont.ca.

Types of Software Testing

Tags: software-development

The following is a work in progress. It reflects my half-baked sense of the common usage of the following terms.

Unit Tests

Test a really small part of the system in isolation.

  • test a single method or function
  • stub or mock-out all complex dependencies
  • take a programmer's perspective (not an end-user's perspective)

Integration Tests

Test that individual parts work together. Do not cross network boundaries.

End-to-End Tests

Test that individual parts work together. Do cross network boundaries.

Smoke Tests

The simplest integration or end-to-end test. Does the system explode?

Functional Tests

Will it actually work when a user tries it? Take a user's perspective.

Regression Tests

Test whether a new feature introduces a bug.

Some Sources

Some of these sources are more authoritative than others are.