Non Functional Testing :Definition ,
Features and Types
Non functional Testing is the testing of a software application or system for its non-functional requirements: the way a system operates, rather than specific behaviour of that system, its performance, reliability, load testing.
Objectives of Non-functional testing:
- Non-functional testing should increase usability, efficiency, maintainability, and portability of the product.
- Helps to reduce production risk and cost associated
- Optimize the way product is installed, setup, executes, managed and monitored.
- Improve and enhance knowledge of the product behavior and technologies in use.
- Gain confidence in system from overall quality perspective
Non-functional testing Parameters:
The parameter defines how a system is safeguarded against attacks from internal and external sources(Security Testing).
Software system continuous performance for specified functions without failure(Reliability Testing).
The ease with which the user can learn, operate, prepare inputs and outputs through interaction with a system(Usability Testing).
Measures software application processing capacity to meet an increase in demand(Scalability Testing)
This parameter checks a software system interfaces with other software systems(Interoperability Testing)
Measures the extent to which any software system can handles capacity, quantity and response time.
The term refers to the ease with which the application can work in different hardware and software configurations.
The flexibility of software to transfer from its current hardware or software environment.
It refers to a portion of the software system that can be converted for use in another application.
Basic Features of Non Functional testing:
- Focus specifically to evaluate the readiness of a system according to the various criteria which are not covered by functional testing.
- Non-functional requirements tend to be those that reflect the quality of the product, particularly in users’ context .
- It can be started after the completion of Functional Testing. The non functional tests can be effective by using testing tools.
- Non-functional testing has a great influence on customer and user satisfaction with the product.
- It should be expressed in a testable way ann measurable.
Types of Non-Functional Testing:
1) Compatibility Testing
Compatibility testing is testing the application or product built with a different computing environment. It tests whether the application is compatible with the hardware, operating system, database or other system software or not. Please refer Compatibility testing for in-depth details
2) Endurance Testing
Endurance testing involves testing a system with a significant load extended over a significant period of time, to discover how the system behaves under sustained use and ensure application capability to handle extended load with abnormal behaviour.Please refer Endurance testing for in-depth details
3) Load Testing
Load testing is performed to determine a system’s behaviour under both normal and at peak conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation. Please refer Load testing for in-depth details
4) Performance Testing
Performance testing is performed to determine how fast some aspect of a system performs under a particular workload. please refer Performance testing for in-depth details
5) Recovery Testing
Recovery testing is done in order to check how fast and better the application can recover after it has gone through any type of crash or hardware failure. please refer Recovery testing for in-depth details
6) Scalability Testing
Scalability Testing is a non functional testing method that measures performance of a system or network when the number of user requests are scaled up or down. please refer Scalability Testing for in-depth details
7) Stress Testing
It is a form of testing that is used to determine the stability of a given system.
It puts greater emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behaviour under normal circumstances.
Please refer Stress Testing for in-depth details
8) Volume Testing
Volume testing refers to testing a software application, where the software is subjected to a huge volume of data.
Please refer volume Testing for in-depth details