Information Technology Reference
In-Depth Information
White box testing
—White box testing is mostly done by developers. It is
based on knowledge of the internal logic of an application's code. Tests are
based on coverage of code statements, branches, paths, conditions, loops, and
so on. For white box testing, test coverage is also done so that how much of
the application has been tested in a release is known.
Unit testing
—Unit testing is done by developers themselves. It is the
most “micro” scale of testing, to test particular functions or code mod-
ules. It is typically done by the programmer and not by testers, as it
requires detailed knowledge of the internal program design and code. It
is not always easily done unless the application has a well-designed archi-
tecture with tight code; it may require developing test driver modules or
test harnesses.
Incremental integration testing
—Continuous testing of an application as
new functionality is added requires that various aspects of an application's
functionality be independent enough to work separately before all parts of
the program are completed or that test drivers be developed as needed; it is
done by programmers or by testers.
Integration testing
—Testing of combined parts of an application to deter-
mine if they function together correctly. The parts can be code modules, indi-
vidual applications, client and server applications on a network, and so on. This
type of testing is especially relevant to client/server and distributed systems.
Functional testing
—Black box-type testing geared to functional require-
ments of an application; this type of testing should be done by testers. This
does not mean that the programmers should not check that their code works
before releasing it (which of course applies to any stage of testing).
System testing
—Black box-type testing that is based on overall requirements
specifications; it covers all combined parts of a system. In the hierarchy of
testing types, system testing comes below user acceptance testing. It does not
cover integration testing, which is done to ensure that the software product
works well with other software products with which it has to be integrated.
End-to-end testing
—Similar to system testing, end-to-end testing represents
the “macro” end of the test scale; it involves testing of a complete application
environment in a situation that mimics real-world use, such as interacting
with a database, using network communications, or interacting with other
hardware, applications, or systems if appropriate.
Sanity testing or smoke testing
—Typically an initial testing effort to deter-
mine if a new software version is performing well enough to accept it for a
major testing effort. For example, if the new software is crashing systems
every 5 minutes, bogging down systems to a crawl, or corrupting databases,
the software may not be in a “sane” enough condition to warrant further test-
ing in its current state.
Regression testing
—Retesting after fixes or modifications of the software
or its environment. It can be difficult to determine how much retesting is
Search WWH ::




Custom Search