Streamlining the Application Readiness Process in Complex Environments
"Testing Complex Systems in Complex Environments" Lee - Polteq
Transcript of "Testing Complex Systems in Complex Environments" Lee - Polteq
Topics
• Types, examples, and failures of systems
• Simple
• Complex
• Hyper-complex
• What can testing actually claim?
• The ethical aspects
• What to do
Simple Systems
• Features
– Linear relationships (perturbations cause a
proportional effect).
– Do not contain feedback loops.
– Do not have memory (prior states do not influence
current behavior).
Complex Systems
• Features
– Non-linear relationships (small perturbations may
cause no effect, a proportional effect, or a large
effect).
– Contain feedback loops (both positive and
negative).
– Have memory (prior states may influence current
behavior).
– Are often nested (composed of other complex
systems – networks of networks and systems of
systems).
Emergent Behavior
• “Emergent behavior is that which cannot be
predicted through analysis at any level simpler
than that of the system as a whole. Explanations
of emergence, like simplifications of complexity,
are inherently illusory and can only be achieved
by sleight of hand. Emergent behavior is what's
left after everything else has been explained.”
– George Dyson
Emergent Behavior
• In complex systems, failures are often
intermittent, transient, and convoluted. We are
creating designs so complicated that we
cannot anticipate all the possible interactions
and all the inevitable failures.
Example: Emergent Behavior
• Highway traffic jams – you know
there’s someone up there going
only 25 mph.
• The movement of the Stock
Market – who knows what
tomorrow will bring?
• The Millennium Bridge
in London – as people
walked across, it started
to sway.
The Swiss Cheese Failure Model
Component-4
Trigger
Defects
Component-1
Component-2
Component-3
FAILURE !!!
- James Reason
Example: Emergent Behavior
• On May 11, 1996, ValuJet 592 crashed into the
Florida Everglades killing all 110 passengers
and crew.
• A massive fire doomed the aircraft.
• The proximate cause was oxygen generators,
inadvertently loaded into the cargo hold, that
ignited and burned, BUT …
Reason’s Model: ValuJet 592
• SabreTech (outsourced maintenance vendor)
– To complete work before deadline, required their
technicians to work 12 hours/day, 7 days/week.
– Outsourced half its work to other vendors.
– For accuracy, they used “work cards” to detail the
steps for every maintenance procedure. Work card
0069 called for disabling the oxygen generation
canisters with locking caps or emptying them –
neither was done.
– Procedure called for red tags (condemned
components) to be applied to the canisters, No red
tags were available so green tags were used.
Reason’s Model: ValuJet 592
• SabreTech (continued)
– Four technicians signed off that they had correctly
performed the steps on card 0069 – none had.
– Several days later, another technician placed three
boxes of the oxygen generators on a shelf holding
other ValuJet materials.
– Because the work area was to be inspected, a clerk
placed the canisters in other boxes and wrapped
them in bubble pack and labeled them ValuJet
aircraft parts, to be returned to the airline.
– On May 11, 1996, they were loaded
onto flight 592.
Warning On Emergent Behavior
• “Too often, the potential range
of behavior of complex systems
has to be guessed at from a
small set of data. When a system
works normally, staying within a
narrow range of parameters, engineers make
their observations and hope they can
extrapolate more or less linearly to less
usual behavior.”
- James Gleick
The Butterfly Effect
• The Butterfly Effect – sensitive
dependence on initial conditions
– is the essence of Chaos Theory.
• The term was coined by Edward Lorenz, a
meteorologist, who gave a paper entitled
Predictability: Does the Flap of a Butterfly’s
Wings in Brazil set off a Tornado in Texas?
The Butterfly Effect
• You would expect that a set of
inputs that were very close
together would result in very
similar system behaviors.
• Lorenz was modeling the atmosphere with a
set of three simple partial differential
equations.
• One day he wanted to restart his computations
where he ended the day before. The previous
day’s last output was 0.506127. He entered
0.506 expecting to continue on.
The Butterfly Effect
• This is what he observed:
Sensitive dependence on initial conditions.
Restart point
Extreme
Differences
Hyper-Complex Systems
• Features:
– All the features of complex systems PLUS
– Components are dynamically located and
composed into systems,
– From multiple sources and with multiple versions,
– With unknown component histories in terms of
design, coding, testing, performance, security,
– Communicating over non-reliable networks.
A Warning To All
• “It is time to recognize that the standard
education of a scientist gives the wrong
impression. No matter how elaborate linear
mathematics could get … it inevitably misleads
scientists about their overwhelmingly
nonlinear world. The mathematical intuition so
developed ill equips the student to confront the
bizarre behavior exhibited by the simplest of
discrete nonlinear systems.”
- James Gleick
What Can Testing Actually Know?
• Modern view
– Find defects
– Count them
– Report them
Testing? So simple,
even a caveman
can do it.
What Can Testing Actually Know?
• Post-Modern view – “testing is an activity
that provides information that others use
to improve product and process quality”
– Testing status – number of tests planned,
developed, executed, passed, failed
– Defect status – count, severity, characteristics,
patterns
– Coverage assessment
Tester
Coverage Assessment
• Coverage is defined as
But, in hyper-complex systems, because of
their emergent behavior, we cannot know the
denominator.
Stuff we’ve tested
Stuff there is to test
Coverage Assessment
• In defining coverage that includes
emergent behavior, we have
NO CLUE !!!!!
• It’s like saying:
– I’ve pulled 54 dandelions
– I’ve painted 124 ft2 of fence
– I’ve driven 432 kilometers
• It’s data without context, it’s numbers without
information.
The Ethical Aspects
• ISTQB Code of Ethics (excerpts)
– Certified software testers shall act
consistently with the public interest
– Certified software testers shall ensure that that the
deliverables they provide (on the products and
systems they test) meet the highest professional
standards possible
– Certified software testers shall maintain integrity
and independence in their professional judgment
– Certified software testers shall advance the
integrity and reputation of the profession
Who
knew?
What To Do?
• “We need to orient ourselves
less towards confirmation,
verification, and validation
and more towards investigation
and discovery.”
— Michael Bolton
• And our stakeholders may not like this!
They’ll still ask for guarantees, and will ignore
our disclaimers
Thanks
• Thanks for joining with me today.
• If I can be of assistance, or if you’d just like to
chat, please contact me at
References
• Gleick, James. Chaos: Making a New Science. Penguin
Books, 1987.
• Mogul, Jeffery C. “Emergent (Mis)behavior vs. Complex
Software Systems”
http://www.hpl.hp.com/techreports/2006/HPL-2006-2.pdf
• Petroski, Henry. Success Through Failure: The Paradox
of Design. Princeton University Press, 2006.
• Reason, James. Human Error. Cambridge University
Press, 1990.
• Strauch, Barry. Investigating Human Error: Incidents,
Accidents, and Complex Systems. Ashgate, 2002.