ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0000412 | Part 01: TTCN-3 Core Language | New Feature | public | 24-11-2006 14:26 | 04-09-2009 09:43

Reporter | Stephan Schulz |
Assigned To | Tibor CsÃ¶ndes |
Priority | high | Severity | feature | Reproducibility | N/A
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v3.1.1 (published 2005-06) |
Target Version | v4.1.1 (published 2009-06) | Fixed in Version | v4.2.1 (published 2010-07) |
Clause Reference(s) | several
Source (company - Author) | dr. György Réthy, Ericsson

Summary | 0000412: Function reference

Description

TTCN-3 today still supports rigid behaviours, primarily props up conformance/function testing where the expected behaviour is known a-priory. To solve tasks, where the details of the behaviour are of secondary importance and changes dynamically during test execution, are cumbersome, not user friendly and leads to huge code, which is difficult to develop and maintain. One of the main problems is that TTCN-3 dynamic elements can not be parameterized with a dynamic behaviour (e.g. with a function or altstep).
Two examples, where users do suffer from this limitation:
1) Test configuration
At the beginning of each test case the test configuration has to be set up. Typical test suites use very limited number ? one or two ? different test configurations which are established by calling a specific function. Today such functions can establish static test configuration only, all PTC behaviours shall be started from the test case. In typical test configurations behaviour of some PTCs depend on the test case, while others do not (e.g. routing, handling lower layer protocols etc.).
Testers very often get configuration functions in libraries but they have to worry about starting all PTC behaviours. The complete and library-conform solution would be if they could just pass the functions to be started on test case-dependent PTCs to the (library) configuration function and all other actions are done by the library function.
2) Flexible default handling
Defaults depend on the state of the IUT/SUT. Therefore when the state changes often some defaults shall be de-activated and new ones activated. Functions called in a given state are often written in a protocol-independent way to increase re-usability, therefore they have no knowledge about the default to be activated. Hence it shall be passed in runtime, as parameter (testers often get function/altsteps ready that they have just to use. In principle passing in just the default reference could be a solution, however this would decrease the ?structured-ness? of the code and force the tester to handle default states that he/she should not if function reference existed).
3) Load and robustness tests
In both load and robustness tests, during test execution a vast number of entities (e.g. users, transaction sessions etc.) shall be emulated (the two types of testing mainly differs in their time profiles). The exact behaviour of an entity is unknown a-priory, e.g. it executes a state machine (calling a busy B-user or requesting info of an unregistered user are normal events in these cases). When e.g. a great number of entities shall be released, there is wrapper function handling the local release of an entity (in local databases, event queues etc.), while the exact message-level behaviour is described by an entity & state-dependent function. To solve the task efficiently the wrapper function should get the state-dependent function runtime, as parameter. Note, that several protocols may be involved in such scenarios. Therefore just passing the state of the entity into the wrapper function would result a very complex, unstructured, user-unfriendly and project-dependent code that is difficult to maintain and upgrade.
4) Using libraries
In the library approach there are horizontal and vertical splitting exists. Example of horizontal splitting is the libraries containing functions of different protocols? elementary behaviours. Vertical splitting means different levels of abstraction; examples are libraries containing more generic, protocol-independent functions (e.g. scheduling, mass releases, handling hashes etc.). Actual test cases shall be assembled from these libraries, where library functions can be used but cannot be changed by testers. As the generic functions shall be protocol-independent, it is quite obvious, that for many tasks the generic functions shall get the partial protocol behaviour runtime, as an actual parameter.

Steps To Reproduce |
Additional Information |
Tags | No tags attached.

Relationships

related to | 0002012 | closed | Gyorgy Rethy | runs on self clause in function reference types
related to | 0004275 | closed | Ina Schieferdecker | New Concepts to be defined via Packages

Attached Files

