Functional vs non-functional requirements
Functional requirements state what a system must do, such as letting a user reset a password by email. Non-functional requirements state how well it must do it, covering qualities such as performance, security and usability. A product can meet every functional requirement and still fail its users when it is slow, insecure or hard to use.
The longer version
Take a password reset. The functional requirement says a user can request a reset link by email and set a new password with it before the link expires. The non-functional requirements say the email arrives within a minute, the form works with a screen reader and the page loads within two seconds on a mid-range phone. The first kind is checked by doing the thing and seeing whether it happened. The second kind is checked by measuring, and each one needs a threshold before anyone can measure against it.
The two kinds are also written, owned and tested differently. Functional requirements arrive as user stories, use cases or specification lines, and a tester verifies them with functional test cases that pass or fail. Non-functional requirements tend to apply across many features at once, so they are often recorded once, in a definition of done or a quality section of the specification, and verified with load tools, security scans, accessibility audits and browser matrices. Because no single story owns them, they are the ones a team forgets until late.
The boundary is a convention more than a law. ISO/IEC 25010, the product quality model, comprises nine quality characteristics in its 2023 edition, and functional suitability is one of them, next to performance efficiency, compatibility and interaction capability. Under that model, doing the right thing is one quality among several. A requirement can also change sides as it gets specific. 'The system must be secure' is a quality goal, and 'an account locks after repeated failed sign-in attempts' is a function that serves it. The full definition of the second kind, with guidance on wording them so they can be tested, is under non-functional requirements.
Common questions
What is the difference between functional and non-functional requirements?
Functional requirements describe behaviours the system must provide, such as creating an invoice or sending a notification. Non-functional requirements describe qualities of that behaviour, such as how fast it responds, how many users it supports and how it protects data.
What are examples of functional and non-functional requirements?
A functional example is 'a customer can download an invoice as a PDF'. Non-functional examples for the same feature are that the download starts within two seconds, that only the account owner can open the file, and that a screen reader can read the PDF.
Which is more important, functional or non-functional requirements?
Neither kind can be dropped. A system missing a function cannot do the job, and a system that has the function while being too slow or unsafe to use will be abandoned. Teams usually specify functions first and then set the quality thresholds those functions must meet.
How are non-functional requirements tested differently from functional ones?
Functional requirements are tested by running the behaviour and comparing the result with what was expected. Non-functional requirements are tested by measurement under set conditions, using tools for load, security, accessibility and compatibility, against a threshold agreed in advance.
Where do non-functional requirements go in an agile backlog?
A quality requirement that belongs to one story goes into that story's acceptance criteria, with its threshold. One that holds across the product, such as a response-time budget or a keyboard-access rule, is better placed in the definition of done, where it is checked on every story without being retyped.
Bug reports that arrive ready to triage.
Collect replay, console, network and browser context with the Free plan.