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!