基于正交试验法的故障诊断软件测试方法

2019-09-23 08:55梁海波
航天控制 2019年4期
关键词:测试用例软件测试故障诊断

姜 苹 梁海波,2 杨 彬 李 想

1.北京航天自动控制研究所,北京 100854 2.宇航智能控制技术国家级重点实验室,北京 100854

故障诊断软件实现对控制系统有关设备接口的在线状态监测,对测量信息进行解析和推理,完成数据的诊断和故障隔离定位。故障诊断软件代码量大、推理规则多,测试工作量大和测试时间长。因此在测试进度紧张的情况下,有必要研究一种方法以缩短测试时间,尽快完成测试,同时保证测试充分性。

文献[1]采用搜索寻优算法进行路径覆盖的方式来生成测试数据。文献[2]通过注入一定数量故障的方法验证测试性水平。文献[3]基于静态测试中的指针分析方法,通过分析源代码发现程序运行时可能产生的故障。文献[4]提出运用故障数最小割集技术作为辅助手段指导软件测试,确定软件故障的各种组合方法,提高软件测试针对性,发现软件潜在缺陷。然而,这些方法都不能从实质上减少规则数目多的故障诊断软件的测试工作量。

本文对故障诊断软件的推理规则特征进行了深入的需求分析,提出采用正交试验法开展软件测试工作,大大提高了软件测试效率,使软件中存在的问题得以充分地暴露出来,测试效果显著。

1 故障诊断软件需求特征

1.1 故障诊断软件概述

故障诊断软件的主要功能包括:实时监测各种电源电压、开关量状态、1553B总线信息及网络信息等;提取测试流程信息,对接收的数据进行识别,生成征兆号;根据测试流程信息,在每个子流程结束后,启动推理机软件,通过预装的诊断规则对故障进行匹配,得出诊断结果。

1.2 故障诊断软件测试需求分析

故障诊断软件中有上千条推理规则,每条推理规则进行基本条件判读或复杂条件判读。

基本条件判读包括:模拟量判读和开关量判读。

复杂条件判读包括多类型数据范围判读、多类型数据时间序列特征判读、未监听到总线消息、当前消息与上一拍消息比对判读、消息状态字判读、消息一致性判读、等差判读、多类型消息满足消息序列特征、多个消息多个数据范围判读、算法处理后范围判读及指定消息的有无判读。

复杂条件判读有全局条件和局部条件,全局条件有判读开始时间、判读结束时间和判断成功次数,局部条件是针对一次判断而言,包括一次判断需要数据信息应满足的时间范围、数据个数和判断方法。

每一种判读,逻辑处理均可能为与、或、非和直推4种之一。

因此,对于上千条推理规则,开展基本条件判读、复杂条件判读,包含4种逻辑处理,所需的测试用例数量非常多。

2 软件测试方法

2.1 正交试验法

正交试验设计方法是从大量的试验数据中挑选适量的、有代表性的点,从而合理地安排测试的一种科学的试验设计方法[5]。正交试验法就是使用已经造好了的表格-正交表来安排试验并进行数据分析的一种方法。这简单易行,计算表格化,应用性较好。

一般用L代表正交表,常用的有L8(27)、L9(34)和L8(4*24)等。此符号各数字的意义如下:

例如:L8(27),其中,7为此表列的数目(最多可安排的因子数);2为因子的水平数;8为此表行的数目(测试用例数);又例如:L9(3*26),有6列是2水平的,有1列是3水平的,L9(3*26)的数字告诉我们,用它来设计用例,设计9个测试用例可以考察1个3水平因子和6个2水平因子。

在行数为mn型的正交表中(m,n是整数),测试用例数=因子数*∑(每列水平数-1)+1,如L9(34),9=4*(3-1)+1。利用上述关系式可以从所要考察的因子水平数来决定最少的测试用例数,进而选择合适的正交表。

2.2 测试用例设计步骤

采用正交试验法设计测试用例,一般按照如下步骤实施:

1)提取功能说明,构造因子状态表。把影响实验指标的条件称为因子,而影响实验因子的条件叫做因子的状态。利用正交试验设计方法设计测试用例时,首先要根据被测试软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当作因子,而把各个因子的取值当作状态。确定因子与状态设计测试用例的关键。因此,要尽可能全面、正确地确定取值,以确保测试用例的设计完整、有效;

2)加权筛选,生成因素分析表。对因子与状态的选择可按其重要程度分别加权;

3)利用正交表构造测试数据集。

3 故诊软件测试的正交试验法

3.1 正交试验法的应用

