关键词—树表组合符(TTCN), 消息序列图(MSC), EMSC, 欧洲研究实验室(ERL), 生产力, 周期
1. TTCN与MSC介绍
顺应测试是检验执行是否符合特殊标准规范/环境的过程。被标准化如 ISO/ IEC 9646( 或 X.290) 的TTCN(树表组合符)是一种顺应测试的规范语言。在遇到下面目标时使用TTCN设计:
a) 规定一个符号用以将抽象测试案例用标准抽象测试组(ATS)表示;
b) 规定一个独立于测试方法、层和协议的符号;
c) 规定一个符号用以反映定义在X.290系列建议基础上的抽象测试方法学。
在TTCN中,基础测试事件发送和接收简单抽象服务、协议数据单元和定时器事件。.
消息序列图(MSCs)常常用来描述用户与系统间的交互和一个系统的多个进程间的交互。事实上,所有的这些符号是为了描述交互作用的直觉机制,并且已经被描述系统需求的情节广泛地采用。一个消息序列图不是对整个系统行为的描述,它只表达了执行踪迹。一个消息序列图的集合可以给系统提供较详尽的规范。
2. PTK介绍
动力工具集(PTK)是一组软件工具,是由XXX内部其他团体协助欧洲研究实验室(ERL)开发的,用来支持消息序列图规范的全面的分析,进而解决测试脚本的自动生成。PTK执行单一消息序列图的语义分析。在执行语义分析过程中,PTK会从单一MSC生成多个可执行的测试脚本。此外,ERL扩展了ITU MSC语言,使功能规范与数据规范进行联结。因而,PTC生成全部测试脚本来执行消息包,同从测试目标处收到的未打包并且正在测试的消息一起传送到测试目标。
3. 在阶梯项目中使用PTK
MSC的语义
MSCs的正式语义学假设每个实例以时间轴方式完全运转着,然而,它没有为一个消息序列图假设的全部时间轴。例如,两个未连接实例的消息的传送是没有时间关系的。因此,消息的传送能以任何顺序发生,甚至看起来似乎是同时发生在一个MSC上。全部时间的事件排序是沿着每一个实例轴假定的。不同实例的事件通过消息排序,一个消息必须在它被消耗之前首先被传送出去。用这个一般化的排序机制,在不同实例(甚至在一个不同的MSCs中)“可排序事件”能明确地被排序。没有另外的排序规定。一个消息序列图因此能加在被包含的一系列事件的部分顺序上。例如,在图1中,我们能观察到下列排序关系:a?b, b?c, d?c。a?b意味着b必须与a发生在同一时间或者发生在a之后。这反映了在真实系统中分开的系统成分经由消息交换而同步。
图1 - MSC输入输出事件图
PTK能执行以下类型的语法和语义分析:
(1) 语法检查器 – 这个功能确保了一个消息序列图(MSC)和任何数据规范都符合正确的文法。
(2) 静态语义检查器 - 这个功能可检查一个MSC和任何关联数据规范的基本特性。例如,一个静态语义检查可以是多个实例名的确认或者是被那个消息的关联数据规范在允许范围之外定义的消息参数值。
(3) 动态语义检查器 - 这个功能可计算所有可能发生的序列事件,叫做踪迹,可按照正式语义被单一MSC所表示。
PTK执行基本MSC语义评价的意义如下:
使用MSCs进行需求规范确认 – 在这个方面,MSCs的意义在于能够计算进而排除错误解释的机会。通过计算,所有可能需要被指定出来的那些被MSC未预料的情节所表示的踪迹是突出的。这导致了更多的完善需求和较好设计。
完成顺应测试 – 由于一个MSC有一个已经定义好了的含义,能产生一整套功能测试脚本。这改进了测试覆盖,确保“完成”顺应测试。例如,图2的测试脚本被产生用来测试与一个特定测试目标相关的所有踪迹。
图2 - 测试踪迹生成图
情节分析工具
还没有一个商业的工具支持MSCs语义分析,ERL已经开发出了PTK,至少是为了分析MSCs的一个工具,如图3。使用它,用户可以通过编辑一个MSC来定义一个情节,然后用PTK分析识别所有可能的踪迹。用户可以回顾这个输出文件来验证那些被生成的MSC实际上定义了想得到的功能。
图3-使用PTK工具进行MSC语义分析
测试脚本生成
定义和验证一个情节后,就有可能从一个MSC生成测试脚本,PTK通过评测MSC情节来得到这个脚本,象上面说的那样,识别那些与IUT关联的事件,如图3。PTK 也将会产生以下各项 ( 或下列各项的一个组合):
- 测试脚本分析文件 – 包含一套必须被测试脚本确认的踪迹和一套在抽象表格中的测试脚本。
- 大量模版/测试脚本文件 – 这些是实际测试脚本,被测试环境所执行来确认MSC的功能性。
- 消息序列图(MSCs)– 一个独立的MSC被生成来为每个测试踪迹阐明IUT和测试脚本之间的交互作用。
- TTCN测试脚本生成
PTK提供可定制的代码生成器将抽象测试脚本解释成象SDL或TTCN那样的其他测试脚本符号。我们可以使用标准C语言预处理器和被PTK开发组织支持的TTCN库。
4. PTK工具的益处
现代经验显示,使用PTK来生成TTCN测试脚本能减少项目周期、提高生产率,并且能提供高质量的产品。
例如:
MIEL CSS-CDMA 组织为静态部分TTCN 的半自动化而开发的脚本。在不同的项目中用PTK和这个自动脚本的估价成果是:
METESCOM Rel 1.0 and Rel 2.0
- No of MSCs : 370
- No of test scripts : 2297
- No of staff days without automation : 1776
- No of staff days with automation :1406
- Percentage of effort savings : 21%
STAIRCASE_ 683 &637 Rel1.0
- No. of MSCs : 76
- No of test scripts : 280
- No of staff days without automation : 800
- No of staff days with automation : 650
- Percentage of effort savings : 19%
5. Conclusion 结论
MSCs在XXX被广泛使用,但却没有工具支持或形式分析。PTK在处理MSCs连同数据规格说明方面有这个缺点。用这个工具,阶梯工程显著减少了花在TTCN测试脚本生成上的大量努力。
6. REFERENCES 参考书目
[1] ITU推荐Z.120消息序列图
[2] 国际电信联盟,CCITT(国际电话与电报顾问委员会)消息序列图(MSC)
[3] 电信逻辑,“TAU3.4参考手册”,瑞典。