论文部分内容阅读
安全苛求软件通常指应用在医疗、轨道交通、航空航天等场合的软件,往往复杂度很高而且有着严格的质量要求,它们一旦发生故障则可能会导致灾难性后果,因此必须经过大量充分地测试才能避免事故的发生。但手工测试是一项耗费大量人力财力的工程,因此,对安全苛求系统的自动化测试技术的研究有着重要的研究意义和工程价值。与常规软件不同,安全苛求软件不仅系统庞大,而且对安全性和可靠性有着特殊的要求,因此,恰当的自动化测试方法不仅能够提高测试效率,还可以验证软件的安全性。但是由于安全苛求软件的复杂性,目前很多技术都不适用于此类软件,而针对安全苛求软件的一些研究由于其适用的复杂性也并未得到广泛的接受和工程化。所以,本文针对安全苛求软件的测试用例自动生成技术和用例自动执行技术展开了研究。本文首先分析了当前流行的软件自动化测试技术,把此项技术分成两个部分分别研究,即:测试用例自动生成和测试用例自动执行。文章中总结了各个方法的特点和不足,并根据SpecTRM工具的启发选择研究自定义语法规则自动生成测试用例技术,然后用数据驱动的自动化测试框架完成整个自动化测试流程。其次,本文提出了类似于中文自然语言文法的需求规格书改写规则,底层是状态机模型。相比其它形式化方法,本文涉及的语法规则简单易用,而且不需要严格的数学知识。针对安全苛求软件的安全性和可靠性的特殊要求,本文提出了运用状态突变自动生成测试用例故障逻辑的方法,以尽可能覆盖到软件的缺陷,保证其安全性;针对安全苛求软件复杂性要求,本文采用数据驱动的自动化测试框架,在自动生成测试逻辑之后,再进行数据配置,实现测试用例的自动化生成和执行。最后,本文以CBTC系统的ATS子系统为研究对象,分析了其功能特性,开发出了一套不仅可以自动化测试ATS程序代码,还可以自动化测试其人机交互界面的自动化测试软件,对ATS的功能性测试能达到90%以上的覆盖率,其故障测试用例也很好地测试了ATS软件的安全性。此外,本文还开发了一套更便于观察测试结果的三维显示与交互系统,具有很高的沉浸感和真实度,可以在很大程度上减少测试者对现场环境的依赖,节约成本。