1. Box Testing specifically tests the functionality of the software and doesn’t pay heed to internal design.
2. White Box Testing checks the various internal software and codings that the software is built on. Code coverage is the main factor.
3. Unit Testing deals with the checking of the modules that the software is broken into and requires detailed knowledge of coding, hence usually done by the programmers.
4. Incremental Integration Testing tests the application continuously to make sure that the various added functions works perfectly.
5. Integration Testing checks the modules when they are integrated with each other and heir dependency.
6. Functional Testing deals with the output that the software provides due to specific inputs provided.
7. System Testing provides test results for the whole system at a go instead of checking the various modules. It provides an all over the result for the entire software system.
8. End-To-End Testing shows how the software you have developed will work in an environment which is same as the real world.
9. Sanity Testing tests the software for its stability. It pushes the software to the extreme limits to show how it would work under pressure.
10. Regression Testing is one of the major types of software testing which covers the entire software and shows you the various modifications which the modules need for the software to be bug free.
11. Acceptance Testing checks whether the software is up to the mark with the requirements of the customer or the end user who will in turn decide the popularity of the software.
12. Load Testing checks how the software will react under pressure or excessive load. Various amounts of load are added to the system to check the response time under the condition and the functionality is thus checked.
13. Stress Testing puts excessive stress on the software, even beyond the specified limits, and checks the productivity of the software under the additionally stressed environment.
14. Performance Testing will check the performance ability of the system under various real world conditions that the software may face once launched in the market.
15. Usability Testing checks the ease with which a new user will be able to adapt to the software, the user friendliness of the interface and the smoothness of the flow.
16. Install/Uninstall Testing checks the ease of installation of the software and the various upgrades that will be available over time for the software as well as the time taken for uninstalling the same.
17. Recovery Testing checks the time taken for the software to heal up from probable crashes, failures of hardware and other magnamous problems that it could face once launched for public use.
18. Security Testing checks the ease or difficulty that the hackers will face to penetrate the particular software.
19. Compatibility Testing deals with the way the software will react in the presence of various other software, the hardware of the system and the various operating systems that it is going to run on.
20. Comparison Testing tests the software to its previous version so as to see how much stronger or weak it has become after the modifications.
21. Alpha Testing is done in the house by creating a virtual or fake environment consisting of end users to check the real world experience.
22. Beta Testing is the final testing done by the real world users who will be using the software in future too.