Figure 3. Driver and Stub Generation
This system differs from other
Computer Aided Software Test (CAST) tools
in that it allows testing to start earlier in the
software lifecycle. Existing CAST tools
require a complete and executable version of
the program to exist to begin testing. Also, the
program must accept screen input and produce
some sort of screen output to validate that the
program is working properly. This is
acceptable for Windows based program testing,
but it is of little value for embedded software.
"The best approach is integrating a good test
design process with the right automation
technology. Test design requires knowledge of
the application domain as well as test design
techniques, but does not require programming
literacy" [Kit991.
With the Graybox toolset, you can test
the first subroutine or function immediately
after it is coded even though no module exists
to invoke the routine. Graybox fills in the
blanks automatically once the module is
plugged into the system. Graybox uses the
parameter list of the module instead of the
screen to provide stimulus and to verify
responses. Graybox is analogous to a hardware
tester that uses an Interface Test Adapter (ITA)
to allow the tester to test a board by providing
the stimulus and response signals at the boards
interface. Unlike a hardware tester, Graybox
builds the ITAs automatically. And the savings
can result in over 75% reduction in test code
generation time.
Savings are also realized in terms of
disk space utilization, since the test code does
not need to be saved. Savings are realized in
programmer learning curves. Once a
programmer is familiar with how a program is
tested with the Graybox toolset they are
familiar with how all programs in the
organization are tested. Programmers can be
moved from project to project and will be able
to modify and re-test any program in the
organization with just the basic knowledge of
how the Graybox toolset operates.
The tools provided by the Graybox
toolset will give confidence to management
that the software has been tested and the degree
to which the program has been tested. The
regression testing capability of the Graybox
toolset will validate that changes to an
operational program have not introduced
unknown side effects. The Graybox
methodology is a lifecycle testing methodology
used to validate mission critical embedded
software.