Notes About Testing and Design Tools

Long-term goal: To understand the relationship between testing methodologies and design methodologies and how tools may support this relationship.

Short-term goal: To find testing tools which are integrated with design tools.

So far, this page consists of rough notes about such pairs of design and testing tools (or tools which provide both testing and design functionality).

Company: Rational
RequisitePro: "Team-Based Requirements Management".  The tools allows users to create and maintain a hierarchical list of requirements for a system.  The requirements can have attributes and can be sorted and prioritized.  Related requirements can be linked together.  When requirements change, the history records information about the change (when, by whom, why).  It links Microsoft Word together with special software for maintaining the requirements database.  From this, I would infer that the requirements are expressed in natural language rather than a formal notation.  There are templates available for compliance with "IEEE, ISO, SEI CMM and Rational Objectory ProcessÔ standards".

Quotes from Rational's web site about integration:

RequisitePro's integration with Rational RoseÔ, the award-winning visual modeling tool, links requirements to entities within Rose. This integration ensures that the software design meets the user, system and software requirements.

By integrating with Rational ClearCaseÔ , Microsoft SourceSafeÔ and INTERSOLV PVCS Version ManagerÔ, the leading configuration management products for software teams, RequisitePro archives and supports "check in/check out" of the project. With this integration, you can preserve your requirements together with the entire development project.

RequisitePro also provides traceability to test plans. You can export test requirements into Rational's SQA SuiteÔ to automate application testing. By linking requirements from RequisitePro to specific test suites and procedures, developers and testers can quickly and effectively implement requirements-based testing.

RationalRose: "graphical component modeling and development tool".  Uses UML (Unified Modeling Language) and related notations to model software.  Multi-language support.  Thirty-day evaluation copy available.  The online documentation mentions that Rose is integrated with Requisite Pro and with SQA Suite, but gives no details.

SQA Suite: An integrated set of testing tools.  See description in our list of testing tools.
Quote from web site: (I found no more details about integration with the other tools).

If the development team is using Rational Rose to model the software or Rational RequisitePro to develop traceable requirements, requirements can be automatically loaded into the SQA Repository from these packages to drive your requirements-based testing effort.
Summary: Rational's Rose, Requisite Pro and SQA Suite are integrated, but I could find little detail about exactly how this works.  It sounds like you can link requirements from Requisite Pro to test cases and suites in SQA Suite, to identify which requirements are being tested.  It's not clear to me how Rational Rose fits in and if it in fact has any integration with testing.

Apex & Testmate: Apex is a design and development tool, integrated with Rational Rose.  You use UML for system design and Apex supports an iterative model of system development, in which the design and code may both be modified.  Testmate can use the design to generate test drivers, stubs, and functional or structural test data.

Company: Centerline
Aqua is an "Application Delivery Management System".  Its focus is on managing the entire development lifetime and on integrating QA into the development process.  It can be integrated with Centerline's many testing tools, as well as numerous others.  It's not really a design tool, but it does allow testing activities to be identified with specific product requirements.

Company: Telelogic
SDT and ITEX are part of a collection of tools designed for real-time distributed systems.  SDT is a design tool using the object-oriented design language SDL.  It provides facilities for developing and refining a design, going from abstract to concrete, and also for analyzing a design for correctness.  ITEX is a testing tool using the TTCN test-description language.  It can generate test cases "semi-automatically" from the SDL design, or test hand-written test cases against the design.

Company: Cayenne
Ensemble is a reverse-engineering tool to aid in understanding, using and modifying existing C software.  It generates many different kinds of information about a system, including graphical views of control a data flow, complexity metrics, and various kinds of reports.  Ensemble Test is a part of the system which automatically generates functional test cases and measures test coverage.  It's not clear from the information on the web how tightly these functions are integrated -- i.e. whether the testing facility actually uses any of the information generated by the rest of the tool.

Company: Aonix
Software Through Pictures supports the entire development process, from design through testing.   Software is designed using one of several modeling methods such as UML.  As code is developed, the system ensures that the model and the code stay in synch.  The test case generator generates test cases automatically from specification information extracted from the system model.  (You can generate test cases for unit, integration and system testing.)  These test cases may be executed by one of several tools from other manufactures which may be integrated into the system.

Company: Software Emancipation
Discover is a set of many integrated products to improve the entire development process.  It uses an "information model" of the software; it doesn't identify any particular modeling method such as UML.  It sounds like you can automatically generate a model from existing software, or can create or edit a model directly and even generate some software from the model.  Testlink/sw is a tool that performs two testing functions.  First, it links test cases to individual requirements.  Second, for regression testing, it will figure out which tests need to be re-run after code is modified.

Company: Verilog
ObjectGeode is a toolset for the design, development and testing of real-time and distributed systems.  The user creates a model with the OMT, SDL and MSC notations, using graphical editors and browsers.  (The company is currently developing an added UML capability.)  The model can be checked before coding with simulation formal verification tools.  Another tool automatically generates C/C++ code (with some help from the user?).   Other tools generate TTCN tests from the model and can view actual execution of the system and compare its behavior with the behavior predicted by the model.

Company: Compuware
I've included this company in the list because it has a development environment that can be integrated with Rational Rose to provide object modelling facilities, and because it also has several testing tools.  The on-line information is almost exclusively marketing talk and I haven't been able to sort out whether the testing tools are integrated in any way with design methodology.

Company: Teradyne
TestMaster is a testing tool providing automatic test generation and test execution.  The Software Methods and Tools page says it's geared specifically towards telecommunications applications; Teradyne's own web page makes it sound more general.  Testmaster generates black box test cases automatically from a functional model of the system (using Extended Finate State Machines).  It includes facilities for developing this model.  The literature implies that this model should be used for developing the code also, but I couldn't find any evidence of integration with a development system.

Company: Imperial Software Technology
X-Designer is a tool for designing GUI applications.  The user builds a design and X-Designer generates code from it, with a choice of languages and platforms.  A capture-and-replay capability is included for testing.  I can't find a good description of what design notation is used, or an indication of whether there's any interaction between the design and testing facilities.