由于2个或多个复杂条件的逻辑处理与2个或多个基本条件的逻辑处理相同,所以在基本判读中验证与、或和非的逻辑关系,复杂条件判读中不再验证逻辑关系的正确性。复杂条件判读类型及对应属性见图1。

图1 复杂条件判读类型及属性

1)构造因子状态表

多类型数据时间序列特征判读这一类的属性包括:判读开始时间、判读结束时间、是否连续判读、依赖消息、依赖数据、判读次数及通道要求。有的规则对推理的开始时间有要求,有的对结束时间有要求,有的需要消息是连续的,有的需要依赖1553B消息,有的需要对消息多次判读,有的对1553B的A/B通道有要求。所以,该类判读有7大因子,每个因子的状态见表1。

2)加权筛选,生成因素分析表

判读一次、连续判读、依赖1553B消息处理、对通道不进行判读的规则使用的数据量偏大些,在正交表设计时可适当增加这些水平值。

3)构造测试用例集

利用正交表构造测试用例集,正交表内容见表2。

表2中列号代表了各个因子,列号与因子名称的对应关系见表3。

多类型数据时间序列特征判读这一判读类型使用正交试验法分析,包含3个2水平因子、3个3水平因子、1个4水平因子,若所有的排列组合中的规则都要提取,需要提取23*33*4=864个规则,而采用正交分析法,使用L13(23*33*4)后,最少需要提取出13个有代表的规则即可,本文中提取了15个规则,减少了849个规则的动态测试。

这只是对其中一种复杂条件判读进行正交试验法分析,若对所有的复杂条件判读均采用正交试验法分析,将减少96.87%的工作量,具体情况如表4所示。

表1 因子状态表

表2 正交表

续表2 正交表

表3 列号与因子对应关系表

使用正交试验法前需要对3483种规则进行验证,而使用正交试验法后仅需选取109种规则代表这3483种规则,理论上测试工作量减少了96.87%。

3.2 测试用例设计

使用正交试验法提取规则后,还要对规则设计用例。

按照表2中第1行的方法提取规则,该规则中的故障原因和根据该原因产生的故障提示信息如表5所示。该规则无开始时间要求、无结束时间要求、判读多次、消息无连续要求、依赖1553B消息、依赖消息中的时序类型码及不判A/B通道。

表4 正交试验法前后的比对情况

表5 规则描述

该规则的3个时间点中有1个不符合要求,即报出故障信息。由于3个时间段的分析方法相同,这里仅以开始时间49010ms、时序宽度80ms为例进行分析,采用等价类划分方法和边界值分析法,设计用例如表6所示。

3.3 实施效果

通过引入正交试验法对故障诊断软件进行测试,原预计24人月才能完成的测试任务,由2人在近1个月的时间内完成,测试效率提高约91.67%,考虑到测试过程受测试环境搭建与变更、以及人为因素等影响,实际测试效率与理论计算值量级相当。更为重要的是,在测试过程中发现了20余个功能问题,这些问题并不孤立,而是极具代表性的。在判读类型相同的情况下,若被选取的规则有问题,代表着与此相同配置的所有规则均可能存在问题。在此基础上,软件开发方与软件测试方共同就上述20余个功能问题进行了举一反三,累计发现同类型问题147项,确保了软件测试工作的测试充分性和测试覆盖性。如果这些问题没有被及时发现,故障诊断软件可能在故障出现时未能准确报出故障信息,或者在无故障出现时错误地提示故障内容,造成现场监控人员无法及时发现故障或误判故障,带来较为严重的后果。此外,故障诊断软件应用方试验人员将更改后的软件投入系统综合试验、预案验证试验、故障模拟试验等大型试验进行验证,故障诊断软件功能正常,所有规则执行正确,进一步验证了采用正交试验法对故障诊断软件进行测试的有效性。

表6 设计测试用例

4 结束语

针对故障诊断软件代码量大、规则多,无法在测试进度紧张的情况下进行充分测试的问题,本文提出了基于正交试验法提取有代表性规则的故障诊断软件测试方法。在某型号故障诊断软件的测试工作中,验证了该方法的正确性和有效性,为提高故障诊断软件测试效率,减少测试人员工作量有很大帮助。

猜你喜欢
测试用例软件测试故障诊断
基于SmartUnit的安全通信系统单元测试用例自动生成
基于OBE的软件测试课程教学改革探索
EXCEL和VBA实现软件测试记录管理
基于混合遗传算法的回归测试用例集最小化研究
关于软件测试技术应用与发展趋势研究
软件测试工程化模型及应用研究
因果图定性分析法及其在故障诊断中的应用
基于依赖结构的测试用例优先级技术
基于LCD和排列熵的滚动轴承故障诊断
基于WPD-HHT的滚动轴承故障诊断