论文部分内容阅读
软件测试是软件生命周期中不可缺少的一部分,是保证软件质量的重要途径。“早测试,常测试,自动测试”已成为软件工程师公认的至理名言,其中由于自动测试能够降低测试成本,并且可以完成一些人工测试不能完成的工作,因此一直受到学术界和工业界的重视,测试用例的自动生成和运行作为自动测试活动中最为重要的部分,也成为了研究的热点。
自20世纪70年代以来,基于模型的测试序列生成方法得到了广泛的研究,比如,基于有穷状态机、扩展的有穷状态机以及UML状态图的测试用例生成,其中基于有穷状态机生成测试序列的方法已经用于对时序电路和通讯协议的测试。到20世纪末,为了实现对实时系统的建模,有学者提出了时间自动机模型,目前已用于模型检测和状态可达性分析,近年来,基于时间自动机的测试序列生成方法也相继被提出。
本文首先介绍了基于模型的测试序列生成方面的研究,其中详细介绍了基于有穷状态机生成测试用例的5种经典方法,并根据其中测试能力较强的4种方法开发了基于有穷状态机的测试序列自动生成系统TSGenerator。
由于时间自动机形式简洁,描述能力强,被广泛用于实时系统的建模,为了实现对时间自动机的测试,本文在对时间自动机研究的基础上,提出了一种将时间自动机转化为区自动机并同时生成测试序列的算法,根据此算法开发了基于时间自动机的测试序列自动生成系统QuickGet。
需要注意的是,根据以上方法生成的测试序列并非可以直接运行的测试用例,还不能实现自动运行。TTCN-3是一种国际标准的测试描述语言,具有灵活强大的描述能力,可以将基于以上方法生成的测试序列描述成TTCN-3语言的测试用例,然后用TTCN-3测试系统执行这些用例。为了执行测试序列,本文介绍了作者参与开发的TTCN-3测试系统,并着重介绍作者所负责的TM部分。
三个系统的设计与实现吸取了在基于有穷状态机和时间自动机的测试用例生成方面的研究成果,同时也提出新的思想和算法。其中TSGenerator和QuickGet可用于测试序列的自动生成,TTCN-3测试系统则可以支持测试用例的自动执行,从而实现测试的自动化。