Apart from proper and desirable functioning of the software, its performance under different and unexpected conditions, to meet the needs of the customers, is also a matter of concern. This, then arises the need of non-functional testing.
Non-functional testing is a type of testing, performed, to check the non-functional traits and requirements of the software. It is done, to evaluate the effectiveness of the software, under variant and unforeseen conditions. It is the one common solution for the questions, related to software like:
Unlike, functional testing, which is based on pre-defined requirements and specifications, non-functional testing focuses on customer’s perspectives, like compatibility, maintainability, load capability, etc. This may includes:
- Availability Testing
Availability Testing is an approach of testing the integrated system testing, contrary to, what is available for its operational requirements.
2. Compatibility testing
This type of testing is executed, to examine the compatibility features of the software, on multiple platforms, under variant environments, like operating system compatibility of the software.
3. Configuration Testing
It has to be seen, that the final product work seamlessly with the supported software and different hardware configuration available. Configuration testing takes care of that aspect.
4. Compliance testing
It is performed to check, whether the software product’s performance doesn’t deviates from the company’s established standards.
5. Installation Testing
Also known as “implementation testing”, is used to check desired functioning of the software, after its successful installation, along with, all necessary requirements.
6. Documentation testing
To examine the documentation artifacts, prepared before and during the testing phase, in order to assess the testing requirements, covers under documentation testing.
7. Load testing
It is, the simplest type of performance testing, that evaluates the performance & response of the software, under variant load factors.
8. Endurance testing
This involves, the testing of software’s capability or durability to endure the huge and constant load, over a longer period of time.
9. Localization and Internationalization testing
The purpose of localization testing is to verify the quality of the software’s local attributes, targeted for a particular population/culture/region, to ensure that the localized version works well for a particular region and meets the need of the targeted audience, whereas Internationalization testing, takes care of the uniform functionality of the software, across all geographical regions.
10. Performance testing
It is done, to examine the response, stability, scalability, reliability and other quality metrics of the software, under different workloads.
11. Maintainability Testing
Maintainability testing ensures the capability of the software, to get upgraded or modified, to meet the needs of the customer.
12. Recovery testing
It involves, wilful failure or crash of the software, to evaluate its ability of getting recovered, quickly.
13. Security testing
The intend of this testing, is to validate the security features of the software, so as to ensure, protection, authenticity, confidentiality and integrity of the information and data.
14. Reliability Testing
Covering load and feature testing under its belt, software reliability gives a measure of the lifecycle of the product, between two failures, and the time it takes to repair.
15. Volume testing
It is a type of performance testing, where software response and effectiveness is measured, by burdening it, with huge amount of data.
16. Scalability testing
Software should be scalable, along with the increase in load, number of concurrent users, data size, etc. This, arises the need of scalability testing, which is conducted to take care of scalability related issues, with the software.
17. Usability testing
It is performed, to ensure that software is user-friendliness and end-users, faces no issues, while using and handling the software product.
18. Stress testing
A type of performance testing, which emphasizes on robustness feature of the software product, by taking operational activities, beyond the boundaries.
Non-functional testing is important, as without verifying the interoperability across multiple platforms, maintainability, security, portability and other miscellaneous features, we cannot guarantee the readiness of software for its use.
Originally published at www.professionalqa.com.