系统检测软件由脚本解释器、模型、测试结果收集和显示模块四个部分组成。脚本解释器是用来把测试脚本解释成为可执行的代码形式,在测试过程中用于控制测试流程。模型则根据测试脚本的要求计算产生测试数据,并发送到被测系统之中。测试结果收集是用来收集被测系统运行过程中的状态信息和输出数据。显示模块用来根据测试人员的要求在测试过程中把被测系统的状态信息和输出数据显示出来,以便测试者可以观察和控制测试的进行。
地面检测装置(系统检测箱)是在设备正常运行之前检测数控系统的完好性和对装置中闪存的读写操作,以及设备运行以后进行数据下载和数据分析的工具。地面检测装置的功能包括对电子控制器及发动机模型的仿真、电子控制器的检测、继电器箱的检测、传感器的检测和电液伺服阀线圈的检测等。在测试环境中,地面检测装置从系统检测软件中获得模型根据测试脚本所产生的测试数据,在装置内部把这些测试数据全都转换为可以输入到被测系统中的数据形式,并通过I/0接口送到被测系统之中,驱动被测系统的运行并完成测试。
这套系统测试环境具有以下几个主要特点:
(1)有一定的通用性。这套环境不仅可以对发动机数控软件进行测试,而且可以对相似的一类嵌入式软件进行测试。
(2)操作简便。测试环境只需要测试者把测试用例编写成测试脚本的形式,即可在测试环境中实现自动化的测试,无须对被测系统进行直接的操作。
(3)测试效率较高。由于有了系统检测软件和系统检测箱的支持,这种自动化测试的执行效率比手工测试有较大的提高。
(4)支持重复性的测试。由于测试用例是以测试脚本的形式存在,所以同一个测试可以毫无差别地无限次执行。重复性测试在故障修改之后的回归测试中有很大的应用。
2.系统测试过程
在建立好测试环境之后,就可以利用它进行系统测试了,具体过程有以下步骤。
(1)设计测试用例。系统测试用例由两部分组成:测试输入序列和测试的预期结果。测试输入序列描述了一次测试中对被测设备的具体操作流程,包括如何启动设备、何时进行加速操作、何时进行停车操作以及何时关闭设备等。测试预期结果描述了被测试的设备在上述的操作下应该产生什么样的动作或处于什么样的状态。
测试用例的质量是能否发现设备软件故障的关键所在。在设计测试用例时,可以根据测试的侧重点不同,从正常功能、边界情况和非正常操作等几个方面进行考虑。正常功能测试就是根据被测试的发动机的正常使用情况,模拟出一些具有代表性的操作。边界情况的测试是指对输入被测系统的模拟量的边界值进行测试,经验表明当输入量在边界上或是边界的临近点取值时是最容易产生错误的,例如发动机在正常转速范围的边界点附近运行时往往容易发生故障。非正常操作主要是考察数控系统软件在处理一些异常情况时的能力,例如在使用者出现错误操作或是在使用中突然发生硬件故障的时候,数控系统软件是否具有一定的保护功能,而不至于出现重大的事故,这项测试主要是考察数控系统的可靠性和健壮性。
(2)运行测试。设计好的测试用例在测试环境提供的图形化编辑环境中,通过画图或是文本方式可以转换成测试环境能够识别的测试脚本形式。每一个测试用例转换成为一个测试脚本,测试脚本可以直接加载到测试环境中进行一次测试。在测试运行过程中,测试用例在操作序中得到依次执行,被测试的系统也因此得到运行。运行过程中还可以通过测试环境提供的显示模块观察到设备运行的状态。
(3)分析测试结果并得出测试结论。一次测试结束之后,测试环境会自动地收集被测试系统的各项运行数据。把这些数据与测试用例中预期结果进行比较,由此判断被测试设备运行是否正常,是否发生了故障。
从正常功能、边界情况和非正常操作三个方面考虑生成了100个测试用例,并在搭建的测试环境中得到成功的运行,最后通过对测试结果数据的分析,发现了几个关键性的问题,例如当飞机的飞行高度超过一定值后,软件所进行的插值计算就会出现错误。另外还有因为软件的设计逻辑有问题而导致发动机在不该停车的时候停车了等。经过分析确定这些故障都是由于数控系统软件的缺陷所导致的。软件设计人员对这些问题进行了正确的修改之后,系统的可靠性和健壮性都得到了很大的提高。
四、结束语
利用上述系统测试环境以及测试方法,已经成功地进行了多个嵌入式软件的测试,发现了许多软件中潜在的重要缺陷,在为提高设备的质量和可靠性方面发挥了重要作用。