The different levels of testing
There are four levels
of software testing:
unit
testing, which is done by the programmer during development;
"unit" refers to "program", "module",
or whatever, including ActiveX objects, DLLs, etc. The emphasis
is on the correct functioning of the individual program.
system
testing, which is testing of related modules
or programs, on one platform, in a restricted environment, with
no access to other systems; "stubs" or "dummied
files" are used where other systems integrate with the system
under test. The emphasis is on the flow of data from one program
to another within the system under test. Systems external
to the system under test are ignored.
 integration testing, which is testing
of interacting systems; the emphasis is on the flow of data
between systems.
acceptance
testing, which is the formal acceptance of a finished
product, ensuring that the product satisfies the original
business requirements.
All of these are important, and are done during the development
of most software products. Each builds on the previous, and assumes
that the previous level has been done reasonably thoroughly and
correctly.
However, deadlines always slip, especially in large projects,
and so testing often gets compromised, since it is the last thing
in the system development life cycle, and the deadline is looming.
Typically, the programmers do only minimal testing, with no documentation
of test results, hoping that problems will be picked up in the
later stages of testing. Many companies also skip the system
testing phase entirely, expecting that integration testing will
pick up any problems.
This means that a massive emphasis is placed on integration
testing, and that problems discovered are now much harder to
fix, if only because they are several levels away from where
the problem is generated, and different people are involved.
Also, as the deadline looms ever closer, many companies do
no formal acceptance testing, which can be a major mistake, especially
on a large project, as this is the only time that anyone actually
looks at what was delivered and asks, "Is this what we asked
for?" |