Expecco Reflection Library

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Introduction[Bearbeiten]

The Reflection Library contains building blocks to automate expecco itself and to construct or modify a project tree.

Its main use is to automatically generate test suites or libraries.
For example, to import specifications in a textual format, a database or a QM-system and generate test skeletons or concrete action blocks and/or test suites.

For more information, please refer to the documentation and examples inside the library.

Typical Uses[Bearbeiten]

The reflection library can be used to:

  • automatically generate test suites from textual descriptions or DB query results
  • automatically generate datatypes (e.g. from descriptions, header files etc.)
  • merge, filter and execute test suites
  • bulk renaming, bulk annotating of elements in a number of suites
  • extraction of annotations from a number of suites
  • generation of custom documents from suites
  • conversion/migration of existing test cases

In the past, Expecco customers have used this library to:

  • fetch test specs from a QM system, generate test plans on-the-fly, and upload results
  • build suites from excel tables (i.e. from a CSV document)
  • fetch test parameters from a custom data base
  • merge multiple partial test suites into a a configurable test-run suite
  • automatic adding of procedures to a suite
  • automatic extraction of documentation from a suite into custom formats
  • automatic generation of test steps to call python or C functions, given header files or annotated doxygen source files.

Functionality[Bearbeiten]

Browser Manipulation[Bearbeiten]

These include action blocks to simulate various user actions, either towards the currently running expecco application, or to a secondary expecco window. For example, to open, close expecco windows, to switch to particular tabs, or to change the selection in the item tree.

Project Manipulation[Bearbeiten]

Includes blocks to create test suites, to manipulate environments (create/modify variables), and to load and save test suite files (".ets"-files). There are both blocks which operate on a browser window, and blocks which operate on a project object itself (i.e. without a need for a browser window).

Tree Manipulation[Bearbeiten]

Includes blocks to create actions, datatypes, attachments and folders in a project's item tree.

Diagram Editing[Bearbeiten]

Includes blocks to create activity diagrams, to add steps and to connect pins.

Text Editing[Bearbeiten]

These operate on the currently running expecco, and are mostly useful for code-generation utilities, which can be bound to user-defined menu items.

Execution[Bearbeiten]

This allows for a testplan to be executed automatically, under control of another activity.

Reporting[Bearbeiten]

Actions to generate test reports.

Examples[Bearbeiten]

The following gives a rough sketch on how to extract a test specification from a relational database. It is not as such directly executable, as it depends on the structure of the database and the layout of records.

Assuming that the database contains a table named "TestSpecs", which relates tests with parameters and test steps. The following asks the operator for a test-name, queries the database and collects steps and parameters:

<<picture to be added>>

Then that information is passed to a test generator, which

  • creates a testplan,
  • enumerates the steps and adds test cases,
  • enumerates the parameters and creates variables

<<picture to be added>>

Finally,

  • the test is executed,
  • a report generated,
  • and also written back to the database

<<picture to be added>>

All this is wrapped up into one action, which is defined as "to be automatically executed When the suite is loaded":

<<picture to be added>>

The tester then only needs to start expecco on that suite.



Copyright © 2014-2024 eXept Software AG