|
|
xiii | |
|
|
xv | |
About the Authors |
|
xxiii | |
Foreword |
|
xxv | |
Preface |
|
xxvii | |
Acknowledgements |
|
xxix | |
Abbreviations and Acronyms |
|
xxxi | |
|
|
1 | (6) |
|
|
3 | (2) |
|
1.2 The Development of TTCN-3 |
|
|
5 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (18) |
|
|
7 | (14) |
|
|
7 | (2) |
|
|
9 | (1) |
|
|
10 | (1) |
|
2.1.4 Data Types and Messages |
|
|
10 | (3) |
|
2.1.5 Components and Ports |
|
|
13 | (1) |
|
|
14 | (1) |
|
2.1.7 Handling Erroneous Situations |
|
|
15 | (1) |
|
|
16 | (1) |
|
2.1.9 Multi Component TTCN-3 |
|
|
17 | (2) |
|
2.1.10 Procedure-Based Communication |
|
|
19 | (2) |
|
|
21 | (3) |
|
2.2.1 High-Lev el View of a Test System |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
25 | (20) |
|
|
25 | (9) |
|
|
25 | (1) |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
29 | (1) |
|
|
30 | (2) |
|
3.1.10 Pre-Defined Functions |
|
|
32 | (1) |
|
3.1.11 Parameters with Default Values |
|
|
32 | (2) |
|
|
34 | (10) |
|
3.2.1 Operators, Expressions and Assignments |
|
|
34 | (2) |
|
3.2.2 The Conditional Statements |
|
|
36 | (1) |
|
|
36 | (3) |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
40 | (2) |
|
3.2.7 Preprocessing Macros |
|
|
42 | (2) |
|
|
44 | (1) |
|
4 Single Component TTCN-3 |
|
|
45 | (32) |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (6) |
|
4.3.1 Main Test Component |
|
|
48 | (1) |
|
|
49 | (1) |
|
4.3.3 Test Case Invocation |
|
|
50 | (2) |
|
4.3.4 Test Case Parameters |
|
|
52 | (1) |
|
4.3.5 Test Case Behaviour |
|
|
53 | (1) |
|
4.3.6 Test Case Termination |
|
|
53 | (1) |
|
|
54 | (1) |
|
4.5 Message-Based Communication |
|
|
55 | (4) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (2) |
|
4.5.4 Receive on Several Ports |
|
|
59 | (1) |
|
|
59 | (3) |
|
|
62 | (4) |
|
|
64 | (1) |
|
|
65 | (1) |
|
4.7.3 Alt Statements vs. Stand-Alone Blocking Statements |
|
|
65 | (1) |
|
|
66 | (3) |
|
|
69 | (4) |
|
|
73 | (3) |
|
4.10.1 Restrictions on the Runs on Clause |
|
|
75 | (1) |
|
|
76 | (1) |
|
|
77 | (22) |
|
5.1 Multi Component Test Case Example |
|
|
78 | (1) |
|
|
79 | (10) |
|
5.2.1 Main Test Component and Test System Interface |
|
|
79 | (2) |
|
5.2.2 Parallel Test Components |
|
|
81 | (1) |
|
5.2.3 Creation of Test Components |
|
|
81 | (2) |
|
5.2.4 Alive Test Components |
|
|
83 | (1) |
|
5.2.5 Component References |
|
|
83 | (3) |
|
5.2.6 Stopping Parallel Test Components |
|
|
86 | (1) |
|
5.2.7 Await Termination of Test Components |
|
|
87 | (1) |
|
5.2.8 Checking Execution Status of Test Components |
|
|
87 | (2) |
|
5.2.9 Verdict Computation |
|
|
89 | (1) |
|
5.3 Mappings and Connections |
|
|
89 | (5) |
|
|
89 | (2) |
|
|
91 | (1) |
|
5.3.3 Many-to-One Mappings and Connections |
|
|
91 | (3) |
|
5.4 Component Type Extension |
|
|
94 | (1) |
|
5.5 Miscellaneous Port Operations |
|
|
94 | (1) |
|
|
95 | (1) |
|
5.7 Putting the Pieces Together |
|
|
95 | (3) |
|
|
98 | (1) |
|
6 Procedure-Based Communication |
|
|
99 | (22) |
|
6.1 Procedure- versus Message-Based Communication |
|
|
99 | (1) |
|
6.2 An Example -- the Directory Service |
|
|
100 | (1) |
|
6.3 Procedure-Based Communication in TTCN-3 |
|
|
100 | (3) |
|
6.3.1 Non-Blocking Signatures |
|
|
103 | (1) |
|
6.4 Communication Operations |
|
|
103 | (1) |
|
6.5 Procedure-Based Communication on the Client Side |
|
|
104 | (9) |
|
|
104 | (1) |
|
6.5.2 The getreply Operation |
|
|
105 | (2) |
|
6.5.3 The catch Operation |
|
|
107 | (1) |
|
6.5.4 On Defaults, Deadlocks and Timed Invocations |
|
|
108 | (2) |
|
6.5.5 Non-Blocking Use of the call Operation |
|
|
110 | (3) |
|
6.6 Procedure-Based Communication on the Server Side |
|
|
113 | (3) |
|
6.6.1 The getcall Operation |
|
|
113 | (2) |
|
6.6.2 The reply Operation |
|
|
115 | (1) |
|
6.6.3 The raise Operation |
|
|
116 | (1) |
|
|
116 | (3) |
|
|
119 | (2) |
|
|
121 | (18) |
|
|
122 | (1) |
|
7.1.1 Definition of a Module |
|
|
122 | (1) |
|
7.1.2 Modularisation of TTCN-3 Test Suites |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
124 | (7) |
|
7.3.1 Visibility of TTCN-3 Definitions |
|
|
125 | (1) |
|
7.3.2 About Transitivity of Imports and Cyclic Imports |
|
|
126 | (1) |
|
7.3.3 Restricting the Import of TTCN-3 Definitions |
|
|
127 | (3) |
|
7.3.4 Module Prefixing of Imported Definitions |
|
|
130 | (1) |
|
|
131 | (1) |
|
7.3.6 Importing from Other Languages |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
132 | (5) |
|
7.5.7 Accessing Attribute Values |
|
|
133 | (1) |
|
7.5.2 Scoping of Attributes |
|
|
134 | (1) |
|
7.5.3 Assigning Attributes to Imported Definitions |
|
|
135 | (1) |
|
7.5.4 Using Attributes to Define Encodings |
|
|
135 | (2) |
|
|
137 | (2) |
|
|
139 | (34) |
|
8.1 The Session Initiation Protocol |
|
|
140 | (1) |
|
|
141 | (6) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (1) |
|
8.2.4 Field Value Restriction for Structured Types |
|
|
144 | (1) |
|
|
145 | (1) |
|
8.2.6 Character Set Restrictions for Strings |
|
|
145 | (1) |
|
8.2.7 Length Restrictions for Strings and List Types |
|
|
145 | (2) |
|
8.2.8 Subtyping of Subtypes |
|
|
147 | (1) |
|
|
147 | (1) |
|
8.3 TTCN-3 Built-in Types |
|
|
147 | (8) |
|
|
148 | (1) |
|
|
148 | (2) |
|
|
150 | (1) |
|
8.3.4 The Charstring and the Universal Charstring Type |
|
|
151 | (2) |
|
8.3.5 The Verdicttype Type |
|
|
153 | (1) |
|
8.3.6 The Binary String Types Bitstring, Hexstring and Octetstring |
|
|
153 | (2) |
|
|
155 | (1) |
|
|
155 | (13) |
|
8.4.1 The Enumerated Type |
|
|
156 | (1) |
|
|
156 | (4) |
|
|
160 | (1) |
|
|
160 | (2) |
|
|
162 | (6) |
|
8.5 Nested Type Definitions |
|
|
168 | (1) |
|
8.6 Encoding and Decoding of Data |
|
|
169 | (1) |
|
|
170 | (3) |
|
|
173 | (24) |
|
|
173 | (4) |
|
9.1.1 Strict Type Compatibility |
|
|
174 | (2) |
|
9.1.2 Type Compatibility for Structured and Special Types |
|
|
176 | (1) |
|
|
177 | (4) |
|
9.2.1 Using the any type for Generic Protocol Definitions and Data Types |
|
|
180 | (1) |
|
|
181 | (1) |
|
9.4 Recursive Type Definitions |
|
|
182 | (3) |
|
|
185 | (10) |
|
9.5.1 Using ASN. 1 Types in TTCN-3 |
|
|
186 | (4) |
|
9.5.2 Using IDL Types in TTCN-3 |
|
|
190 | (1) |
|
9.5.3 Mapping XML to TTCN-3 |
|
|
191 | (4) |
|
|
195 | (2) |
|
|
197 | (24) |
|
10.1 A First Look at TTCN-3 Templates |
|
|
197 | (2) |
|
10.2 The TTCN-3 Match Operation |
|
|
199 | (1) |
|
10.3 Template Definition for One Specific Value |
|
|
200 | (1) |
|
10.4 Template Definitions with Matching Expressions |
|
|
201 | (13) |
|
10.4.1 The `any' Matching Expression |
|
|
201 | (1) |
|
|
201 | (1) |
|
10.4.3 Complemented Value List |
|
|
202 | (1) |
|
|
202 | (2) |
|
10.4.5 More about Matching Expression for Structured Types |
|
|
204 | (2) |
|
10.4.6 More about Matching Expressions for List-Like Types |
|
|
206 | (4) |
|
10.4.7 More about Matching Expressions for String Types |
|
|
210 | (4) |
|
10.5 Template Definitions for Signatures |
|
|
214 | (3) |
|
10.6 Assignment, Access of Templates and the Pre-Defined Functions Isvalue and Valueof |
|
|
217 | (2) |
|
|
219 | (2) |
|
|
221 | (12) |
|
11.1 Template Definitions for Complex Type Structures |
|
|
221 | (2) |
|
|
223 | (1) |
|
11.3 Template Parameterisation |
|
|
224 | (1) |
|
|
224 | (1) |
|
11.3.2 Template Parameters |
|
|
224 | (1) |
|
11.3.3 About the Use of Template Parameterisation |
|
|
225 | (1) |
|
11.4 Selective Modification of Other Templates |
|
|
225 | (2) |
|
11.5 Explicit versus Implicit Template Definitions |
|
|
227 | (1) |
|
11.6 Restricting Template Usage |
|
|
228 | (1) |
|
11.7 Template Variables and Computing Functions |
|
|
229 | (1) |
|
11.8 Structuring of Template Definitions for Complex Types |
|
|
230 | (1) |
|
|
231 | (2) |
|
|
233 | (12) |
|
12.1 Static Test Configurations |
|
|
234 | (3) |
|
|
237 | (1) |
|
12.3 Type Parameterisation |
|
|
238 | (3) |
|
12.3.1 Value Parameterisation of Types |
|
|
238 | (2) |
|
12.3.2 Types as Parameters |
|
|
240 | (1) |
|
|
241 | (3) |
|
|
244 | (1) |
|
13 TTCN-3 Test Systems in Practice |
|
|
245 | (18) |
|
13.1 The Anatomy of a TTCN-3 Test System |
|
|
245 | (2) |
|
13.1.1 The TTCN-3 Executable |
|
|
247 | (1) |
|
13.2 Test System Execution of a Simple Test Case |
|
|
247 | (6) |
|
13.2.1 Test System and Test Case Initialisation |
|
|
247 | (1) |
|
13.2.2 Preparation of Communication Channels towards the SUT |
|
|
248 | (2) |
|
13.2.3 Handling of Communication towards the SUT |
|
|
250 | (1) |
|
13.2.4 Starting of TTCN-3 Timers |
|
|
250 | (1) |
|
13.2.5 Handling Incoming Communication from the SUT |
|
|
251 | (1) |
|
13.2.6 Handling Timeouts and Stopping of Timers |
|
|
252 | (1) |
|
13.2.7 Teardown of Communication Channels towards the SUT |
|
|
252 | (1) |
|
13.3 More about the SUT Adapter |
|
|
253 | (3) |
|
13.3.1 Execution Threads in the SA |
|
|
253 | (1) |
|
13.3.2 Management of TRI Information |
|
|
254 | (1) |
|
13.3.3 Procedure-Based Communication with the SUT |
|
|
254 | (1) |
|
13.3.4 Dynamic SUT Adapter Configuration |
|
|
254 | (1) |
|
13.3.5 Distributed SUT Adapter Implementations |
|
|
255 | (1) |
|
13.4 More about the Platform Adapter |
|
|
256 | (1) |
|
13.4.1 TRI Timing Operations |
|
|
256 | (1) |
|
13.4.2 Non-Real-Time Implementation |
|
|
256 | (1) |
|
13.4.3 External Functions |
|
|
256 | (1) |
|
13.5 More about External Codecs |
|
|
257 | (3) |
|
13.5.1 Access to the TTCN-3 Values |
|
|
257 | (1) |
|
13.5.2 Encoder Implementation |
|
|
258 | (1) |
|
13.5.3 Decoder Implementation |
|
|
259 | (1) |
|
13.5.4 Advanced Aspects of Codec Implementations |
|
|
259 | (1) |
|
13.6 Documentation Comments |
|
|
260 | (1) |
|
|
261 | (2) |
|
|
263 | (8) |
|
14.1 Frameworks and Test Suites |
|
|
263 | (1) |
|
|
264 | (1) |
|
14.3 Design of Frameworks |
|
|
265 | (1) |
|
14.4 Example: the IPv6 Testing Framework |
|
|
265 | (1) |
|
14.4.1 Module Structure and Identifiers |
|
|
265 | (1) |
|
14.4.2 Test Case Functions |
|
|
266 | (1) |
|
14.4.3 Test Purpose Functions |
|
|
267 | (2) |
|
14.4.4 Protocol Library Functions |
|
|
269 | (1) |
|
|
269 | (2) |
|
|
271 | (30) |
|
|
271 | (3) |
|
|
271 | (1) |
|
|
272 | (2) |
|
15.2 Suggestions for Modularisation |
|
|
274 | (2) |
|
15.3 Template Specification for Complex Message Definitions |
|
|
276 | (7) |
|
15.3.1 Example Implementation of a SIP Message Interchange |
|
|
277 | (1) |
|
15.3.2 A SIP Type Definition |
|
|
277 | (1) |
|
15.3.3 Specification of the Expected S/P Request |
|
|
278 | (1) |
|
15.3.4 Specification of the 200 OK Response |
|
|
278 | (3) |
|
15.3.5 About the Benefits of Smart Template Definitions |
|
|
281 | (2) |
|
|
283 | (5) |
|
15.4.1 Convert Conditions to Verdicts |
|
|
283 | (1) |
|
15.4.2 Unexpected Messages |
|
|
283 | (2) |
|
|
285 | (1) |
|
15.4.4 Successful Altstep |
|
|
286 | (1) |
|
15.4.5 Additional String Conversion Functions |
|
|
287 | (1) |
|
|
288 | (1) |
|
15.5 Test Component Synchronisation |
|
|
288 | (13) |
|
15.5.1 Synchronisation with Alive Components |
|
|
291 | (1) |
|
15.5.2 Synchronisation via a Protocol |
|
|
292 | (9) |
|
16 LTE Testing with TTCN-3 |
|
|
301 | (10) |
|
|
301 | (1) |
|
|
302 | (7) |
|
16.2.1 Test System Overview |
|
|
302 | (1) |
|
16.2.2 LTE Test Suite Overview |
|
|
303 | (1) |
|
16.2.3 Test Case Definitions |
|
|
304 | (1) |
|
16.2.4 Test Behaviour Definition |
|
|
305 | (1) |
|
16.2.5 EUTRA Parallel Test Component |
|
|
305 | (1) |
|
16.2.6 Test Suite Module Structure |
|
|
305 | (2) |
|
16.2.1 RRC Message Definitions |
|
|
307 | (2) |
|
|
309 | (2) |
|
17 Closing Thoughts and Future Directions |
|
|
311 | (2) |
References |
|
313 | (2) |
Index |
|
315 | |