Computer Aided Software Testing (CAST) tools can be used at all stages of
the test process.
Not all of the tools actually run the program. Some of them are used to
analyse the code before the code is even compiled. Further it must be
remembered that a tool may have more than one use or capability.
Documentation Control and Management
Computer Aided Software Engineering (CASE)
Program Code Management
Runtime Execution
Documentation Control and Management
These tools enable automated verification and validation of requirements
models such as consistency checking and animation. Thus finding ambiguities
and inconsistencies.
Computer Aided Software Engineering (CASE)
These tools are used to interface with an external CASE repository or to
manipulate live or test data held in an existing database or file
system.
Comparison tools
Detecting differences between actual and expected results are the aims
of these tools. Using "comparators" for comparing GUI objects or bitmaps.
Usually the tester can mask off areas of the screen that are not to be
compared.
Test data preparation tools
Test data is prepared in existing databases. This data is then used to
drive automated testing. Typical uses of this technology is for keyword or
action word testing.
Test Design Tools
generate test cases from a specification held in a CASE tool repository
or from requirements formally specified within the tool. Alternatively test
cases are designed following an analysis of the code. Definition available
on Test Design Techniques.
Program Code Monitors the quality of source
code and and executable code from a program design specification.
Static Analysis
Examining code, provide the information with these tools. They seek to
give objective measures of characteristics such as McCabes Cyclomatic
Complexity Metric and path coverage. See more on Static Analysis
Dynamic Analysis
These tools provide runtime information on the state of executing
software. Monitoring allocation, use of, and de-allocation of memory leaks,
unassigned pointers are tasks undertaken by these tools.
Coverage Measurement
Coverage tools provide objective measures of structural test coverage
when tests are executed. Statement or branch coverage statistics are
provided in a log file after execution.
Test Harnesses and Drivers
Where software to be tested involves an interface to another component
that has not yet been built, a test
harness can be used. Alternatively to run a series of controlled
automated scripts.See more Dynamic
Analysis
Debugging Tools
Developers are able to reproduce bugs and investigate the state of
software. This can be done line by line. Execution can be halted at any
time to check variables. A trace log can be used to record the code
execution path.
Management
Test data both as input and output is managed by these tools. The test
environment can also be controlled.
Configuration Management
A very large sector of the tools area. They are not generally considered
part of the Test Automation area. Indeed more efficient productivity of the
development process. They are designed to support the Software Development
Life Cycle. Typical functions include secure storage, change control and
build development.
Incident Management
Reporting and analysis are generated by these tools. They may also have
work-flow to track and control allocation, correction and re-testing.
Test Management Tools
Creation, management and control of test documentation. They may also
offer project management facilities for testing: scheduling of tests,
result logging and management of incidents..
Runtime Execution
Performance Test
Performance tools have two main facilities. Load generation and test
transaction measurement. Load generation is completed by either driving the
application by using its interface. Alternatively test drivers simulate
loads generated by application on architecture. Detailed measurements are
taken and passed to a log file. More Load Testing
Character based and GUI Capture Replay
The tools simulate user-entered keystrokes and capture screen responses
for comparison. Mouse movements, clicks and keyboard inputs can all be
generated. A programmable language is often used to generate test
specifications. Very important in regression testing.
|