So many testing terms, so little time?

People get really mixed up with web development testing terms. Let’s try to straighten this out:

  • Unit — Test each individual piece of code.
  • Integration — Test many pieces of code together.
  • Functional — Integration tests that focus on business requirements.
  • Regression — Test if a change didn’t break anything that worked previously.
  • Smoke/Sanity — Test that it doesn’t just blow up immediately.
  • Acceptance — Test done by an actual end user.

All of the testing above can be done manually, but only some can be done with automated tools.

Build tests are any of the above testing types that have been automated and integrated into your build system.


A not-so-crazy story:

Bob Sagat, a full-stack developer, is in charge of a new project. His manager is telling him to test the crap out of it. It’s a node/react dashboard. Here is his next 6 months of development:

Phase 1: Initial development phase

Node API:

Uses mocha to write Unit tests for controllers, models, services, etc.

Uses mocha to write Integration tests which calls the endpoints and asserts the response.

React :

Uses jest to write Unit tests for react components.

Uses selenium to have Integration/functional tests which opens up a browser and pretends to be a user.

Phase 2: Almost about to release!

The QA team starts hammering the project and finds many bugs. As Bob fixes them, his current tests become Regression tests, making sure nothing else is busted.

The project manager gives a release candidate to some end users (and the CEO) to play with. These are User Acceptance Tests (UAT).

Phase 3: Release!

The product is out in the wild. Bob writes a few Selenium tests to Smoke/Sanity check the site, which runs every day at midnight.

That’s it! hope that helped.

Group 6Record it…Play it…Generate it…GeneratorsSelector AlgorithmsPrivate modeTest organizationTeamsWorkspacesDedicated supportTest data storageDebugger toolsAdaptable TestsCLI tools and APIWhite-labeled codeVariablesMulti-test playbackManual testsComponents