Tree Elements/en: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Cg (Diskussion | Beiträge) |
Sv (Diskussion | Beiträge) (Weiterleitung nach Kategorie:Tree Elements/en erstellt) |
||
Zeile 1: | Zeile 1: | ||
#redirect [[:Category:Tree Elements/en]] |
|||
== Introduction == |
|||
Tree elements are all elements in a [[Testsuite|testsuite]]. They are displayed and managed in the so-called project tree, which is shown on the left of the expecco application. |
|||
== Common Attributes of all Tree Items == |
|||
==== Name ==== |
|||
You can give tree items an arbitrary name. This name is not used within expecco for referencing to an item (see "IDs"-Section below). Thus, you can change the name of any item at any time without a need to search for uses of the item. |
|||
The name can be further translated by a model language translation table, so that both the user interface of expecco and the names attached to items are translated. This makes it possible to present the same model to team users speaking different languages. |
|||
==== IDs ==== |
|||
Each element in the project has two special IDs (Identifiers). One is the so called "Functional-ID" which is assigned once, when the element is created initially and never changed thereafter. The other is the "Version-ID". This is reassigned with every modification. Inside expecco, elements are referred to by their ID, not by name. This makes it easy to change the name at any time later without a need to change other parts of the suite. |
|||
The "Version-ID" is used to quickly detect identical elements (for example, when merging projects from different files). |
|||
The "Functional-ID" is used when reimporting libraries; i.e. to identify which blocks should be automatically replaced by newer versions. |
|||
The name of a tree element is not used by the system to identity elements; this is only used for presentation to the user. |
|||
==== Tags ==== |
|||
Symbolic tags can be attached to tree elements. The main use of a tag is to group items by function and make finding items in search boxes easier (the search functions provide a check box to enable/disable search by tag). In addition, tags can be used to filter tests for execution or to associate colors. For example, the diagram settings dialog allows for particular colors to be attached to particular tags. You can use this to mark critical, obsolete, input/output related or other items by color both in the tree and in activity diagrams. |
|||
== Test Items == |
|||
[[Bild:Tree_Elements.PNG|thumb|164px|All tree elements]] |
|||
==== [[Testplan Element|Testplan]] ==== |
|||
A testplan contains a list if test cases, also called "test case items" or "test items" for short. |
|||
A testcase item can be either an action (i.e. a block), or another testplan. |
|||
Testcases within a testplan are normally executed sequentially, until either the last testcase has been executed, or any testcase reports a failure or error. However, individual items can be skipped or marked as optional, which means that their outcome does not stop the overall testplan execution. |
|||
==== [[Performance Test Element|Performancetest]] ==== |
|||
A performance test consists of three types of items: |
|||
* load generators |
|||
* measuring blocks |
|||
* test actions |
|||
Together, these generate load on the system under test and measure its behavior during the test action execution. |
|||
Support for performance tests is being developed and as yet an unpublished feature of expecco. |
|||
== Libraries == |
|||
Libraries are collections of blocks. They are nested in the "Imports" node. |
|||
Libraries like the Standard Library or the Qt-Interface library are provided by eXept, either as part of the standard delivery or as additional extension, which must be purchased separately. |
|||
However, you can also create your own project-specific libraries. Or provide them as a supplier |
|||
to a third party, or aquire them from a third party. |
|||
Libraries can contain any type of element, including datatypes, attachments, elementary and compound blocks. Libraries can also use and import additional libraries. |
|||
Already included in all releases of expecco are the following libraries: |
|||
* [[Standard Library]] |
|||
* [[Selenium Library]] |
|||
Upon request, other libraries are available. For example: |
|||
* Interfaces to specific rich-client GUIs (Qt, JavaSwing, ST/X, Ranorex) |
|||
* Interfaces to specific applications like SAP, Siebel,... |
|||
* Bridges to manipulate and access internals of the System Under Test, if written in Java or a .NET language. |
|||
* Databases |
|||
* Webservices |
|||
* CAN/MOST |
|||
* GPIB, VISA |
|||
* Various Document formats |
|||
<!-- |
|||
==== [[Library-Create|Create a library]] ==== |
|||
==== [[Library-Import|Import a library]] ====--> |
|||
==== [[Library-ReImport|Reimporting a Library]] ==== |
|||
By default, imported libraries behave like "statically linked code". This means, that a copy of the required parts of the imported library is loaded into the test suite. After the import, the suite is independent of the original imported library: it can be cahnged, enhanced or even deleted without affecting the testsuite which imported it. |
|||
As a concequence, this prevents the "DLL hell", commonly known in the MS windows world, where the installation of new libraries may affect functions which used to work before, without actually touching any of the affected functions. |
|||
If a suite worked at some time on the past, it will continue to do so, even if other group members change or break the import library. |
|||
However, at some ocasion, you may want to upgrade your test suite, in order to make use of additional functions in an import library or to get new advanced versions of the blocks contained therein. For this, an explicit "reimport" operation is needed, in order to upgrade a project's imported libraries to the new version. |
|||
Notice, that a reimport is a non-trivial operation: there might be new pins, changed datatype definitions, missing actions which were present before and many other possible problems. The reimport operation will detect these and provide an appropriate trouble-resolving dialog. Also, it is completely protected by the undo mechanism: if there is too much trouble with the new version, you can go back to the original and import individual blocks manually via drag & drop, replace blocks and rewire missing connections as required. |
|||
==== [[Virtual Library]] ==== |
|||
Virtual libraries allow for the behavior of a group of actions to be determined and changed at runtime. Similar to abstract functions in an OO-programming language, virtual blocks only define the interface (number and types of pins) of a block, but no concrete implementation. A virtual library is a collection of such virtual blocks. Its components can be used and placed like any other block with a test scenario. However, for execution, a concrete library needs to specified, which contains concrete implementations for every virtual block. The choice of a concrete library can be done statically or even dynamically at execution time (for example, to dynamically determine which communication protocol is required, and associate corresponding implementation blocks at the time the system under test is investigated). |
|||
== Action Blocks == |
|||
==== [[ElementaryBlock_Element|Elementary Block]] ==== |
|||
Elementary blocks describe actions which are implemented as low-level primitives. These are either implemented in a scripting programming languge (such as JavaScript, Smalltalk, Shell, Batch, Perl or Ruby) or by calling an existing function written in any language in a DLL or via a remote procedure call (SOAP, XML-RPC, REST etc.). |
|||
Elementary blocks are usually provided by programmers or by eXept, as part of their standard or plugin libraries. They are typically used to implement low-level functionality, helper blocks or communication interfaces which are required by higher level test scenarios. Most of the elementary block's code consists of a few lines of code. The code of elementary blocks is stored within a suite and can be inspected (and even changed) at any time - even during a test suite's execution. There is no need to recompile, link or even shut down the expecco system, when an elementary block's code is changed. |
|||
==== [[CompoundBlock_Element|Compound Block]] ==== |
|||
A compound block is a block which is defined by an internal activity diagram. This diagram contains blocks which themself are either elementary or compound. This makes every block highly reusable, as arbitrary complex hierarchies of actions are possible. Semantically, these diagrams are similar to petri nets or UML activity diagrams: the flow of information between blocks is via data flow: outgoing values are forwarded to other blocks via connections. Blocks are activated and executed, whenever its required inputs are arriving. |
|||
==== [[VirtualBlock_Element|Virtual Block]] ==== |
|||
A virtual block is used to place a step whose execution is defined dynamically at runtime. Similar to a virtual function in programming languages, only the block's interface is defined in a network. At execution time, one of multiple concrete actions is choosen to be actually executed. |
|||
==== [[TestDataGeneratorBlock_Element|Test Data Generator Block]] ==== |
|||
A test data generator block is used to generate simple tabular data for a test. |
|||
==== [[Compound GUI Block]] ==== |
|||
An compound GUI block is used to model non-modal user interfaces. |
|||
==== [[Elementary GUI Block]] ==== |
|||
An elementary GUI block is used to model modal (blocking) user interfaces. |
|||
== Management== |
|||
==== [[Datatype Element|Datatype]] ==== |
|||
A datatype element allows the creation of user-defined data types. |
|||
==== [[Skill Element|Skill]] ==== |
|||
A skill is a part of the description of a resource or the requirement of a block. |
|||
==== [[Resource Element|Resource]] ==== |
|||
A resource element represents a physical, logical or human resource. Examples for physical resources are measurement devices, equipment or human operators. Non-physical resources are database-locks or synchronization semaphores. |
|||
==== [[Inventory Element|Inventory]] ==== |
|||
An inventory is a collection of resources. |
|||
== Miscellaneous== |
|||
==== [[Attachment Element|Attachment]] ==== |
|||
An attachment is used to manage any file together with a test suite. |
|||
==== [[Documentation Element|Documentation]] ==== |
|||
A documentation element is used to document the test suite. |
|||
==== [[Report Generation|Report Template]] ==== |
|||
A report template is used to customize a report. |
|||
The full online documentation can be found under: [[Online Documentation]] |
Aktuelle Version vom 3. April 2014, 08:39 Uhr
Weiterleitung nach: