In each level of testing there are different types of tests. The list may be long, but in this article we present the 9 essential types of tests. They are of course to be known. But above all, you must use them in each of your development projects.
The definition extracted from the ISTQB syllabus for “type of tests” is the following:
A group of test activities based on specific test objectives aimed at specific characteristics of a component or system.
A test type is focused on a specific test objective (e.g. reliability, usability, regression, etc.). Each test type can cover one or more test levels and one or more test phases.
#1 Smoke testing
Smoke testing consists of a non-exhaustive series of tests to ensure that no critical bugs affect the major functionalities of the software. This type of test determines whether it is possible to advance in the testing stages or whether it is necessary to review the code before going any further. When the tester receives a new version of the product to be tested, it starts the smoke testing first.
#2 Functional testing
Functional tests aim at confronting the system with functional requirements. Testers execute an action and analyzing the result obtained. For example, an action can be press the “add to cart” button and check did the button press cause the selected product to be added to the cart or not. If the result obtained differs from the expected result, we will consider that there is an anomaly. And the tester will be led to document an anomaly.
Testers use test plans to execute functional tests. And they ensure that the system meets the functional requirements. Requirements that are defined in the functional specifications of the project.
#3 End-to-end testing
End-to-end testing allows you to test a user’s journey from start to finish. This test verifies that all components of a system work as expected together in real-life situations.
End-to-end testing integrates different types of tests: functional tests, compatibility tests, usability tests, graphical tests…
#4 Non-regression testing
After a software evolution (bugfix, the addition of functionality, etc.), it is necessary to make sure that the changes made have not affected the software. That is to say that no regression in the code has been introduced as a result of new developments.
During this phase, we will simply re-run the previously played test cases. Depending on the criticality of the delivery all or part of the tests will be replayed.
#5 Usability testing
A method of evaluating a product by having it tested by end users (non-professional testers).... (or user testing) is executed by an end-user, with the aim of checking whether the system is suitable for him. By observing and identifying how the user uses the system and any difficulties he encounters, the usability of the website/application can be effectively evaluated.
#6 Intrusion testing
This type of test consists of evaluating the security of a system, usually by simulating a computer attack. The goal is to discover vulnerabilities that a hacker could exploit in order to improve the security system. They are run by testers who are specialists in this field.
#7 Performance testing
To determine how the system performs in terms of response time and stability with a high number of users or a failure event, the tester run performance tests. There are many performance tests available. You will find the 4 main ones below:
- Load test
- Stress test
- Endurance test
- Scalability test
#8 Exploratory testing
In Exploratory testing is designing and running tests at the same time. They must be performed by experienced testers...., the tester ignores the recipe book and functional specifications. Tester designs the tests as he explores the site/application. This type of test has several advantages. By departing from the technical requirements, the tester can put himself in the position of a user and check the logical operation of the system. It also allows the discovery of new anomalies and the improvement of existing test cases.
Testers, in addition to functional and end-to-end testing, execute exploratory testing. Despite the “free” aspect, it is necessary to organize exploratory test sessions.
#9 Automated testing
Automated tests are widely used in non-regression testing. Using a framework, the automator will code the tests that the script must execute at each version of the system. This is very useful to free up some weight for testers on repetitive tasks. The test automation is a set of scripts (code) allowing to play at will the cases of non-regression tests.... also allows to have a regular verification of the software.
However, not everything can be automated. It is thus necessary to make a strategic choice on the parts to automate and those to test manually.