DEV Community

loading...
Cover image for The Four Stages Of Full Software Testing

The Four Stages Of Full Software Testing

Abdulcelil Cercenazi
I enjoy learning and teaching, I am currently working as a Software developer using Spring and Vanilla JavaScript.
・2 min read

👉Testing software is crucial to assure that it does what we expect it to do, and to catch problems as early as possible to speed up the development process.

👉The process of testing can be divided into 4 stages, starting from writing code and ending with deploying to production.


1️⃣ Commit Stage

This includes tests that fail fast

  • A total run time of 5 minutes or less is preferred.

What kind of tests?🤔

  • Unit tests
    • Testing isolated units of behavior.
  • Controller tests
    • For example, Given that we send a POST request to this endpoint, it should fail because the parameters are invalid.
  • Database tests
    • For example, Given those records in the DB, this method should get them.
  • Coding standards tests
    • This test fails because at file X you have 5 empty lines.

2️⃣ Acceptance Stage

What kind of tests?🧐

  • Acceptance tests

    • For example, When user X logs in and orders a new book, we should create a new order request and send an email.
  • Performance tests.

  • Configuration tests.

  • Any other tests that we want to run prior to release.


3️⃣ Release Stage

This stage comes after building the software and attaching all its components together.

What kind of tests?👀

  • Smoke test
    • Test the system's most important features.
      • Sign-in, book purchase, etc...
    • Canary release testing🐤
      • Releasing the new version of the system to places of low impact.
      • For example, Netflix uses Canary releasing by releasing new updates to geographic locations in the world where it's 1 AM so if any failure happens, only few people experience it.🤫
  • Exception tracking.

4️⃣ Product Stage

This stage is executed after the system is deployed to production and is under use.

What kind of tests?❔

  • Can it scale up/down?
  • Is it using a lot of memory/disk/CPU?
  • What is the request response time?
  • Do performance metrics match predications?
  • Security.
  • For example Netflix has teams to test those aspects and try to break the system.
    • Chaos monkeys, Latency monkeys, Security monkeys🐒

This material in this post is mainly derived from Dave Farley amazing video on testing.

Discussion (2)

Collapse
mrbeanguy profile image
Bean

Hey There, Jarjanazy!

I'd like to thank you for sharing your article to the dev.to community! I love the style of your article and I look forward to more from you!

Collapse
jarjanazy profile image
Abdulcelil Cercenazi Author

Thanks a lot :)