Testing
presents
an
interesting
dilemma
for
software
engineers,
who
by
their
nature
are
constructive
people.
Testing
requires that developer discard preconceived notions of the "correctness " of software just developed and then work hard to design test cases to "break" the software. Beizer describes this situation effectively when he states:
There's a myth that if we were really good at programming, there would be no bugs to catch. if only we could really concentrate, if only everyone used structured programming top down design then there would be no bugs, So goes the myth There are bugs, the myth says, because we are bad at what we do; and if we are bad at it. we should feel guilty about it Therefore testing and test case design is an admission