Periodic Table of Software Testing Types

Periodic Table of Software Testing Types

We are all very familiar with periodic tables in chemistry; now, we are in the world of software, and we are using it daily. As a helpful guide, I have created a periodic table with different types of software testing, which we use often.

There are various software testing types, and we perform them at different stages of the software development life cycle. Below is the periodic table created to let us see each of the testing types respectively.

There are two types of testing: static testing and dynamic testing. Dynamic testing has two sub-types of testing: functional and non-functional testing.

Software testing periodic table

Types of Software Testing:


1. Static testing

Static testing is a type of software testing method that checks for software defects without executing the code of the software application.

2. Review

A review is a systematic examination of a document by one or more people to find and remove errors early in the software development life cycle. Reviews are used to verify documents such as requirements, system designs, code, test plans, and test cases.

3. Walkthrough

Walkthroughs in software testing are used to review documents with peers, managers, and fellow team members who the author of the document guides to gather feedback and update in the comments.

4. Inspection testing

Inspection in software engineering refers to peer review of any work by trained individuals who look for defects using a well-defined process. 

5. Dynamic testing:

Dynamic testing is a type of software testing performed to analyze the dynamic behavior of the code. It includes testing the software for the analyzed input and output values.

6. Functional testing

Testing each individual component of an application or software rigorously against customer requirement specifications is called functional testing.

7. Integration testing

Testing the data flow or interface between two or more modules is called Integration testing.

8. Smoke testing

Testing an application’s basic and critical features before thorough testing is called smoke testing.

9. Sanity testing

Sanity testing is a subset of regression testing. It is performed to ensure the new code changes are working correctly. The new code changes are generally minor fixes. The goal is to validate the bug fixes as well as the critical features of the application.

10. Regression Testing

Testing the unchanged features or re-execution of the same test cases to confirm that adding, modifying, or deleting a feature is not impacting old features is called regression testing.

11. Retesting

Verifying whether the defect is fixed or not after getting the build from the developer is called retesting. It is also called confirmation testing.

12. System Testing

System testing is end-to-end testing where the server or testing environment is similar to the production server or production environment. 

13. User Acceptance Testing (UAT)

User Acceptance Testing (UAT) is a type of testing performed by the end-user or the client to verify/accept the software system before moving the software application to the production environment. 

14. End To End Testing

End-to-end testing is a methodology used in the software development lifecycle (SDLC) to test the functionality and performance of an application under product-like circumstances and data to replicate in a production-like environment.

15. Adhoc Testing

Testing the application or software randomly without looking into the requirement is called ad-hoc testing. While testing, when the tester gets creative scenarios, the tester performs ad-hoc testing. It is also a type of negative testing and does not follow any defined or structured way of testing. Ad-hoc testing can be achieved by following the software testing technique “Error Guessing.”

16. Monkey Testing

Monkey testing is a type of ad-hoc testing. Testing the application or software randomly without applying any logic is called Monkey Testing. It is also called Gorilla Testing. Monkey Testing is performed randomly with no precisely predefined test cases. The objective of Monkey Testing is to check for system crashes.

17. Exploratory Testing

Exploring the application, understanding how each and every feature works, and testing the application based on the understanding is called exploratory testing.

18. Non-Functional Testing

This method tests non-functional parameters such as reliability, load test, performance, and accountability of the software. The primary purpose of non-functional testing is to assess the reading speed of the software system as per non-functional parameters.

19. Performance Testing

Testing an application’s stability and response time by applying load is called performance testing. Stability is the ability to withstand the desired number of users.

Response time is the time taken to send a request to the server, run the program on the server and receive the response from the server.

20. Load Testing

Load Testing is a non-functional software testing type in which the performance of a software application is tested under a specific expected load. In this type of testing, an application’s stability and response time are tested by applying a load that is less than or equal to the designed number of users.

21. Stress Testing

Testing an application’s stability and response time by applying a load that is more than or equal to the designed number of users is called stress testing. It checks whether the system works under abnormal conditions and assures an appropriate error message when the system is under stress.

22. Spike Testing

Spike testing is a type of performance testing in which an application receives a sudden and extreme increase or decrease in load. The goal of spike testing is to determine the behavior of a software application when it receives extreme variations in traffic.

23. Scalability Testing

Testing the stability and response time of an application by applying a load that is more than the designed number of users in an attempt to find the breakpoint where software crashes is called Scalability testing.

24. Soak Testing

Testing an application’s stability and response time by applying load continuously for a particular period of time is called soak testing. It is also called endurance testing.

25. Volume Testing

Testing an application’s stability and response time by inserting a huge volume of data is called volume testing. It is mainly done to check the capacity of the database.

26. Compatibility Testing

Testing an application’s or software’s functionalities in various environments is called compatibility testing.

27. Security Testing

Security testing uncovers vulnerabilities of the system and determines if the data and resources of the system are protected from possible intruders. In addition, it ensures that the software system and application are free from any threats or risks that can cause a loss.

28. Usability Testing

Testing the user-friendliness of the software is called usability testing.

29. Cookies-Based Testing

Cookie testing checks Cookies created in your web browser. A cookie is a small piece of information that is stored in a text file on the user’s (client) hard drive by the web server.

Final Thoughts:

This article is all about different software testing types. Software testing types are essential to test different software applications. Usually, we don’t perform all these types of tests for one project. Instead, we select based on the testing scope. Other types of testing minimize the defects and help us assure the software’s quality. 

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

Free QA Strategy Template for Startups

Use our step-by-step template to prepare your QA plan based on real examples from startups like AppZen, Gumroad, Linktree, and Tailwind.

Want to learn more about QA?

Get the latest articles and resources from MuukTest emailed to you once a month.