The terms “performance requirement” or “performance attribute” are preferred over “non functional requirement” according to the most recent update of The IEEE Standard for Software Quality Assurance Processes 730-2014 Definitions.
The IEEE Standard for Software Quality Assurance Processes 730-2014 defines Performance requirement as the measurable criterion that identifies a quality attribute of a function or how well a functional requirement must be accomplished (IEEE Std 1220™-2005 [B27]). A performance requirement is always an attribute of a functional requirement.
A performance requirement specifies the speed or operational effectiveness of a capability that must be delivered by the system architecture as seen by the technical layers within that system architecture.
Basic examples:
Valid logon transaction response shall occur within 999 milliseconds of the request when the system architecture is under nominal and peak transaction loads as itemized by the transaction profile.
Invalid logon transaction response shall occur within 999 milliseconds of the request when the system architecture is under nominal and peak transaction loads as itemized by the transaction profile.
Functional requirements address the needs and behaviors required by the user community while performance requirements address the speed and effectiveness of the overall architecture. While most testing organizations are accustomed to dealing with functional (business) requirements many do not have the same level of expertise when dealing with performance requirements. The critical difference between these two types of requirements and testing them is that functional requirements deal with the business while performance requirements deal with the architecture. The following table illustrates some of the differences between functional and performance testing – it is important to realize that requirements will reflect these fundamental differences.