Feb
16
On Testing and Non-Functional Requirements
February 16, 2007 |
I noticed something interesting about the distinction between functional and non-functional requirements recently.
Almost all functional requirements are defined in a way that makes it possible to test them objectively–that is, you can define a test such that all observers can agree that the requirement has been met. Almost all non-functional requirements can only be tested subjectively–that is, people can believe that the requirement has been met, but you can only actually say that it’s been met under a certain set of assumptions and/or conditions.
It’s not always true–I was able to come up with a number of exceptions given what are normally considered to be functional and non-functional requirements. However, it’s true enough that I don’t think it’s a coincidence, either.
Comments
3 Comments so far
Nonfunctional requirements are conditions, aren’t they? E.g.
Order Processing Duration: It shall take no longer than 3 minutes to process an order.
But it’s definitely true that, in many cases, you have to evaluate the satisfaction of nonfunctional requirements in combination.
Or maybe you have something different in mind as far as what constitutes a nonfunctional requirement?
It comes back to testing - that is functional testing vs business acceptance testing. I have been think alot about how to link business scenarios to discreet functional tests in a meaningful way. I think the non functional requirements are part those end to end business scenarios.
Thanks Kevin,
I lean towards writing testable non-funcs, as Roger alludes. I also agree that that is much harder, and if I conceptually survey the requirements I’ve seen in the field, my memory tends to agree with your observation about what is out there today. Although I don’t think it should be.
If it requires subjective testing, it is ambiguous, and we should strive to avoid ambiguity.