Non-functional testing is software testing which checks all the attributes of the system like memory leaks, performance or robustness of the system. This type of testing is performed in all test levels. Non functional testing focuses on good quality of the software mainly the non functional aspects like response time, security, scalability, usability, performance, reliability, maintainability, portability etc. It covers almost all tests which are not done in functional testing.
The objectives of any type of testing will identify the bugs in the application. Non functional testing ensures the usability, performance, reliability, maintainability, portability and security of the application.
- It increases usability, security, flexibility of the application.
- Ensure customer satisfaction with smooth operation.
- It provides effective, successful installation, setup, execution, management and maintenance of the application.
There are many types of non-functional testing:
- Load testing:
It is done to check whether the system can resist the pressure or load of many users operating the application all the time. The production load is replicated in the test environment in order to get the proper specific results. Software performance is tested with different number of users.
- Stress testing:
Stress testing is completed is to push the appliance beyond its capabilities to watch how it reacts. This testing is done where there is load which is generated is more than the applications manage. The performance of the software is tested with different number of servers.
- Volume testing:
This type of testing is done to verify the storage requirements and capabilities of the application. When the database contains huge amount of data or if its size is large, performance of the application and its ability to exchange data and information are tested with volume testing.
- Failover testing:
Failover testing helps in understanding the working of redundancy mechanism when the system encounters the heavy load or sudden failure.
- Security testing:
For smooth functioning of the application security testing is most important. The purpose of security testing is to check how well an application preserves the data and itself and holds the data in the situations of virus attacks.
The non-functional testing parameters:
For example, consider a simple example of any application. When software developed under goes for all kinds of functional testing to test its functionality. Non-functional testing is not performed on the same time. When the application is run in live, it may result in critical issues like when the load is increased in the application, the functionality becomes too slow. Response time may increase and application may crash, this scenario shows how important to test the application with non-functional testing aspects. Another aspect is login page of flight booking website. Consider the situation where you want book a flight ticket and you get a response as ‘servers are busy’ is the best example.
Here it is tested with the valid credentials like how much time did it take when many users login at the same time. This verification ensures that how the system handles traffic and load.
Advantages of Non-functional testing:
- It covers the testing of characteristics which functional testing cannot cover.
- It makes sure that the application runs efficiently and is reliable enough.
- It checks the security of the application.