Software testing is generally classified into two main broad categories: functional testing and non-functional testing. There is also another general type of testing called maintenance testing.
- Functional Testing
Functional testing involves the testing of the functional aspects of a software application. When you are performing functional tests, you have to test each and every functionality. You need to see whether you are getting the desired results or not.
There are several types of functional testing, such as:
- Unit testing
- Integration testing
- End-to-end testing
- Smoke testing
- Sanity testing
- Regression testing
- Acceptance testing
- White box testing
- Black box testing
- Interface testing
Functional tests are performed both manually and using automation tools. For this kind of testing, manual testing is easy, but you should use tools when necessary.
- Non-functional Testing
Non-functional testing is the testing of non-functional aspects of an application, such as performance, reliability, usability, security, and so on. Non-functional tests are performed after the functional tests.
With non-functional testing, you can improve your software’s quality to a great extent. Functional tests also improve the quality, but with non-functional tests, you have the opportunity to make your software even betterThis kind of testing is not about whether the software works or not. Rather, it’s about how well the software runs, and many other things.
Non-functional tests are not generally run manually. In fact, it’s difficult to perform this kind of tests manually. So these tests are usually executed using tools.
There are several types of non-functional testing, such as:
- Performance testing
- Security testing
- Load testing
- Compatibility testing
- Usability testing
- Scalability testing
- Volume testing
- Stress testing
- Maintainability testing
- Compliance testing
- Efficiency testing
- Reliability testing
- Disaster recovery testing
- Localization testing
Black-box testing is simply testing as if the software itself was a black box. It is one of the most common forms of testing—and really a way to describe a whole category of testing—is black-box testing. When you do black-box testing, you are only concerned with inputs and outputs. You don’t care how the actual outputs are derived. You do not know anything about the code or how it works, just that for a given set of inputs into the software, a given set of outputs should be produced.
Real white-box testing is when you understand some of the internals of the system and perhaps have access to the actual source code, which you use to inform your testing and what you target. White-box testing is pretty much the opposite of black-box testing. With white-box testing, you have at least some idea of what is going on inside the software.
The basic idea of acceptance testing is that you have some tests which test the actual requirements or expectations of the customer, and other tests that run against the system as a whole. Sometimes it’s called user acceptance testing (UAT). Sometimes it is called system testing. This kind of testing could be testing the functionality of the system or it could be testing the usability or both. The idea is that acceptance testing tests what is expected versus what actually happens.
The idea behind exploratory testing–when done correctly–is that you have some guidelines and a basic plan of which application areas you are going to test and ways you are going to test them.
Then, you go about without actual test cases and explore the application, looking for things that might be wrong or behavior that is unexpected.
Compatibility testing involves compatibility checking of the software with different operating systems, web browsers, network environments, hardware, and so on. It checks whether the developed software application is working fine with different configurations.
As the name suggests, ad-hoc testing is a kind of testing that is performed in an ad-hoc manner, without using any test cases, plans, documentation, or systems. Unlike all other types of testing, this kind of testing is not carried out in a systematic manner.
Call Logitrain on 1800 159 151 today.