Software Testing Types
- COMPATIBILITY TESTING. Testing to ensure
compatibility of an application or Web site with different browsers,
OSs, and hardware platforms. Compatibility testing can be performed
manually or can be driven by an automated functional or regression test
suite.
- CONFORMANCE TESTING. Verifying
implementation conformance to industry standards. Producing tests for
the behavior of an implementation to be sure it provides the
portability, interoperability, and/or compatibility a standard defines.
- FUNCTIONAL TESTING. Validating an
application or Web site conforms to its specifications and correctly
performs all its required functions. This entails a series of tests
which perform a feature by feature validation of behavior, using a wide
range of normal and erroneous input data. This can involve testing of
the product's user interface, APIs, database management, security,
installation, networking, etcF testing can be performed on an automated
or manual basis using black box or white box methodologies.
- LOAD TESTING. Load testing is a generic
term covering Performance Testing and Stress Testing.
- PERFORMANCE TESTING. Performance testing
can be applied to understand your application or WWW site's scalability,
or to benchmark the performance in an environment of third party
products such as servers and middleware for potential purchase. This
sort of testing is particularly useful to identify performance
bottlenecks in high use applications. Performance testing generally
involves an automated test suite as this allows easy simulation of a
variety of normal, peak, and exceptional load conditions.
- REGRESSION TESTING. Similar in scope to a
functional test, a regression test allows a consistent, repeatable
validation of each new release of a product or Web site. Such testing
ensures reported product defects have been corrected for each new
release and that no new quality problems were introduced in the
maintenance process. Though regression testing can be performed manually
an automated test suite is often used to reduce the time and resources
needed to perform the required testing.
- SMOKE TESTING. A quick-and-dirty test
that the major functions of a piece of software work without bothering
with finer details. Originated in the hardware testing practice of
turning on a new piece of hardware for the first time and considering it
a success if it does not catch on fire.
- STRESS TESTING. Testing conducted to
evaluate a system or component at or beyond the limits of its specified
requirements to determine the load under which it fails and how. A
graceful degradation under load leading to non-catastrophic failure is
the desired result. Often Stress Testing is performed using the same
process as Performance Testing but employing a very high level of
simulated load.
- UNIT TESTING. Functional and reliability
testing in an Engineering environment. Producing tests for the behavior
of components of a product to ensure their correct behavior prior to
system integration.
|