Non-Functional Requirements
- Justine Ocampo
- Mar 19, 2022
- 2 min read
Updated: Aug 9, 2023
The scope of Non-Functional Testing is big and complex; hence, the requirements to be tested must be clearly defined.

Non-functional testing ensures the effectiveness of the application to meet the end-user's expectations. Back then, non-functional requirements were not given much attention but time has changed. It is essential now with users relying heavily on different applications in their day-to-day lives.

Non-functional testing has to be determined based on the software’s specifications like performance, compatibility, usability, security, and many more.
So what exactly is a Non-Functional Requirement?
We are all familiar with functional requirements which define what software should or should not do; however, non-functional requirements specify how the system should perform. It is the system’s features and general characteristics that influence the experience of its users which defines it. It is all about the readiness and quality of the product. So how exactly do we determine the non-functional features to be tested in a specific software/application?
Here are some helpful questions that could identify them:
How does the application behave when there are a lot of concurrent users using the system?
Can the application handle a lot of stress?
How fast can the system recover from the disaster?
Does the application work on different devices?
How many levels of security should it cover?
Technically, any error on the non-functional requirement may result in the system being unusable. Imagine using the application and then it suddenly crashes. The inevitable interaction between the software, computer system, and other external factors to secure the experience such as its performance, safety, and security could play a huge factor. This only signifies that non-functional requirements are equally important as functional requirements and testers must not neglect these requirements too.

Above is a chart of non-functional requirements, which is divided into three parts: Product Requirements, Process Requirements, and External Requirements. These further branch out to different attributes of a system like its Usability, Portability, Performance, Delivery, Safety, Privacy, and many more.
Below is a table of the different application domains and relevant non-functional requirements based on the 2012 IEEE Students’ Conference on Electrical, Electronics and Computer Science 2012 by V. Bajpai, R. Gorthi’s Survey:

With the amount of non-functional requirements to consider, it is not necessary for businesses to take into account all non-functional requirements since that is impossible for testers to verify and perform. Considering the time constraint and budget too, different industries may focus on specific kinds of non-functional requirements based on the kind of software application they intend to provide and offer. Identifying also which non-functional requirement to focus on will also help determine what testing approach and which testing tool can be utilized to test the software.






Comments