Next: About this document
Up: Testing
Previous: Philosophy of Testing
- PPF_Interface Testing for the interface will happen mainly during integration testing.
The purpose of the PPF_Interface is to call the correct subcomponent when an interface method is
called. After each of the subcomponents is tested for correctness, each of the interface methods
will be tested to ensure the correct subcomponent is called in all preconceived scenarios.
- PPF_Statistics The PPF_Statistics class will be tested as an individual component and
when integrated with the timer. White box testing will consists of creating debug files
of all computations during trial runs from a driver program. A debug file dump will allow
us to trace through the computations and verify correctness. Each statistical computation will
be tested on data sets with known answers to ensure correctness. Illegal number usage (such as
negatives) must be caught and filtered by the software and hence these numbers and other bounds
conditions will be tested. Black box testing will consist of the PPF_Statistics package integrated
with PPF_Timer. During these tests it will be assumed that PPF_Timer has already been tested.
Tests will check final results after exhaustive runs from a driver file.
- PPF_Logic PPF_Logic may be the most difficult component to test. It must be tested
individually and integrated with the PPF_Parrallel_Wrapper class. Testing should
include the following:
- Ensure that domains and neighbor array lookup tables are loaded correctly. Testing
should include loading a mesh and physically plotting out the neighbors to ensure
correctness.
- Ensure that particles are being sent to the correct domain. Each particle tested
must be identifiable by a unique ID so as to be traceable. Each test should be
from a contrived driver file, where each particle destination is known before hand.
This is one of the most critical portions of the PPF and correctness must be ensured
to the best ability of the developers.
- Ensure that the PPF_Logic only sends particles when enough particles are present
to justify the message passing overhead. This limit must be tested and may be
a variable parameter within the code. White box testing of particle numbers in
each particle send should be adequate for this.
- During times when a node is saturated particles must be written to disk to free up
RAM. This can be tested by creating readable ASCII files for each particle written
and read to disk. After a run from a driver file, each file should be checked to ensure
that all particles which were written to disk were read and moved correctly. Obviously
if the node crashes during a test, the PPF_Logic did not handle the freeing of memory correctly.
- PPF_Parallel_Wrapper Send and receive pairs must be tested for correctness. Currently
the PPF is planned to be run only on homogeneous distributed systems, however if it is ported
to a heterogeneous system, like a Linux beowolf cluster, byte ordering may be a problem. During
test runs, each send and receive should dump a debug file detailing the exact byte data sent and
received to ensure the data is not being corrupted. This must be rigorously tested on all
architectures supported by the PPF.
Next: About this document
Up: Testing
Previous: Philosophy of Testing
Tue Apr 11 23:58:21 MST 2000