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.
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:
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.
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 endusers (and the CEO) to play with. These are User Acceptance Tests (UAT).
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.
As always, check out my new tool to help generate/organize your Selenium tests at https://www.snaptest.io/
Hacker Noon is how hackers start their afternoons. We’re a part of the @AMIfamily. We are now accepting submissions and happy to discuss advertising & sponsorship opportunities.
To learn more, read our about page, like/message us on Facebook, or simply, tweet/DM @HackerNoon.
If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!