There are various types of software testing, some functional testing and some non-functional, while each has its own set of strengths, capabilities, advantages and disadvantages too. In this article, we will define 26 types of software testing (of course there are many more!), for each alphabetic letter. Let’s get started! 🔠😉
Types of Software Testing
- Acceptance Testing
- Beta Testing
- Component Testing
- Dynamic Testing
- Exploratory Testing
- Functional Testing
- GUI Testing
- Happy Path Testing
- Integration Testing
- Junit Testing
- Keyword Driven Testing
- Load Testing
- Monkey Testing
- Non-functional Testing
- Operational Acceptance Testing
- Performance Testing
- Qualification Testing
- Regression Testing
- System Testing
- Top Down Integration Testing
- Usability Testing
- Vulnerability Testing
- White Box Testing
- XP Testing
- Yellow Box Testing
- Zombie Testing
Acceptance testing is a test level performed by the client, that focuses on determining whether to accept the system/software as per the requirements and end-user needs.
Beta testing is a type of acceptance testing performed at an external site to the developer’s test environment by roles outside the development organization. This is the final testing completed before releasing the software to the market, usually to a limited amount of end-users.
Component testing is a test level that focuses on individual hardware or software components, mostly performed by development team following unit testing.
Dynamic testing involves the testing of the dynamic behavior of the code (whereas static testing does not involve the execution of the code).
Exploratory testing is an approach to testing whereby the testers dynamically design & execute tests based on their knowledge, exploration of the test item and the results of previous tests.
Functional testing is performed to evaluate whether a component or system satisfies functional requirements.
GUI testing is performed by interacting with the software under test via GUI.
Happy path testing is performed to test an application successfully on a positive flow. It does not look for negative or error conditions.
Integration testing is test level that focuses on the interaction between components or systems.
Junit is an open source unit testing framework for Java.
Keyword-driven testing is a scripting technique in which test scripts contain high-level keywords and supporting files that contain low-level scripts that implement those keywords.
Load testing is a type of performance testing conducted to evaluate the behavior of a component or system under varying loads, usually between anticipated conditions of low, typical and peak usage.
Monkey testing is carried out by a tester by giving random inputs and no test cases are scripted. It is not necessary to know the full functionality of the system.
Non-functional testing is performed to evaluate that a component or system complies with non-functional requirements.
Operational acceptance testing is a type of acceptance testing performed to determine if operations/system administration staff can accept a system.
Performance testing determines the performance efficiency of a component or system.
Qualification testing is performed to verify the design and provides a baseline for subsequent acceptance tests.
Regression testing is a type of testing related to software changes with an aim to detect whether defects have been introduced or uncovered in unchanged areas of the software.
System testing is a test level that focuses on verifying that a system as a whole meets specified requirements (it is a black-box type of testing).
Top down integration testing is a type of Integration testing technique used in order to simulate the behavior of the lower-level modules that are not yet integrated. It uses stubs as the temporary replacement for testing purposes.
Usability testing is performed to check the user-friendliness. It tests whether a user can understand the application easily or not.
Vulnerability testing involves identifying weaknesses in the software, hardware and the network.
White box testing is based on an analysis of the internal structure of the component or system.
XP testing is for testing the Extreme Programming applications to produce high-quality software. XP is an Agile software development framework.
Yellow box testing is performed to check the warning messages.
Zombie testing is a routine test execution using predetermined patterns & methods, turning testers into what is called “Zombie testers”.