4.2 SYSTEM TESTING
Software Testing is the process of executing a
program or system with the intent of finding errors. Or, it involves any
activity aimed at evaluating an attribute or capability of a program or
system and determining that it meets its required results. software is
not unlike other physical processes where inputs are received and
outputs are produced. Where software differs is in the manner in which
it fails. Most physical systems fail in a fixed (and reasonably small)
set of ways. By contrast, software can fail in many bizarre ways.
Detecting all of the different failure modes for software is generally
infeasible System testing is performed on the entire system in the
context of a Functional Requirement Specification(s) (FRS). System
testing tests not only the design, but also the behaviour and even the
believed expectations of the customer. It is also intended to test up to
and beyond the bounds defined in the software/hardware requirements
specification(s).
The black-box approach is used as a testing method
for this project in which test data are derived from the functional
requirements without regard to the final program structure [Perry90]. It
is also termed data-driven, input/output driven [Myers79], or
requirements-based [Hetzel88] testing. Because only the functionality of
the software module is of concern, black-box testing is also refers to
functional testing, a testing method emphasized on executing the
functions and examination of their input and output data [Howden87]. The
tester treats the software under test as a black box - only the inputs,
outputs and specification are visible, and the functionality is
determined by observing the outputs to corresponding inputs. In testing,
various inputs are exercised and the outputs are compared against
specification to validate the correctness. All test cases are derived
from the specification. No implementation details of the code are
considered.
4.2.1 WHY IS SYSTEM TESTING IMPORTANT?
- To improve quality
As computers and software are used in critical applications, the outcome of a bug can be severe. Bugs can cause huge losses. Bugs in critical systems have caused airplane crashes, allowed space shuttle missions to go awry, halted trading on the stock market, and worse. Bugs can kill. Bugs can cause disasters. The so-called year 2000 (Y2K) bug has given birth to a cottage industry of consultants and programming tools dedicated to making sure the modern world doesn't come to a screeching halt on the first day of the next century. [Bugs] In a computerized embedded world, the quality and reliability of software is a matter of life and death. Quality means the conformance to the specified design requirement. Being correct, the minimum requirement of quality, means performing as required under specified circumstances. Debugging, a narrow view of software testing, is performed heavily to find out design defects by the programmer. The imperfection of human nature makes it almost impossible to make a moderately complex program correct the first time. Finding the problems and get them fixed [Kaner93], is the purpose of debugging in programming phase.
- For Verification & Validation (V&V)
Another important purpose of system testing is verification and validation (V&V). Testing can serve as metrics. It is heavily used as a tool in the V&V process. Testers can make claims based on interpretations of the testing results, which either the product works under certain situations, or it does not work. We can also compare the quality among different products under the same specification, based on results from the same test.
4.3 SYSTEM DOCUMENTATION
This can be described as written materials related to how the system was designed, the way the system works, the way to install the system software and other technicalities related to the new system. This written material could be in the form of books, manual, installation guides, description and diagrams. It serves the purpose of guiding the user on how to use the software.
