Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<table class="width100" style="width:100%;" data-cellspacing="1">
<colgroup>
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
<col style="width: 16%" />
</colgroup>
<tbody>
<tr class="odd">
<td colspan="6" class="form-title"><div class="center">
ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
</div></td>
</tr>
<tr class="even">
<td colspan="6" class="form-title">View Issue Details</td>
</tr>
<tr class="odd">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="even print-category">
<td class="print" width="16%">ID</td>
<td class="print" width="16%">Project</td>
<td class="print" width="16%">Category</td>
<td class="print" width="16%">View Status</td>
<td class="print" width="16%">Date Submitted</td>
<td class="print" width="16%">Last Update</td>
</tr>
<tr class="odd print">
<td class="print">0000412</td>
<td class="print">Part 01: TTCN-3 Core Language</td>
<td class="print">New Feature</td>
<td class="print">public</td>
<td class="print">24-11-2006 14:26</td>
<td class="print">04-09-2009 09:43</td>
</tr>
<tr class="even">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="odd print">
<td class="print-category">Reporter</td>
<td class="print">Stephan Schulz</td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="even print">
<td class="print-category">Assigned To</td>
<td class="print">Tibor Csöndes</td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="odd print">
<td class="print-category">Priority</td>
<td class="print">high</td>
<td class="print-category">Severity</td>
<td class="print">feature</td>
<td class="print-category">Reproducibility</td>
<td class="print">N/A</td>
</tr>
<tr class="even print">
<td class="print-category">Status</td>
<td class="print">closed</td>
<td class="print-category">Resolution</td>
<td class="print">fixed</td>
<td colspan="2" class="print"> </td>
</tr>
<tr class="odd print">
<td class="print-category">Platform</td>
<td class="print"></td>
<td class="print-category">OS</td>
<td class="print"></td>
<td class="print-category">OS Version</td>
<td class="print"></td>
</tr>
<tr class="even print">
<td class="print-category">Product Version</td>
<td class="print">v3.1.1 (published 2005-06)</td>
<td colspan="4" class="print"> </td>
</tr>
<tr class="odd">
<td class="print-category">Target Version</td>
<td class="print">v4.1.1 (published 2009-06)</td>
<td class="print-category">Fixed in Version</td>
<td class="print">v4.2.1 (published 2010-07)</td>
<td colspan="2" class="print"> </td>
</tr>
<tr class="even print">
<td class="print-category">Clause Reference(s)</td>
<td colspan="4" class="print">several</td>
<td></td>
</tr>
<tr class="odd print">
<td class="print-category">Source (company - Author)</td>
<td colspan="4" class="print">dr. György Réthy, Ericsson</td>
<td></td>
</tr>
<tr class="even">
<td colspan="6" class="print-spacer"><hr /></td>
</tr>
<tr class="odd print">
<td class="print-category">Summary</td>
<td colspan="5" class="print">0000412: Function reference</td>
</tr>
<tr class="even print">
<td class="print-category">Description</td>
<td colspan="5" class="print">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).<br />
Two examples, where users do suffer from this limitation:<br />
1) Test configuration<br />
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.).<br />
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.<br />
2) Flexible default handling<br />
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).<br />
3) Load and robustness tests<br />
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.<br />
4) Using libraries<br />
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.<br />
</td>
</tr>
<tr class="odd print">
<td class="print-category">Steps To Reproduce</td>
<td colspan="5" class="print"></td>
</tr>
<tr class="even print">
<td class="print-category">Additional Information</td>
<td colspan="5" class="print"></td>
</tr>
<tr class="odd print">
<td class="print-category">Tags</td>
<td colspan="5" class="print">No tags attached.</td>
</tr>
<tr class="even print">
<td class="print-category">Relationships</td>
<td colspan="5" class="print"><table data-border="0" width="100%"
data-cellpadding="0" data-cellspacing="1">
<tbody>
<tr class="odd">
<td class="print"><span class="nowrap">related to</span> </td>
<td class="print">0002012</td>
<td class="print">closed </td>
<td class="print"><span class="nowrap"><a
href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy
Rethy</a></span> </td>
<td class="print">runs on self clause in function reference types </td>
</tr>
<tr class="even">
<td class="print"><span class="nowrap">related to</span> </td>
<td class="print">0004275</td>
<td class="print">closed </td>
Loading
Loading full blame…