logo logo

26 Types of Software Testing: The ABC’s of Testing

Types of Software Testing

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

  1. Acceptance Testing
  2. Beta Testing
  3. Component Testing
  4. Dynamic Testing
  5. Exploratory Testing
  6. Functional Testing
  7. GUI Testing
  8. Happy Path Testing
  9. Integration Testing
  10. Junit Testing
  11. Keyword Driven Testing
  12. Load Testing
  13. Monkey Testing
  14. Non-functional Testing
  15. Operational Acceptance Testing
  16. Performance Testing
  17. Qualification Testing
  18. Regression Testing
  19. System Testing
  20. Top Down Integration Testing
  21. Usability Testing
  22. Vulnerability Testing
  23. White Box Testing
  24. XP Testing
  25. Yellow Box Testing
  26. Zombie Testing

Types of Software Testing


A – Acceptance Testing

Acceptance testing is a test performed by the client that focuses on determining whether to accept the system/software per the requirements and end-user needs. There are four types of acceptance testing:

  • Alpha testing & Beta Testing.
  • Contract Acceptance Testing.
  • Regulation Acceptance Testing.
  • Operational Acceptance testing.

B – Beta Testing

Beta testing is a type of acceptance test that is performed at an external site other than the developer’s test environment and follows the rules outside of the development organization. This is the final test to be completed before releasing the software to the market, usually to a limited amount of end-users.

C – Component Testing

Component testing is a test level that focuses on individual hardware or software components. Component testing is mostly performed by the development team following unit testing. The main objective of component testing is to verify the input and output behavior of the system.

D – Dynamic Testing

Dynamic testing involves the testing of the dynamic behavior of a code. (This is different than static testing, which does not involve the execution of a code).

E – Exploratory Testing

Exploratory testing is an approach to testing where the testers dynamically design & execute tests based on their knowledge, exploration of the test item, and the results of previous tests. The different types of exploratory testing are:

  • Freestyle Exploratory Testing.
  • Scenario-based Exploratory Testing.
  • Strategy-based Exploratory Testing.

F – Functional Testing

Functional testing is performed to evaluate whether a component or system satisfies certain functional requirements. The ultimate goal of functional tests is to ensure that the application works according to the requirements and fulfills the user’s expectations.

G – GUI Testing

GUI stands for Graphical User Interface. GUI testing is performed by interacting with the software under the test via GUI. The main purpose of GUI testing is to check functionalities of software work per the specifications by checking screens, menus, and buttons.

H – Happy Path Testing

Happy path testing is performed to test an application successfully on a positive flow and does not look for negative or error conditions. It is similar to smoke testing and sanity testing and it is done in the production environment.

I – Integration Testing

Integration testing is a test that focuses on the interaction between components or systems. It is usually done after unit testing and before system testing.

J – Junit Testing

Junit is an open-source unit testing framework for Java. It is an open-source framework and is the best test method for performing regression testing.

K – Keyword Driven Testing (KDT)

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. Keyword-driven testing is also known as action word-based testing.

L – Load Testing

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.

M – Monkey Testing

Monkey testing is carried out by a tester by giving random inputs. No test cases are scripted and it is not necessary to know the full functionality of the system. Mostly this testing is performed automatically where the user enters invalid inputs and checks the behavior.

N – Non-Functional Testing

Non-functional testing is performed to evaluate that a component or system complies with non-functional requirements. There are seven types:

  • Performance Tests.
  • Load Tests.
  • Stress Tests.
  • Volume Tests.
  • Security Tests.
  • Upgrade & Installation Tests.
  • Recovery Tests.

O – Operational Acceptance Testing (OAT)

Operational acceptance testing is a type of acceptance testing performed to determine if operations/system administration staff can accept a system. It is also called the operational readiness test (ORT) or operational test. Operational acceptance testing is done after the execution of user acceptance testing.

P – Performance Testing

Performance testing determines the performance efficiency of a component or system. It is used to examine the speed, robustness, reliability, and application size of a system.

Q – Qualification Testing

Qualification testing is performed to verify the design and provide a baseline for subsequent acceptance tests.

R – Regression Testing

Regression testing is a type of testing related to software changes aimed to detect whether defects have been introduced or uncovered in unchanged areas of the software.

S – System Testing

System testing is a test level that focuses on verifying if a system as a whole meets specified requirements (it is a black-box type of testing).

T – Top-Down Integration Testing

Top-down integration testing is a type of integration testing technique used to simulate the behavior of the lower-level modules that are not yet integrated. It is also known as incremental integration testing and uses stubs as a temporary replacement for testing purposes.

U – Usability Testing

Usability testing is performed to check user-friendliness. It tests whether a user can understand the application easily or not. The main advantage of usability testing is to identify how long it takes to complete the tasks.

V – Vulnerability Testing

Vulnerability testing involves identifying weaknesses in the software, hardware, and network. It is also called a vulnerability assessment, which helps in identifying threats.

W – White Box Testing

White box testing is based on an analysis of the internal structure of the component or system. As the code becomes visible to testers, it is called clear box testing, open box testing, transparent box testing, code-based testing, and glass box testing.

X – XP Testing

XP testing is for testing Extreme Programming applications to produce high-quality software. XP is an Agile software development framework.

Y – Yellow Box Testing

Yellow box testing is performed to check the warning messages. It is used to check whether the system is throwing the warning messages correctly or not.

Z – Zombie Testing

Zombie testing is a routine test execution using predetermined patterns & methods, turning testers into what is called “zombie testers”. Zombie testing is mostly concentrated on preparing documents and reports than on finding bugs.

Conclusion

This article is all about different types of software testing. Software testing types are essential to testing software applications.  Remember these testing types, but it usually doesn’t require performing all these types of tests for one project. It depends on the kind of tests you run and the type of software and other metrics you have.

What is your go-to testing type? Which ones would you add to the list? Let us know! 😇

Avatar

About the author

Sri Priya P Kulkarni

An ISTQB certified tester with 2+ years of experience in the field of Software Testing.Dedicated & Hardworking with focus on performing testing activities on Web Applications.Also performed  testing on APIs and became passionate on Testing.Hands on experience in Manual and Automation Testing. My focus is on Software Quality and making sure that Software is Bug free.I will enjoy to work in team and learning from others, across all areas of business and technologies.I love to share my knowledge and discuss Software Testing related topics.

Join TestProject Community

Get full access to the world's first cloud-based, open source friendly testing community. Enjoy TestProject's end-to-end test automation Platform, Forum, Blog and Docs - All for FREE.

Join Us Now  

Comments

11 1 comment

Leave a Reply

popup image

A new world for test automation

Join 150,000 testing & dev teams taking their web & mobile testing to new heights, using #1 FREE test automation platform, designed to help deliver quality at speed.
Get Started
FacebookLinkedInTwitterEmail