Non functional requirements

If ever there were a phrase that we as testers should preach it is :-

Testing should be requirements driven and measurable.

No business wants their product to fail. So it is important for the business, developers and testers to formulate requirements and how to measure against them.

There are a wide variety of non functional requirements including scalability, reliability, regulatory, recoverability, capacity, maintainability, serviceability, security, data integrity, interoperability, availability and usability.

Performance testing also falls under the umbrella of non functional requirements (NFR). NFRs define the systems operational capabilities and constraints. They provide an overview of what behaviour we should expect and how we should measure its success. For example :-

The tracking api must support a concurrent peak load of a 1000 transactions a second and respond within 1 second for each request.

By having clear and measurable requirements we enable testers to define appropriate test packs and to report the seen behaviour and its level of success. In turn, providing confidence to the business that the risk of product failure is low.

To define NFRs the business, developers and testers should work together to create and capture them. The normal process is to document the business processes to test and then create a mapping of those business processes and their requirements. The process does not need to be complex and can quickly be captured in a spreadsheet.

Where there is a disconnect between business, developers and testers, a business analyst/senior tester can act as an intermediary, gathering the business requirements and then working with the developers and testers to form the appropriate measurable requirements.

NFRs can help your business collectively understand the product behaviour, reducing the level of rework required which in turn saves the business money.

FURTHER READING

Response Times: The 3 Important Limits

Non-functional Requirements: Examples, Types, How to Approach

Previous
Previous

The importance of performance testing

Next
Next

Rancher OS