论文部分内容阅读
GUI测试多采用基于规约(Specification)的方法,即检查软件实现是否与规约一致。这种测试通常先基于规约建立测试模型,然后再在模型的基础上生成测试用例。当前描述GUI的测试模型多采用有限状态机(FSM)。使用FSM描述GUI模型有一定的局限性:
(1)状态爆炸问题。GUI是事件驱动的,输入事件排列空间非常大,这导致了GUI在运行的过程中呈现出多种可能状态,而FSM通过全局状态来描述系统行为,这会使FSM的状态随着GUI状态的增长而剧增。
(2)描述能力不足问题。FSM没有专门的机制来存储历史信息,只能通过有限的状态量来作记录,因此难以描述GUI中像Undo/Redo这一类行为。
为了解决这些问题,本文采用Petri网来描述GUI的交互模型。Petri网通过初始状态和变迁的规则来描述系统行为,而不是采用全局状态以及罗列出所有可能转换的方式,这使得Petri网能以更简约的方式描述GUI交互模型,而且Petri网的描述能力比FSM更强,能较好地描述Undo/Redo这一类行为。
本文给出了基于Petri网的GUI交互模型的定义、性质和如何建立这种模型的方法,并通过大量的例子和实验说明Petri网用于描述GUI交互模型的优越性。
在GUI的Petri网模型的基础上,本文设计了基于可达图生成测试用例的方法,这种方法能为测试用例的每个事件都生成预期状态,解决了GUI测试生成预期状态难的问题。结合已有的工作本文又给出了三种覆盖标准:Length N标准、全路径标准和状态-转换标准,并设计了基于可达图生成满足这三种标准的用例的算法,最后通过实验评估了不同覆盖标准,说明了全路径标准在查错能力和效率之间取了较好的平衡。