Expecco Reflection Library
Inhaltsverzeichnis
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.