What is CAST-Computer Aided Software Testing?

CAST-Computer Aided Software Testing
CAST-Computer Aided Software Testing

What is CAST-Computer Aided Software Testing:

CAST is Computer Aided Software Testing . During early days of testing we used to use only manual way of testing. It was tedious,time consuming and error prone. We could only check the bare minimum functionality check with traditional manual testing. All non functional testing were not taken into considerations. The delivery process was very much unrealistic.This approach made software unreliable. With the advancement from water fall to agile to extreme development QA becomes an integrated part of Development. QA not only has to test a piece of code functionally but also they have to look for requirement bugs or requirement update. Since the deliver -release to market become faster , QA needs to adopt other upgraded tool to aid their testing. CAST is a set of such tools that can help digital QA to achieve more with less.

As the latest trend is DevOps, these tools become an integrated part of Development and Operations. In this post we are going to see how and what are the areas where we can attach a CAST tool.

The utility of CAST: 


  • Requirements testing tools
  • Static analysis tools
  • Test design tools
  • Test data preparation tools
  • Test running tools - character-based, GUI
  • Comparison tools
  • Test harnesses and drivers
  • Performance test tools
  • Dynamic analysis tools
  • Debugging tools
  • Test management tools
  • Coverage measurement

Test design tools generate test inputs or executable tests from requirements, from a graphical user interface, from design models (state, data or object) or from code. This type of tool may generate expected outcomes as well (i.e. may use a test oracle). The generated tests from a state or object model are useful for verifying the implementation of the model in the software, but are seldom sufficient for verifying all aspects of the software or system. They can save valuable time and
provide increased thoroughness of testing because of the completeness of the tests that the tool can generate.
CAST tool
CAST tool
Other tools in this category can aid in supporting the generation of tests by providing structured templates, sometimes called a test frame, that generate tests or test stubs, and thus speed up the test design process.

Test data preparation tools

The below things can be done using CAST:


  1. Data manipulation
  2. selected from existing databases or files
  3. created according to some rules
  4. edited from other sources
  5. Test data preparation tools manipulate databases, files or data transmissions to set up test data to be used during the execution of tests. A benefit of these tools is to ensure that live data transferred to a test environment is made anonymous, for data protection.


Requirement Management tool:

The below things can be done using CAST:

  1. Automated support for verification and validation of requirements models
  2. consistency checking
  3. animation



Static analysis tools

The below things can be done using CAST:


  1. Provide information about the quality of software
  2. Code is examined, not executed
  3. Objective measures
  4. cyclomatic complexity
  5. others: nesting levels, size


Test design tools:

The below things can be done using CAST:

  1. Generate test inputs
  2. from a formal specification or CASE repository
  3. from code (e.g. code not covered yet)


Execution Tool:

The below things can be done using CAST:
Test execution tools enable tests to be executed automatically, or semi-automatically, using stored inputs and expected outcomes, through the use of a scripting language. The scripting language makes it possible to manipulate the tests with limited effort, for example, to repeat the test with different data or to test a different part of the system with similar steps. Generally these tools include dynamic comparison features and provide a test log for each test run.Test execution tools can also be used to record tests, when they may be referred to as capture
playback tools. Capturing test inputs during exploratory testing or unscripted testing can be useful in order to reproduce and/or document a test, for example, if a failure occurs.

  1. Interface to the software being tested
  2. Run tests as though run by a human tester
  3. Test scripts in a programmable language
  4. Data, test inputs and expected results held in test repositories
  5. Most often used to automate regression testing

Character-based Testing:

The below things can be done using CAST:


  1. simulates user interaction from dumb terminals
  2. capture keystrokes and screen responses
  3. GUI (Graphical User Interface)
  4. simulates user interaction for WIMP applications (Windows, Icons, Mouse, Pointer)
  5. capture mouse movement, button clicks, and keyboard inputs
  6. capture screens, bitmaps, characters, object states



Comparison Tools:

The below things can be done using CAST:


  1. Detect differences between actual test results and expected results
  2. screens, characters, bitmaps
  3. masking and filtering
  4. Test running tools normally include comparison capability
  5. Stand-alone comparison tools for files or databases


Test harnesses and drivers creation:

The below things can be done using CAST:

  1. Used to exercise software which does not have a user interface (yet)
  2. Used to run groups of automated tests or comparisons
  3. Often custom-build
  4. Simulators (where testing in real environment would be too costly or dangerous)


Performance testing tools

Performance testing tools monitor and report on how a system behaves under a variety of simulated usage conditions. They simulate a load on an application, a database, or a system environment,such as a network or server. The tools are often named after the aspect of performance that they measure, such as load or stress, so are also known as load testing tools or stress testing tools. They are often based on automated repetitive execution of tests, controlled by parameters.

The below things can be done using CAST:
  1. Load generation
  2. drive application via user interface or test harness
  3. simulates realistic load on the system & logs the number of transactions
  4. Transaction measurement
  5. response times for selected transactions via user interface
  6. Reports based on logs, graphs of load versus response times



Dynamic analysis tools

The below things can be done using CAST:


  1. Provide run-time information on software (while tests are run)
  2. allocation, use and de-allocation of resources, e.g. memory leaks
  3. flag unassigned pointers or pointer arithmetic faults


Debugging tools

The below things can be done using CAST:


  1. Used by programmers when investigating, fixing and testing faults
  2. Used to reproduce faults and examine program execution in detail
  3. single-stepping
  4. breakpoints or watchpoints at any statement
  5. examine contents of variables and other data



Test management tools

The below things can be done using CAST:

  1. Management of testware: test plans, specifications, results
  2. Project management of the test process, e.g. estimation, schedule tests, log results
  3. Incident management tools (may include workflow facilities to track allocation, correction and retesting)
  4. Traceability (of tests to requirements, designs)



Coverage measurement tools

The below things can be done using CAST:

  1. Objective measure of what parts of the software structure was executed by tests
  2. Code is instrumented in a static analysis pass
  3. Tests are run through the instrumented code
  4. Tool reports what has and has not been covered by those tests, line by line and summary statistics
  5. Different types of coverage: statement, branch, condition, LCSAJ, et al


Test execution tools

The below things can be done using CAST:

Test execution tools enable tests to be executed automatically, or semi-automatically, using stored inputs and expected outcomes, through the use of a scripting language. The scripting language makes it possible to manipulate the tests with limited effort, for example, to repeat the test with different data or to test a different part of the system with similar steps. Generally these tools include dynamic comparison features and provide a test log for each test run.Test execution tools can also be used to record tests, when they may be referred to as capture
playback tools. Capturing test inputs during exploratory testing or unscripted testing can be useful in order to reproduce and/or document a test, for example, if a failure occurs.



Performance testing/load testing/stress testing tools

Performance testing tools monitor and report on how a system behaves under a variety of simulated usage conditions. They simulate a load on an application, a database, or a system environment,such as a network or server. The tools are often named after the aspect of performance that they measure, such as load or stress, so are also known as load testing tools or stress testing tools. They are often based on automated repetitive execution of tests, controlled by parameters.

Monitoring tools

Monitoring tools are not strictly testing tools but provide information that can be used for testing purposes and which is not available by other means.Monitoring tools continuously analyze, verify and report on usage of specific system resources, and
give warnings of possible service problems. They store information about the version and build of the software and testware, and enable traceability.
What is CAST-Computer Aided Software Testing? What is CAST-Computer Aided Software Testing? Reviewed by Animesh Chatterjee on July 19, 2009 Rating: 5

No comments:

Powered by Blogger.