Identify the Different Types of Tests

Understand the Benefits of Testing

What’s the point of testing?

We often assume that we test a product only to find defects. That’s partly true, but it’s also a very limited view. Testing has a much broader purpose.

The different objectives are illustrated and linked on the same line. Details are found in the text that follows.
The main objectives of testing; the pesticide paradox.

These objectives include:

  • evaluating a product, meaning providing insights into its quality level;

  • checking conformity with requirements, specifications, or User Stories—that is, providing insights into completeness;

  • preventing defects;

  • building confidence in the software’s quality level;

  • reducing costs: the earlier an issue is fixed, the cheaper it is to correct;

  • ensuring customer satisfaction—if a software product goes live with several defects, users may grow frustrated and stop using it, even if those defects are fixed later.

More broadly, testing encompasses all activities that help uncover information about a system’s quality so that informed decisions can be made.

Here are seven general testing principles to keep in mind:

  • Tests reveal the presence of defects, but cannot guarantee their absence.

  • Exhaustive testing is impossible—no matter how many cases you think of, some will always be missed.

  • Test as early as possible.

  • Defects tend to cluster. If there’s one defect in a feature, chances are there are others nearby.

  • The pesticide paradox.

  • Tests depend on the context. You won’t test a banking application—where security requirements are high—the same way you test a weather app.

  • The illusion of being error-free: the absence of visible defects during testing does not guarantee the actual absence of defects. Tests may simply not cover all scenarios.

For example: it’s pointless to multiply tests on Chrome if, due to company policy, all users are actually on Firefox!

Beyond these principles, good testing also means knowing when to stop. 😉

Let’s move on to test levels.

Identify Test Levels.

According to the ISTQB (International Software Testing Qualifications Board), the test levels are:

  • unit or component testing:

    • carried out by Developers;

    • Developers check their code at component level;

    • each “building block” must function correctly and meet specifications.

  • integration testing:

    • performed by Developers or Testers;

    • ensures that several components interact correctly according to specifications.

  • system testing:

    • performed by Testers;

    • validates compliance at the system level, once all components are assembled.

  • acceptance testing:

    • performed by Testers and by the PO or Customer;

    • checks conformity with end-user expectations.

La pyramide du niveau plus bas au plus élevé : tests unitaires ou tests de composants, tests d’intégration, tests système et tests d’acceptation.
The ISTQB test pyramid by level.

Here’s an analogy to help you understand the levels:

A customer wants a wall measuring 2 m × 5 m.

The laborers (Developers) make the bricks—they must check the bricks are the right size. This corresponds to unit/component testing.

Next, the bricks are assembled two by two—this must be checked as well. This represents integration testing.

The wall is then built and must measure exactly 2 m × 5 m—this is system testing.

Finally, the customer inspects the wall. He’s unhappy: he didn’t want brick, he wanted stone! This is acceptance testing and highlights the importance of clearly understanding the end requirement before development begins.

Now that you’ve seen the levels, let’s look at test types.

Identify Test Types

According to the ISTQB, test types are defined as:

Tests fall into two main categories:

  • functional tests;

  • non-functional tests.

Functional tests verify a product’s features to ensure they work correctly and meet requirements.

Non-functional tests evaluate:

  • robustness: does the site handle a high number of requests in a short time?

  • performance: for example, the response time for loading a page;

  • load scaling: gradually increasing requests to determine when the system reaches its limits;

  • compatibility: does the software work on Windows and macOS? Across different applications?

  • ergonomics and usability: is the site easy to use on phones, tablets, computers, or TVs?

  • security: ensuring hackers cannot access or misuse user data.

Non-functional tests assess the implicit aspects of a product—those expected by users even if not explicitly stated.

Over to You!

In software testing, there are two major test categories: functional and non-functional.

Here is a list of tests. Sort them into the correct category.

  • Check that the system offers good performance and responsiveness.

  • Check that the contact form submits an email to the selected recipient.

  • Check that the system meets specification requirements.

  • Check that the system complies with business rules and usage scenarios.

  • Check that the system is compatible with different browsers, OSs, and devices.

  • Check that the system displays appropriate error messages when an issue occurs.

  • Check that the system displays an error message when the user enters an incorrect password.

  • Check that the system is robust and stable in the event of failures or interruptions.

  • Check that the system is scalable and maintainable.

  • Check that a web page loads in under 3 seconds.

  • Check that the system can handle 1,000 simultaneous users without slowing down.

  • Check that the system correctly handles data inputs and outputs.

Sort your results in a table one column per category.

Summary

  • Testing is not just about finding defects. It also helps evaluate a product, prevent issues, build confidence, reduce costs, and ensure customer satisfaction.

  • Test levels help you understand how testing is broken down and who performs what.

  • The levels are unit, integration, system, and acceptance tests.

  • Tests fall into two types: functional and non-functional.

  • Test types describe the different ways a product can be tested.

Now that you know more about testing, let’s explore the tester’s mindset and essential qualities.

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best