Software Failures and Faults
|
Does
software fail?
We tend to believe that well written, well tested,
safety critical software never fails. Experience
proves otherwise with software making headlines when
it actually does fail, sometimes critically.
Software does not exhibit the random or wear out
related failure behavior we see in hardware.
Software will always function in the same way.
Software faults are introduced in a variety of ways
during the design and development period. They do
not change over time. However, software faults will
only cause failures if the fault is encountered
during usage. Therefore faults existing in often
used code will cause failures more often than faults
residing in rarely used code.
What are
"software failure modes"?
Software, especially in critical systems, tends to
fail where least expected. We are usually extremely
good at setting up test plans for the main line code
of the program, and these sections usually do run
flawlessly. Software does not "break" but it must be
able to deal with "broken" input and conditions,
which are often causes for "software failures". The
task of dealing with abnormal/anomalous conditions
and inputs is handled by the exception code
dispersed throughout the program. Setting up a test
plan and exhaustive test cases for the exception
code is by definition difficult and somewhat
subjective.
Anomalous
inputs can be due to failed hardware, timing
problems, harsh/unexpected environmental conditions,
multiple changes in conditions and inputs that are
beyond what the hardware is able to deal with. Bad
user input may also be a source for such exception
conditions. Often the conditions most difficult to
predict are multiple coinciding irregular inputs and
conditions.
How do we
overcome these failures? Much in the same way we
treat hardware:
Software Reliability
Software Safety
Software FMEA
Software FTA
Requirements Analysis
For more
information about out software reliability and
safety services please contact:
[email protected]
(323) 410-0992
|