The purpose of the Quality Assurance Team in software development
by Gene Michael Stover
created Saturday, 2009-11-14 T 09:02:03Z
updated Tuesday, 2013-01-29 T 14:55:13Z
I sometimes hear that the purpose of the Quality Assurance Team is
to break things. That's wrong.
I often hear that the purpose of the Quality Assurance
Team is to ensure that only high-quality product reaches the
customer. That's effectively correct, but it's such a
soulless answer.
So here's my analogy to explain the purpose of the Quality
Assurance Team on a software development project.
My analogy
An application exists in a space described by its features &
bugs. The space is multi-dimensional & too complex for a human to
imagine, but for the moment, imagine a map of a landscape with hills,
grass, mountains, forests... standard map stuff.
The application exists on that map.
By providing us with Requirements, the users specify a location on
that map. That's where the users want the application to be.
By creating & modifying code, the programmers have the power
to move the application around the map.
By measuring the application, the QA team determines the location of
the application on the map.
By taking all this into consideration & thinking ahead, the
project manager tells the programmers which direction to move the
application & tells the users when the application will
arrive.
Details, details
Users rarely give us requirements directly. So where I say that
users give us requirements, we really get those requirements from
their representatives: UI designers, architectures, visionaries.
Where I say "measuring the application", we usually say
"testing".