题目:航天器测试程序缺陷自动定位方法研究
● 摘要
随着面向航天器测试语言的出现,测试人员可使用其编写航天器自动化测试程序。然而,隐藏在这样的程序中的缺陷将会导致测试失效,甚至会带来重大损失。由于航天器本身是一个复杂而又昂贵的系统,因此,在航天器自动化测试程序及其运行环境用于实际测试前,必须经过大量的验证和模拟运行工作,保证测试程序的正确性和测试过程的有效性。在航天器测试程序编写完成后,验证测试程序的正确性,发现测试程序中潜在的缺陷是保证航天器测试有效性的重要手段。在航天器测试程序开发过程中,程序验证与调试是找出程序缺陷并减少其数目的过程。通过减少缺陷数目,可以使得程序按程序员的预期执行,减小上述损失。但是,随着程序规模的不断增大,以及缺陷的修改可能导致新缺陷的引入,使得程序验证和调试通常耗费大量时间,并成为程序开发过程中的一个瓶颈。因此,在程序编写和维护过程中,高效的程序缺陷定位技术对于保证程序质量和降低开发成本具有重要意义。近十年来,缺陷定位方法得到深入研究。这类技术的目的是协助测试人员定位程序中缺陷的位置。缺陷定位方法可以分为两类:静态程序分析和动态缺陷定位。静态分析是指在不执行程序的情况下,通过代码走读、模型检测等程序分析手段找出程序缺陷。而动态缺陷定位通过比对程序在正确执行与失败执行之间运行时行为差异而发现缺陷。本文采用动静结合的方法定位程序缺陷,重点研究了航天器测试程序需求验证、航天器测试执行引擎缺陷定位等关键问题,并总体设计和实现了航天器测试程序缺陷定位系统。主要研究成果如下:(1) 提出了验证程序正确性的静态方法针对“验证测试程序编写是否符合测试需求”的问题,在研究航天器测试应用需求的基础上,分别对航天器测试需求和测试程序建模,通过模型检测验证测试程序与测试需求是否一致,检验测试程序的编写是否符合测试需求。如果测试程序不满足测试需求,则该方法将认为这是一类缺陷,并指出该缺陷所在位置。对航天器测试程序需求验证中存在的测试原子执行完成时间不确定性与原子并行执行带来的执行顺序不确定性所带来的验证复杂性,分别提出基于状态类与测试原子独立性的解决方法消除不确定性,提高验证效率。通过模型检测,该方法实现了验证测试程序正确性的目的。(2) 提出一种基于非参数假设检验的缺陷自动定位方法针对“如何高效动态定位测试执行引擎中存在的缺陷”的问题,在动态缺陷定位技术中,基于中心极限定理的参数假设检验方法被认为是一种高效的缺陷定位手段。然而,通过在公共数据集上的研究表明,在测试用例数较少,即测试样本容量较小时,使用中心极限定理是不恰当的。从小样本的现实出发,本文进一步实验表明在公共数据集上近1/3的程序谓词的分布偏离了正态分布。因此,根据统计学原理本文提出了基于非参数假设检验的方法,同时对于两种常用的非参数假设检验方法Kolmogorov-Smirnov检验和Cramér-von-Mises检验进行了与参数假设检验方法的对比。实验表明:相较已有的参数假设检验方法,基于非参数假设检验的缺陷定位方法提高了缺陷定位的效率。(3) 总体设计并实现了航天器测试程序缺陷定位系统在本文的航天器测试程序需求验证、航天器测试执行引擎缺陷定位研究的基础上,总体设计并实现了航天器测试程序缺陷定位系统。该系统可以验证测试程序编写是否符合测试需求,同时能动态定位测试执行引擎中的缺陷。本文研究方法应用于实际航天器测试中,应用表明该方法可以对测试用例程序的缺陷进行有效的验证和定位,提高了航天器测试的准确性和测试效率,从而验证了本文研究成果的正确性和有效性。
相关内容
相关标签