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.