Non Functional Requirements Checklist based on categories of applications
Abstract
In the requirements gathering stage, there are these functional requirements which are briefed by the client which explains “What a system should perform”; but it is the chore of the Tester to determine the non-functional requirements which elucidates “How a system should perform”. Here, a discrete list of non-functional requirements is illustrated based on the applications and domain categories.
What are Non-Functional Requirements?
In Software system engineering, a software requirement that describes not what the software will do, but how the software will do it, for example, software performance requirements, software external interface requirements, design constraints, and software quality attributes. Non-functional requirements are difficult to test; therefore, they are usually evaluated subjectively. –IEEE
The objective of non-functional requirements originates from the system architecture.
Why Non-Functional Requirements?
Non Functional Requirements are important to measure the quality of the system designed against the attributes designed such as the Performance, Robustness, and ‘lities’.
There are six areas of research focused, relating to Non Functional requirements
i. Improvement as a method of quality control
ii. Unspoken requirements
iii. Abstraction of constraints
iv. Operational behaviours
v. Interrelationships of requirements
vi. Understanding the concepts of how well.
Types of Non Functional Requirements
When juxtapose non-functional requirements, stratify the qualities to two main categories.
1. Execution qualities
Such as security and usability, which are observable at run time.
2. Evolution qualities
Such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system.
NFRs w.r.t various applications and domains
With regards to the applications, consumer oriented attributes are part of the execution qualities.
E.g.: Efficiency, Correctness, and Interoperability
Technically oriented attributes are part of the evolution qualities.
E.g.: Anomaly management, completeness and functional scope
Case Study 1: HealthCare Domain
When comes to Healthcare domain, the application needs to be simple to use, scalable if the number of patients logging in has increased, portable enough for other devices.
Case Study 2: Insurance Domain
The application accessible for Insurance domain has to be accurate (up to date), compatible with other applications to import data and available all the time.
Case Study 3: Telecom Domain
The data sent/received should be interoperable. The systems should handle fault tolerance and be ready for failure management.
Case Study 4: Banking Domain
The application should be secure, easy to maintain, compliant with the batches run and should have a recovery in case of disaster.
Success Stories
1. ESW Web Swing Testing
The e-Settlement workstation (ESW) is a java-enabled front end that provides an interface to the e-Settlement application and core processing for automated funds transfer. ESW provides an interface to the e-settlement technology back office and core processing for order entry, portfolio inquiry, automated fund transfer etc.
While upgrading the ESW application from desktop to web application, the functional requirements have been tested and work successfully, whereas, while testing the non-functional requirements, it has been observed that the scroll bar is not working after returning from the page navigated. This issue has been communicated to the Dev Team and was resolved.
2. Performance Testing
While checking the load on the application login, the load balancers were freezing after 30 minutes of execution. On discussion with the DevOps team, the settings have been changed and the load balance testing was completed successfully.
Conclusion
This document is a handbook to refer the non-functional requirements for various applications. For more requirements, refer to the attachment in the References & Appendix column.
References & Appendix
1. Non-Functional Requirements in Software Engineering by Lawrence Chung, Brian A. Nixon, Eric Yu, John Mylopoulos
2. Non-Functional Requirements in Systems Analysis & Design by Kevin MacG. Adams
3. A case study of Non-Functional Requirements & continuous improvement at a national communications system contractor by Volney L R Douglas
4. List of Non Functional Requirements
Author Biography
Rekha Venkatapathi Naidu is a Senior Software Engineer with 6.8 years of experience in BFSI Domain (Global Wealth and Capital Markets Sector), with an expertise in Web Service Automation, currently employed with CGI.
Kandagaddala Pavani is an Associate Software Engineer with 1.3 year of experience in BFSI Domain (Global Wealth and Capital Markets Sector), currently employed with CGI.
THANK YOU!