论文部分内容阅读
网络技术在近二三十年来飞速发展,随着Internet的迅速普及,网络规模不断扩大,不幸的是,随着网络规模的增加,出现问题的可能性也在增加,这就对通信协议测试技术提出了巨大的挑战。传统的通信协议测试方法是根据一定的测试序列生成算法生成测试集,按照静态的固定的顺序对协议实现进行测试,一般称这种测试方法为“静态测试”。但是这种测试方法忽略了测试过程之中的反馈,存在测试效率和测试覆盖率相对较低的问题。“动态测试”是另一种测试思想:在已生成测试集的基础之上,在测试过程之中根据测试的阶段性结果对测试顺序进行重组,并进一步重新生成有效的测试序列,以期提高测试效率和测试覆盖率。本文研究了有限状态机模型上动态测试的一些理论和方法,本论文的主要工作包括:
1、测试序列动态排序的问题:
在某些情况之下,测试并不需要运行所有的测试序列:测试目的为检测出第一个错误。此时测试代价只是检测出第一个错误之前执行的测试序列代价。明显的,对于每一种特定的错误,都存在一种最优的排序,使第一个错误最早的出现。但是这样将导致不同的错误对应不同的排序,而实际测试中不可能事先知道是什么错误,所以从平均效果来看,任何一种静态排序方法都不会导致最小的测试代价。因此提出动态排序方法,即在测试中不事先指定测试顺序,而是根据已经测试过的试结果来动态安排剩余的测试子序列的测试顺序。
本文给出了三种动态重排序算法,分别针对多错误情况、单错误情况和对测试效率要求高并且测试机计算能力较强的情况。
2、测试序列动态生成的问题:
引导序列和验证序列与待测转换存在依赖关系,即引导序列和验证序列会对待测转换的测试子序列产生影响。为了解决这个问题,本文提出两种方案,来避免错误的转换对待测转换测试序列的影响。