Since our contract specified several extensions of the existing functionality of IRIS, our testing focused on the correct behavior and robustness of these extensions, rather than the existing functionality. Given the graphical user interface nature of our program and the existing robustness of the code, an automated test scaffolding was not desireable. In addition, because of the existing structure of the code and the module cohesion, some of the code generation and parallel testing was done in a Top-down strategy.
While many tests were done to ensure that each module was interacting correctly during development, listed below are a list of test that were completed. In addition, all changes to code were made in separate directories and tested before being integrated into our code base using CVS. Our code passed all tests below, unless otherwise stated.
File I/O
Tested different file headers. If the appropriate
header information was not read or not read correctly, no information was
updated in the Load Grey Data window and an error message displayed.
Multicolor Display
The appropriate label(s) were displayed on the
screen according to the rgb specifications in the label description.
When the visibility of each label was changed, that label correctly reflects
that change (pressing the "Update Mesh" button may be required).
Smoothing
Initially, parameters were printed out to the screen
when passed the the right module and set correctly. Once parameters
were found that seemed to produce acceptable visual feedback on the screen,
all possible combinations of levels on the sidebars were tested.
In addition, the window used to specify parameters were tested with random
data.
Cut Planes
Module was tested to make sure that the right mouse
clicks were being handled by the appropriate function. Once two valid clicks
of the right mouse button are entered, a visual check via the displayed
cut plane as well as console messages written specifically to output plane
parameters were put in place to ensure that the Cutplane functions were
all working together and working properly. The next step in testing
the Cut Planes function was to define the plane, verify its correctess,
followed by a press of the "Accept " button to committ the changes into
the Voxel Data set and the the "Update Mesh" button to view the relabeling
of the voxels in the 3D window.
Spray Paint
Module was tested to make sure that the left mouse
clicks were being properly handled by the appropriate function(since both
CutPlanes ad Spray 3D are enabled by the same Toolbar button). The
spray function was also tested by using the spray, viewing the visual feed
back from the 3D window and then pressing the "Accept" button to register
the changes followed by pressing the "Update Mesh" button to view the changes
in the 3D Window.