Přeskočit obsah

Test Types

There are a lot of different test types and their namings. Sometimes one name is a synonym of a different test type name. Here I want to collect all the important test type names along with a short and easy to understand explanation.

Manual Test

When a test is executed by a human interaction.

Automated Test

Automated test is executed by a computer simulating human interaction. An automated test is used for regression testing.

Black Box Test

A test executed without knowing the source code, only looking on the requirements.

White Box Test

A functional test at the source code level knowing the internal logic of an application .

Unit Test

White box test of a specific function verifying the correct behaviour. Mostly done by developers to test the written code for a single function only. Tests are mostly done automatically by developers or in the build pipeline for a specific function.

Functional Test

Functional tests validate the correct behavior of an application against functional requirements. Functional tests may be manual or automated. Functional tests includes many types of testing like Unit Testing, Smoke Testing, Sanity Testing, API Testing, Integration Testing, UI Testing, and others.

Non-Functional Test

Non-functional tests include Performance Tests, Stress Tests, Load Tests, Security Test, Installation Test, Penetration Test, and others.

Component Test

Component test is a synonym for unit test to verify a specific function of the application for the correct behaviour.

Integration Test

When individual functions are interconnected, this kind of test verifies that different functions are working together when combined. Also used to verify that external functionalities work.

Positive, Negative and Boundary Test

Verification of expected behaviour of a user, unexpected behaviour and value analysis of boundaries for inputs. Sometimes these kind of tests are also called “All-pairs testing”.

Exploratory Test

Exploring an application by an user without knowing requirements. These are manual black-box tests.

Ad-hoc Test

Synonym for exploratory test without knowing anything about the application.

System Test

System test is a synonym for integration test mostly testing whether all modules are working together. This is a black-box test.

End-to-end (E2E) Test

End-to-end Test is testing a complete application near to production environment incl. connected databases, hardware, network etc. E2E test verify whether all components can interact with each other.

Acceptance Test

Acceptance tests verify that a feature is correctly implemented. It is a kind of an integration test with focus on the features. Often these are manual tests by users verifying the business functionality. The tests are performed using or emulating real-world usage.

User Acceptance Test (UAT)

An user acceptance test should be performed by subject matter experts as the last test before production.

Installation Test

Installation test verified whether the application is correctly installed on a hardware/software environment.

Compatibilty Test

Testing the application on different OS, Browsers, Networks, Hardware etc.

Smoke Test

Testing the main features of the application, mostly performed directly after deploying a release. Also called sanity check tests.

Regression Test

Retesting the functions after every application change to find out errors also in functions not modified (possible side effects). Regression tests are highly automated combined unit and integration tests.

Load Test

Load tests are done to find out the behaviour of an application under a specific user load. These users are simulated, so these tests are very often automated and do increase the user number during the test.

Performance Test

Performance test is partly a load test but also simulating slow networks and for web testing specifically the load time of a webpage under different scenarios.

Stress Test

Synonym for load test to understand the application behaviour under extreme user load.

Usability Test

Usability tests are manual tests performed by users to find out how easy the application can be used.

Localization Test

Localization testing is testing an internationalised software using different languages.

Security Test

Security testing verifies that the application data is protected and the system prevents hacker intrusion.

Penetration Test (Pen Test)

Is a synonym for security testing, also called pen testing or ethical hacking to find out about vulnerabilities that an attacker could use.

Recoverability Test

Verify that after a system failure the application will recover.

Accessibility Test

Verify that disabled people can use the application and that all disability features are implemented.