Wednesday 27 July 2016

Non-functional testing


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.

What is 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:
  • How quickly, can it response?
  • How many users can simultaneously login into it?
  • If, it can be easily and quickly, adapted by new user? and many more…

What may be tested?

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:
  • Recovery of lost data or application.
  • Reliability and Scalability on different platforms, Operating systems, under variant environment.
  • Performance under stress.
  • Shortage of resources, such as memory.
  • Effectiveness, on simultaneous access to application by multiple users.
  • Security features.

Sub-Categories

Non-functional testing may be sub-classified under various testing methods as under:
  1. 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.

No comments:

Post a Comment