Reuben Korngold
I want a car that:
1. Has 4 wheels
2. Has working brake lights
3. Has air conditioning
Also, I don’t want it to rob the engine of power
4 Wheels
Air
Conditioning
Working Brake
Lights
Air Con Power Source
Doesn’t rob engine of
power!
Non functional requirements ARE important!
What is implicit in business that isn’t in tech-talk?
Rich function obsession
Informal / Contradictory
Implicit
Technical skills gap
Discretionary
how fast, how reliable?
I want my vehicle to get me to work
in no more than 15 minutes OR
I want my vehicle to get me to
work:
in no more than 15 minutes
95% of the time
during morning peak hour
along roads of 3 lanes carrying 500
cars/km/hr at a length of 4.5m each
Getting me to work starts from the
time I walk out my front door and
finishes when I am sitting at my desk
on the 42nd floor.
Takes longer
Cost of solution
Time to market
Component focus in
isolation
NFRs ultimately will
impact
Time Behaviour
Resource Utilisation
Suitability
Accuracy
Interoperability
Security
Maturity
Fault Tolerance
Recoverability
Understandability
Learnability
Operability
Attractiveness
Adaptability
Installability
Co-existence
Replaceability
Analysability
Changeability
Stability
Testability
Quantitative
Measured during execution
Core categories include:
Performance
Scalability
Availability / Reliability
Usability
Interoperability
Security
Qualitative
Measured Statically
Core categories include:
Maintainability
Portability
Reusability
Integratability
Testability
Testability is a non-functional requirement
All (non-functional) requirements must be testable
SMART (Specific, Measurable, Attainable, Realistic, Testable)
Bespoke development
3rd
party development
COTS
SAAS
Clarity, Detail
Cost of Rework
Source: http://www.softvisionsystem.com/QAofInfrastructureAndApplication.htm
Business Case
Lifecycle
TCO Input
Requirements &
Design
Build Test Implementation &
Operations
NFR Definition
Simulation
Modelling
Capacity
Planning
Test Risk
Assessment
Simulation
Model
Validation
NFR Testing
Application
Tuning
Capacity
Management
Performance
Monitoring
Performance
Fault Diagnosis
ComponentofCapability
Application
Engineering
Tuning
TCO Monitoring
SLA Monitoring
SLA Definition
Infrastructure
(System s’ware)
Engineering
Infrastructure
Tuning
What-if Analysis
High Level
NFR Definition
High Level
SLA Definition
Network Profiling
Infrastructure
(Platform)
Engineering
Early validation is important
Cannot be implemented
afterward easily by a small
tweak
Maintenance vs Performance vs
Elegance/Time to Market
Infrastructure & Software
Read between the lines
Solution challenge before
build
Requirements challenge
What-if scenarios
Simulation of expected
outcomes
Code reviews
Unit testing
Profiling & Optimisation
Infrastructure
Systems Software
We don’t always
need to execute to
measure an
outcome
What matters to stakeholders?
Fit for purpose
Hard to measure
Avoid discretionary measures
(test vs benchmark)
Cost of not testing
NFR’s =
relationship of function
to environment
Generalisation
Extrapolation
Are your tests valid?
Top 10
Limits to effort
Cost vs Risk
You might not be able to
share
Likely outages, resource
consumption, and failure
Not everything needs its own special phase...
Some NFR’s can be bundled with functional testing
Not isolated tester’s
activity – business,
infrastructure,
technology
Ownership - its
probably “the other
guy’s” issue
Simplicity
Contextualise impact
function & experience
Expectations & limits of
testing
Thank
You
There is a lot to NFR’s
Validation of NFR’s occur
throughout lifecycle – not
just test at the end
Without NFR’s your solution
is doomed

Validating Non Functional Requirements

Editor's Notes

  • #18 User Experience – “Requirement of High Availability” Principles – “Overall policies for Fail-over, Fail-back, Recovery, Alert Notification, Disaster Recovery, Reliability, etc” Solution –customisations per component, nuts & bolts