CR_407 Function_reference.doc (118,272) 24-11-2006 14:26
http://oldforge.etsi.org/mantis/file_download.php?file_id=40&type=bug
CR_412_2012_BehaviourTypes_01.doc (392,704) 17-10-2008 10:13
http://oldforge.etsi.org/mantis/file_download.php?file_id=1712&type=bug
CR_412_2012_BehaviourTypes_02.doc (378,880) 25-11-2008 07:55
http://oldforge.etsi.org/mantis/file_download.php?file_id=1763&type=bug
CR_412_2012_BehaviourTypes_03.doc (382,976) 26-11-2008 13:59
http://oldforge.etsi.org/mantis/file_download.php?file_id=1788&type=bug
CR_412_2012_BehaviourTypes_04.doc (392,192) 28-11-2008 13:44
http://oldforge.etsi.org/mantis/file_download.php?file_id=1836&type=bug
CR_412_2012_BehaviourTypes_05.doc (420,864) 09-01-2009 12:07
http://oldforge.etsi.org/mantis/file_download.php?file_id=1939&type=bug
CR_412_2012_BehaviourTypes_06.doc (421,888) 09-01-2009 15:07
http://oldforge.etsi.org/mantis/file_download.php?file_id=1940&type=bug
CR_412_2012_BehaviourTypes_07.doc (425,984) 12-01-2009 16:08
http://oldforge.etsi.org/mantis/file_download.php?file_id=1945&type=bug
CR_412_2012_BehaviourTypes_071.doc (427,008) 14-01-2009 14:38
http://oldforge.etsi.org/mantis/file_download.php?file_id=1953&type=bug
CR_412_2012_BehaviourTypes_072.doc (512,000) 15-01-2009 07:08
http://oldforge.etsi.org/mantis/file_download.php?file_id=1955&type=bug
CR_412_2012_BehaviourTypes_073.doc (509,952) 15-01-2009 08:02
http://oldforge.etsi.org/mantis/file_download.php?file_id=1957&type=bug
CR_412_2012_BehaviourTypes_08.doc (530,432) 16-01-2009 15:10
http://oldforge.etsi.org/mantis/file_download.php?file_id=1959&type=bug
CR_412_2012_BehaviourTypes_081.doc (530,944) 26-01-2009 16:29
http://oldforge.etsi.org/mantis/file_download.php?file_id=1977&type=bug
es202785_BehaviourTypes_210409.doc (1,024,512) 21-04-2009 09:38
http://oldforge.etsi.org/mantis/file_download.php?file_id=2093&type=bug
es202785_BehaviourTypes_300609.doc (1,334,784) 30-06-2009 11:41
http://oldforge.etsi.org/mantis/file_download.php?file_id=2142&type=bug
es202785_BehaviourTypes_020909.doc (1,325,056) 04-09-2009 09:42
http://oldforge.etsi.org/mantis/file_download.php?file_id=2238&type=bug

