Software Test

There’re different test types across software testing.

Unit testing

Unit testing means writting automated tests for the smallest testable parts of the code to check if they work as expected.

Integration Testing

Integration testing checks how different parts(modules) of the software work together as a group. Think of your software as a machine made of many parts (functions, classes, services, APIs). Even if each part works perfectly on its own (thanks to unit tests), they might fail when connected together. Integration testing helps find those issues. It often requires external components or simulated ones.

How to write integration tests?

  1. Set up necessary environment (database, message queue, test servers…)
  2. Run tests that exercise flows crossing component boundaries.
  3. Clean up data afterward to keep tests independent.

Regression Testing

Regression testing means re-running existing tests to make sure recent code changes haven’t broken things that used to work. So what are the existing tests? It should be a test suite that contains unit tests, integration tests, E2E tests etc.

Smoke Testing

Smoke testing is a quick, basic check to see if the main parts of the application work well enough for deeper testing. “Does the build smoke when we turn it on?”

A/B Testing

A/B testing means randomly splitting users into two (or more) groups, showing each group a different version, and comparing which one performs better.

System Testing

System Testing is a type of software testing where the entire software system is tested as a whole.

  • It tests the complete integrated system to verify that it meets specified requirements.
  • It’s performed after integration testing and before acceptance testing.
  • Typically a black-box testing approach (testers don’t need to know the internal code).

End-to-end(e2e) testing

End-to-End testing is a testing technique where you test an entire application flow from start to finish, just like a real user would.

  • It covers all layers of the system:
    • Frontend (UI)
    • Backend services
    • Databases
    • APIs
    • Integrations with other systems (e.g. payment gateways, email services)
  • The goal is to ensure that all parts work together correctly and that the system meets real-world user scenarios.

In practice, E2E testing is a type of system testing but more scenario-focused.

Scroll to Top