论文部分内容阅读
自然语言描述的协议规范存在二义性问题,协议软件开发人员对同一协议规范理解的差异是导致其协议实现“百花齐放”的根本原因。协议实现与协议规范之间的丝毫偏差都可能给通信网络造成灾难性后果。协议一致性测试的目的是检测协议实现和协议规范的一致性程度,成为了保障网络通信质量的有效手段。扩展有限状态机(Extended Finite StateMachine, EFSM)模型为一致性测试提供了一个相对精确的、无二义性的平台,基于EFSM的协议一致性测试序列生成成为了当前的一个研究热点。EFSM在有限状态机(Finite State Machine, FSM)的基础上扩充了变量和谓词条件,导致基于EFSM模型生成的测试序列存在不可执行的问题。究其本质原因是EFSM模型变迁之间存在数据冲突,导致测试序列中变迁之间谓词条件的矛盾。本文针对EFSM模型可执行测试序列生成方法中的关键问题展开了一系列研究工作,研究工作的内容和创新之处可以归结为下述四个方面:(1)在特定测试场景下,本文实验发现了传统基于可执行分析树EAT(ExecutableAnalysis Tree)的测试序列生成方法在生成测试序列时的局限性,通过提取相关EFSM模型特征,分析探讨了其本质原因。(2)挖掘了EFSM模型变迁之间可执行性的约束关系,进而构造EFSM模型的谓词依赖图PDG(Predicate Dependence Graph),基于PDG引导生成EFSM的可执行测试序列。PDG将传统的可执行预测从1步扩展到N步,从而使得测试序列生成引导更加准确。(3)量化EFSM模型PDG中边的权值,提出了一个启发式搜索函数,该函数将测试序列生成过程中遇到的三个问题:测试序列的可执行性、测试序列长度和测试序列覆盖标准抽象成为三个因子,这三个因子作为启发式搜索函数的参数来引导可执行测试序列的生成。(4)提出一种基于参数化可执行分析树的测试序列生成方法。该方法在无需初始输入数据的情况下生成满足覆盖需求的测试序列,同时生成满足该测试序列可执行的变量约束条件,任何一组满足约束条件的变量取值都可以满足测试序列的可执行性。