Issue History
Date Modified | Username | Field | Change
24-11-2006 14:26 | Stephan Schulz | New Issue |
24-11-2006 14:26 | Stephan Schulz | File Added: CR_407 Function_reference.doc |
24-11-2006 14:26 | Stephan Schulz | Clause Reference(s) | => several
24-11-2006 14:26 | Stephan Schulz | Source (company - Author) | => dr. György Réthy, Ericsson
15-06-2007 19:16 | Stephan Schulz | Status | new => assigned
15-06-2007 19:16 | Stephan Schulz | Assigned To | => Ina Schieferdecker
13-10-2007 19:19 | Ina Schieferdecker | Assigned To | Ina Schieferdecker => developer_u
15-10-2007 13:22 | Ina Schieferdecker | Note Added: 0003613 |
17-10-2007 12:41 | user10 | Assigned To | developer_u => Thomas DeiÃŸ
18-10-2007 12:12 | Ina Schieferdecker | Target Version | => Edition 4.1.1 (not yet published)
18-10-2007 12:12 | Ina Schieferdecker | Description Updated |
17-10-2008 10:13 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_01.doc |
17-10-2008 10:16 | Thomas DeiÃŸ | Note Added: 0007114 |
17-10-2008 15:38 | Ina Schieferdecker | Relationship added | related to 0002012
25-11-2008 07:55 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_02.doc |
25-11-2008 07:57 | Thomas DeiÃŸ | Note Added: 0007394 |
26-11-2008 13:59 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_03.doc |
26-11-2008 14:00 | Thomas DeiÃŸ | Note Added: 0007448 |
28-11-2008 13:44 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_04.doc |
28-11-2008 13:46 | Thomas DeiÃŸ | Note Added: 0007505 |
28-11-2008 13:46 | Thomas DeiÃŸ | Assigned To | Thomas DeiÃŸ => Gyorgy Rethy
12-12-2008 09:04 | Ina Schieferdecker | Relationship added | related to 0004275
09-01-2009 12:07 | Gyorgy Rethy | File Added: CR_412_2012_BehaviourTypes_05.doc |
09-01-2009 12:09 | Gyorgy Rethy | Note Added: 0007808 |
09-01-2009 12:11 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Thomas DeiÃŸ
09-01-2009 15:07 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_06.doc |
09-01-2009 15:10 | Thomas DeiÃŸ | Note Added: 0007812 |
09-01-2009 15:11 | Thomas DeiÃŸ | Note Added: 0007813 |
09-01-2009 15:11 | Thomas DeiÃŸ | Assigned To | Thomas DeiÃŸ => Ina Schieferdecker
12-01-2009 16:08 | Gyorgy Rethy | File Added: CR_412_2012_BehaviourTypes_07.doc |
12-01-2009 16:10 | Gyorgy Rethy | Note Added: 0007822 |
14-01-2009 14:38 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_071.doc |
14-01-2009 14:40 | Thomas DeiÃŸ | Note Added: 0007839 |
15-01-2009 07:08 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_072.doc |
15-01-2009 07:09 | Thomas DeiÃŸ | Note Added: 0007863 |
15-01-2009 08:02 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_073.doc |
15-01-2009 08:02 | Thomas DeiÃŸ | Note Added: 0007865 |
16-01-2009 15:10 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_08.doc |
16-01-2009 15:11 | Thomas DeiÃŸ | Note Added: 0007874 |
26-01-2009 16:29 | Thomas DeiÃŸ | File Added: CR_412_2012_BehaviourTypes_081.doc |
26-01-2009 16:31 | Thomas DeiÃŸ | Note Added: 0007932 |
10-03-2009 10:47 | Ina Schieferdecker | Status | assigned => resolved
10-03-2009 10:47 | Ina Schieferdecker | Resolution | open => fixed
10-03-2009 10:47 | Ina Schieferdecker | Fixed in Version | => Edition 4.1.1 (not yet published)
21-04-2009 09:24 | Ina Schieferdecker | File Added: es202785_BehaviourTypes_210409.doc |
21-04-2009 09:25 | Ina Schieferdecker | Note Added: 0008519 |
21-04-2009 09:25 | Ina Schieferdecker | Status | resolved => assigned
21-04-2009 09:25 | Ina Schieferdecker | Assigned To | Ina Schieferdecker => Jens Grabowski
21-04-2009 09:26 | Ina Schieferdecker | Note Added: 0008520 |
21-04-2009 09:37 | Ina Schieferdecker | File Deleted: es202785_BehaviourTypes_210409.doc |
21-04-2009 09:38 | Ina Schieferdecker | File Added: es202785_BehaviourTypes_210409.doc |
30-06-2009 11:41 | Jens Grabowski | File Added: es202785_BehaviourTypes_300609.doc |
30-06-2009 11:42 | Jens Grabowski | Note Added: 0008798 |
30-06-2009 11:43 | Jens Grabowski | Assigned To | Jens Grabowski => Gyorgy Rethy
01-09-2009 15:50 | Gyorgy Rethy | Note Added: 0008953 |
01-09-2009 15:51 | Gyorgy Rethy | Note Edited: 0008953 |
01-09-2009 15:51 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Tibor CsÃ¶ndes
02-09-2009 16:31 | Tibor CsÃ¶ndes | Status | assigned => closed
02-09-2009 16:31 | Tibor CsÃ¶ndes | Note Added: 0008964 |
02-09-2009 16:31 | Tibor CsÃ¶ndes | Fixed in Version | Edition 4.1.1 Published 2009-06-02 => Edition 4.2.1 (not yet published)
04-09-2009 09:41 | Tibor CsÃ¶ndes | Status | closed => feedback
04-09-2009 09:41 | Tibor CsÃ¶ndes | Resolution | fixed => reopened
04-09-2009 09:42 | Tibor CsÃ¶ndes | File Added: es202785_BehaviourTypes_020909.doc |
04-09-2009 09:43 | Tibor CsÃ¶ndes | Status | feedback => closed
04-09-2009 09:43 | Tibor CsÃ¶ndes | Resolution | reopened => fixed

