ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details
0000412 Part 01: TTCN-3 Core Language New Feature public 24-11-2006 14:26 04-09-2009 09:43
Stephan Schulz  
Tibor Csöndes  
high feature N/A
closed fixed  
v3.1.1 (published 2005-06)  
v4.1.1 (published 2009-06) v4.2.1 (published 2010-07)  
several
dr. György Réthy, Ericsson
0000412: Function reference
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.
No tags attached.
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 
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
doc 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
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