System Testing
System testing (a.k.a., validation testing) is
the
construction phase blackbox
testing of an integrated
application against its
requirements.
The typical objectives of system testing are to:
- Validate the application (i.e., to determine if it
fulfills its requirements).
- Identify defects that are not efficiently identified
during unit and integration testing.
- Determine the extent to which the system is ready for
launch.
- Provide project status metrics (e.g., percentage of use
case paths successfully tested).
-
Functional Testing,
which is the testing of the application against its
operational requirements.
-
Performance Testing,
which is the testing of the application against its
performance requirements.
-
Load Testing, which is the
testing of the application that attempts to cause failures
involving how the performance of a system varies
under normal conditions of utilization.
-
Stress Testing, which is the
testing of the application that attempts to cause failures
involving how the system behaves
under extreme but valid conditions (e.g., extreme
utilization, insufficient memory inadequate hardware, and
dependency on over-utilized shared resources).
-
Reliability Testing,
which is the testing of the application against its
reliability requirements.
-
Robustness Testing,
which is the testing of the application that attempts to
cause failures involving how the system behaves
under invalid conditions (e.g., unavailability of
dependent applications, hardware failure, and invalid input
such as entry of more than the maximum amount of data in a
field).
-
Configuration
Testing, which is the testing of the application under
different hardware and software configurations to determine
an optimal system configuration.
-
Contention Testing,
which is the testing of the application that attempts to
cause failures involving concurrency.
-
Availablity Testing,
which is the testing of the application against its
operational availability requirements.
-
Portability Testing,
which is the testing of the application against its
portability requirements.
-
Security Testing, which is
the testing of the application against its security
requirements.
-
Operations Manual
Testing is the system testing of an integrated blackbox
[partial] application against the procedures in the
operations manual to see if it can be operated by the system
operator.
-
System Usability
Testing, which is the testing of the application against
its usability requirements.
- Reuse system test cases from one kind of system testing
to another so as minimize the total number of system test
cases to be developed and maintained.
- System testing is a validation technique.