Notes

(0003613)
Ina Schieferdecker
15-10-2007 13:22

to be considered in 2008 only - what about pointers in general, how does it relate to defaulttype etc.

(0007114)
Thomas DeiÃŸ
17-10-2008 10:16

still open functions <-> function references (in)equality, null function (reference) operational semantics: just one example to show how it could be done. Needs to be repeated for other operations too TCI: BehaviourIdtype in IDL, needs to be reflected in language mappings, too. At least this needs to be checked.

(0007394)
Thomas DeiÃŸ
25-11-2008 07:57

editorial corrections. usage of prototypes in behaviour definitions removed for the sake of simplicity. subtypes of behaviour types removed for the sake of simplicity. null value and comparison added as requested by users.

(0007448)
Thomas DeiÃŸ
26-11-2008 14:00

problem in grammar corrected. The BNF should also be simpler now. The problem was to actually reach a defined function name in a function instance. v03 uploaded.

(0007505)
Thomas DeiÃŸ
28-11-2008 13:46

Proposal for review. Feedback is needed on a) the proposal itself (technical part) b) the proposal regarding clarity of description (more introduction needed?) c) usage of extension packages.

(0007808)
Gyorgy Rethy
09-01-2009 12:09

The file CR_412_2012_BehaviourTypes_05.doc contains minor technical and editorial corrections but as a whole it is OK.

(0007812)
Thomas DeiÃŸ
09-01-2009 15:10

some further (minor) editorial corrections. Usage of 'object' instead of 'value' to be checked.

(0007813)
Thomas DeiÃŸ
09-01-2009 15:11

all of us should review the extension package

(0007822)
Gyorgy Rethy
12-01-2009 16:10

~07.doc: just a few editorials, changes are marked with yellow background. With these changes it is OK with me.

(0007839)
Thomas DeiÃŸ
14-01-2009 14:40

Gyorgy pointed out some cases where compatibility rules are misleading or could not be checked at compile time. It was agreed to make the compatibility rules more strict to avoid such problems. If a need is recognized later on, the rules could still be relaxed.

(0007863)
Thomas DeiÃŸ
15-01-2009 07:09

language tag added, Annex A moved to part 1 section, document numbers added.

(0007865)
Thomas DeiÃŸ
15-01-2009 08:02

tag corrected

(0007874)
Thomas DeiÃŸ
16-01-2009 15:11

ANSI C, Java language mapping added. Section headers extended by text of headers in the relevant parts.

(0007932)
Thomas DeiÃŸ
26-01-2009 16:31

Formal type parameters of nested behaviour definitions removed (noticed by Jacob), comments by Jens: layout of component definitions in examples improved values of behaviours are identifiers are identiers, not names explained that control parts are not behaviour definitions within this document. new version 081 uploaded

(0008519)
Ina Schieferdecker
21-04-2009 09:25

Added C++ and XML mapping, revision and editorial corrections

(0008520)
Ina Schieferdecker
21-04-2009 09:26

Semantics to be added

(0008798)
Jens Grabowski
30-06-2009 11:42

Operational semantics included. Assigned to GyÃ¶rgy for proof reading.

(0008953)
Gyorgy Rethy
01-09-2009 15:50 (edited on: 01-09-2009 15:51)

Just a few editorial comments to the OS clause, handed over on paper. On correcting those, the draft shall be uploaded to MTS#49 urgently.

(0008964)
Tibor CsÃ¶ndes
02-09-2009 16:31

Document send for approval to MTS#49