Ch04 Agiletest
Ch04 Agiletest
Testing
(2nd edition)
Chapter 4
http://www.cs.gmu.edu/~offutt/software
test/
August 2014
The Increased Emphasis on Testing
Philosophy of traditional software development
methods
– Upfront analysis
– Extensive modeling
– Reveal problems as early as possible
More work must be
revised
Root problem is harder to
find
Cost
Delta
Time
Original Revision
Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt 2
Traditional Assumptions
1. Modeling and analysis can identify potential
problems early in development
2. Savings implied by the cost-of-change curve
justify the cost of modeling and analysis over
the life
These areoftrue
the ifproject
requirements are always
complete and current
But those annoying customers keep changing
their minds!
– Humans are naturally good at approximating
– But pretty bad at perfecting
These two assumptions have made software
engineering frustrating and difficult for
Thus, agile
decades
Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt 3
Why Be Agile ?
Agile methods start by recognizing that neither
assumption is valid for many current software
projects
– Software engineers are not good at developing
requirements
– We do not anticipate many changes
– Many of the changes we do anticipate are not
needed
Requirements (and other “non-executable
artifacts”) tend to go out of date very quickly
– We seldom take time to update them
– Many current software projects change continuously
Agile methods expect software to start small
and evolve over time
–
Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt 4
Supporting Evolutionary Design
Traditional design advice says to anticipate
changes
Designers often anticipate changes that don’t
happen Anticipat
ed
Anticipated Change
change that
Evolving
doesn’t Design
happen
Unanticipa
ted
Change
10
{ (1, 1) T
(1, 0) T
5
(0, 1) F
Y (10, 5) T
1 (10, 12) F }
1 X 5 10
Integrated Functional-
ity
Non-integrated functionality is
dangerous!
Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt 10
System Tests in Agile Methods
NO!
What do I DO?