You
are here: Freetutes.com
> Systems
Analysis and Design
System Testing
Software is only one element of a larger computer-based system. Ultimately,
software is incorporated with other system elements and a series of system integration
and validation tests are conducted. These tests fall outside the scope of software
engineering process and are not conducted solely by the software developer.
System testing is actually a series of different tests whose primary purpose
is to fully exercise the computer-based system. Although each test has a different
purpose, all work to verify that all system elements have been properly integrated
and perform allocated functions. In the following section, different system tests
are discussed.
Recovery Testing
Many computer-based systems must recover from faults and resume operation within
a pre-specified time. In some cases, a system may be fault tolerant; that is,
processing faults must not cause overall system function to cease. In other cases,
a system failure must be corrected within a specified period or severe economic
damage will occur.
Recovery testing is a system test that forces the software to fail in a variety
of ways and verifies that recovery is properly performed. It the recovery is automated
(performed by system itself), re-initialization mechanisms, data recovery, and
restart are each evaluated for correctness. If the recovery requires human intervention,
the mean time to repair is evaluated to determine whether it is within acceptable
limits.
Stress Testing
Stress tests are designed to confront program functions with abnormal situations.
Stress testing executes a system in a manner that demands resources in abnormal
quantity, frequency, or volume. For example, (1) special tests may be designed
that generate 10 interrupts are seconds, when one or two is the average rate;
(2) input data rates may be increased by an order of magnitude to determine how
input functions will respond; (3) test cases that require maximum memory or other
resources may be executed; (4) test cases that may cause excessive hunting for
disk resident data may be created; or (5) test cases that may cause thrashing
in a virtual operating system may be designed. The testers attempt to break the
program.
Security Testing
Any computer-based system that manages sensitive information or causes actions
that can harm or benefit individuals is a target for improper or illegal penetration.
Security testing attempts to verify that protection mechanism built into a
system will protect it from unauthorized penetration. During security testing,
the tester plays the role of the individual who desires to penetrate the system.
The tester may attack the system with custom software designed to break down any
defenses that have been constructed; may overwhelm the system, thereby denying
service to others; may purposely cause system errors, hoping to find the key to
system entry; and so on.
Given enough time and resources, good security testing will ultimately penetrate
a system. The role of the system designer is to make penetration cost greater
than the value of the information that will be obtained in order to deter potential
threats.
<< Previous
Page | Contents
| Next Page >>
|