Software Testing - Past, Present, and Future
Software Testing - Past, Present, and Future
Software Testing - Past, Present, and Future
Outline
The Past 30 Years of Seeking Quality Software
Miscellaneous testing facts
What is software testing?
Why is testing problematic?
Where do we go from here?
Reality Check
The amount of software in a typical device doubles
every 18 months [Reme Bourguignon, VP of
Philips in Holland (and numerous Airbus
officials)]
Our defect densities are about the same today as
they were at any other time in the past 20 years
0.5-2.0 software failures/KSLOC
Over the spectrum from game software to mainframe software to
safety-critical code
1. Process Improvement/Maturity
Clean Pipes, Dirty Water?
[J. Voas, "Can Clean Pipes Produce Dirty Water?", IEEE Software, July, 1997]
2. Formal Methods
Effective, but not the silver bullet
3:1 reduction in defect density in the CAA study [Pfleeger
and Hatton, IEEE Software, 1997]
London Air Traffic Control Centre, 200,000 lines of C
"We found no compelling quantitative evidence that formal design
techniques alone produced code of higher quality than informal
design techniques."
Cleanroom
Scalability
4. Code Measurement
Myth: Complexity correlates to testing costs: True
(but only for certain types of testing)
Myth: Complex software is bad software: False
Studies show that medium complexity modules are more
reliable than smaller ones. [L. Hatton, "Reexamining the
Fault Density-Component Size Connection", IEEE
Software, March, 1997]
5. Software Standards
Often very vague
Why Do We Test?
1. Assess Reliability
To test to 10-9 pof requires about 4.6 billion tests
Hardware reliability models are not well suited for
software!
No mass production
No physical decay
Failures may not be independent
Correct Software
Typical Software
Fault Density
This urn has five inputs that cause failure
One fault in the program is responsible for this failure
Thus, this fault is of density five
Goal of DFT: Big Bugs!
(Speculation: Formal methods decrease fault densities)
Design-for-Testability (DFT)
To change the shape of the
urn such that all black balls
(if any) are quickly selected
during sampling
Today.
Summary
All Gloom and Doom? No!
Testing is back! The key testing conferences are
so well attended that they are splitting into
biyearly forums. Practitioners are more
interested than ever.
Testing, in its many forms, is still the most
widely applied technique for certifying quality
Practical and theoretical weaknesses exist, even
for trivial software systems
Now is the time to invest in research, training,
and automated tools! We've lost 15 years!