Software Testing Background
Chapter 1
2
In this chapter
Infamous software error case studies
What is a bug?
Why do bugs occurs?
The cost of bugs
What makes a good software tester?
3
Story of Bug
Mark II, Harvard University, 1947
Behemoth stopped working
A moth stuck between a set of relay contacts
Computer BUG was born
4
Infamous software error case studies
Disney Lion King, 1944-1945
Intel Pentium floating-point division bug, 1994
NASA Mars Polar Lander, 1999
Patriot Missile Defense System, 1991
The Y2K (Year 2000) Bug, circa 1974
Dangerous Viewing Ahead, 2004
5
What is a Bug
Software failure
The software didn’t operate as intended
Terms for Software Failure
Defect, Variance, Fault, Failure, Problem,
Inconsistency, Error, Feature, Incident, Bug,
Anomaly
Why should we know these terms?
6
Software Bug: A Formal Definition
Product specification
Software bug occurs when:
The software doesn’t do something that the
spec says it should do
The software does something that the spec
says it shouldn’t do
The software does something that the spec
doesn’t mention
The software is difficult to understand, hard to
use, slow
7
Why do Bugs Occur
Most of the bugs aren’t caused by
programming errors
Number one: Specification
Number two: Design
Number three: Coding error
Number four: Others
8
The Cost of Bugs
The cost are logarithmic
$1
$10
$100
$1000+
specification design code release
9
What Exactly Does a Software Tester Do?
The goal of software tester is to find bugs
The goal of software tester is to find bugs and
find them as early as possible
The goal of a software tester
is to find bugs,
find them as
early as possible
,
and make
sure they get fixed
Fixing a bug does not necessarily imply
correcting the software
10
What Makes a Good Software Tester?
Question: Is tester’s job easier than a programmer’s?
“As a matter of cosmic history, it has always been easier to destroy
than to create.”
List of traits for software testers:
They are explorers
They are troubleshooters
They are relentless
They creative
They are perfectionists
They exercise good judgment
They are tactful and diplomatic
They are persuasive
A fundamental trait of software testers is
they simply like to break things.