On Tuesday March 2nd, I will be presenting on “The Non-Functional Requirements Every Project Forgets” at the ANZTB 2010 testing conference in Melbourne, Australia. Please come and say “hi”.
Most Test Managers, and a majority of projects, still seem to ignore important Non-Functional Requirements. As a test manager, it is often difficult to notice when a requirement is missing or incomplete. This presentation covers some commonly forgotten NFRs, and shares some “war stories” about what happens when they are neglected by a project.
Even when a non-functional test phase such as Stress & Volume Testing is included in the schedule, the requirements document usually does not include adequate requirements for performance, throughput, concurrency, and scalability.
Other commonly forgotten non-functional requirements are:
- Security (still focused at the operating system and network level, rather than the application level).
- Logging and Audit
- High Availability and Failover
- Interface connectivity and timeouts
- Cross-Browser Compatibility (and HTML validation)
- Search Engine Optimisation
- Usability and accessibility
Realising a requirement is missing late in the project can be a tricky issue to deal with. How do you inform the project stakeholders that there is a gap? Will the missing requirement cause extensive rework? How do you ask for time and budget to test for something no one has thought of?
A good tester should develop enough of an understanding of their problem-domain to realise when an important requirement is implied, but not explicitly stated. They should also be confident enough to realise that just because there is no requirement for something, doesn’t mean that they haven’t found a bug.
Testing is an “information function” for the Business stakeholders, so a critical part of a test manager’s job is to notify the right people when something is missing. Experience is the best teacher when it comes to developing the skills to notice missing requirements, but this presentation should start you on your way, or remind you of some things you have forgotten.