论文部分内容阅读
目前,随着人们对状态机的研究日趋深入,状态机的模型思想已应用到越来越多的领域,对于状态机模型的正确性和可靠性要求也越来越高,因此对于状态机测试显得越来越关键。现有的基于状态机的测试方法研究大部分集中于测试用例生成方法的研究,然而,在用例产生错误现象之后,仍需要进一步通过分析错误特征诊断出具体的错误位置,因此状态机的错误诊断方法是一个非常值得研究的问题。一般的基于状态机的错误诊断方法多基于单个错误的假设和两种错误模型,即输出错误和转换错误,并且假设的测试用例都完全可执行。本文结合现实中对于状态机测试的需求,在状态机模型上增加了输出为空和无法转换的转换结果,使得模型可以在随机生成的用例下运行。在一般研究的两种错误模型基础上,提出了转换未执行错误和转换多余错误两种新的错误模型,并将假设和错误模型应用到单个状态机模型、通信状态机模型以及嵌入式通信状态机模型三种模型上,得到在三种模型下的错误诊断方法。通过对一般的状态机错误诊断过程的简化,本文提出的改进方法分为预处理、判定错误和鉴定错误三个阶段。预处理阶段生成必要的基本信息和初始的可疑错误集合。判定错误阶段采用正向分析和逆向分析相结合的方法,给出每种错误的判定算法,由算法生成所有的可疑错误。鉴定错误阶段通过增加附加的测试用例的方法处理多个可疑错误的情况,给出了测试用例生成的原则以及不同情况下的处理方法。本文根据三种状态机模型的不同特征,指出了同一类型错误在不同模型下算法的不同之处,并分别给出了三种模型下的判定算法,分析了算法的正确性和效率。最后,对每种模型给出了具体实例,通过实例描述了算法的执行过程,得到诊断结果。结果表明,该方法能准确地诊断出错误位置和错误信息。本文研究的错误诊断方法对于状态机的错误诊断方法的研究是一种补充,具有一定的理论意义。该诊断方法可用于现实中有关单个状态机、通信状态机和嵌入式通信状态机的系统模型验证和测试中,具有一定的现实意义。