Hello friends! in this post, we will be learning about Non-Functional Requirements or NFRs, their meaning, and the different examples/attributes of quality that comprise an NFR document.
What are Non-Functional Requirements?
Non-functional requirements or NFRs are the set of requirements that defines how well a system will operate as opposed to functional requirements that focus on the specific business functionalities that an application performs.
The way an application will operate is nothing but some defined quality parameters like accessibility, efficiency, reliability, usability, interoperability, etc. on the basis of which application’s quality is measured.
Attributes of NFRs
Following are some of the attributes of examples of NFRs-
- Usability – Usability is defined as the measure of the degree to which an application can be easily used and operated e.g. in case of a new application, the easier the flow of the application is for the user to operate it smoothly, the better will be the usability.
- Scalability – Scalability is defined as the ability of the system to cater to the growing usage of the application. It is of two types horizontal scaling – scaling provided by adding more machines and vertical scaling – scaling provided by adding more CPU and RAM to the available machines.
- Security – Security is one of the most important attributes of NFRs. It is the measure of the resilience of the application under any type of malicious attack.
- Accessibility – Accessibility is the ability of an application to cater to the needs of the user with special needs or disabilities using some Assistive technology like screen readers.
- Data integrity – Data integrity deals with the integrity, consistency, and correctness of the data in the application.
- Durability – Durability is the measure of the ability of the application to cater to the requirements for a long period of time.
- Interoperability – Interoperability is the ability of an application to work in conjunction with other applications smoothly at present as well as in the future.
- Maintainability – Maintainability is defined as the ease with which an application can be restored to working condition after a failure.
- Performance – Performance is a non-functional requirement that deals with the measure of the response time of the application under different load conditions.
- Reliability – Reliability of a software system makes use of the Mean Time Between Failure (MTBF) parameter that is the time elapsed between 2 failures. The longer the MTBF the more reliable is the application.
- Robustness – Robustness of a software application is the measure of the ability of a software application to deal with invalid or erroneous input effectively.
This completes our tutorial on NFRs, its attributes, and examples. Let us know in case of any query or suggestion. You can also check our related tutorial – Non-Functional Testing which is based on testing all these non-functional requirements.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.