基于测试复用的飞行记录器软件测试平台研究

2018-11-15 02:13符丽枚于敏
电子产品可靠性与环境试验 2018年5期
关键词:记录器测试用例测试数据

符丽枚,于敏

(工业和信息化部电子第五研究所,广东 广州 510610)

0 引言

飞行记录器被俗称为 “黑匣子”,具有强大的数据监测和记录功能;现代增强型飞行记录器更是集数据采集、数据处理和数据记录等功能于一身,可同时支持飞行参数、座舱声音/机组通话和数据链等数据的记录,供飞行实验、事故分析之用,因此被广泛地应用于各类飞行器上。驻留在飞行记录器内的配套软件,功能逻辑实现基本一致,但与外部交联的接口种类繁多,交互的数据庞大。对于此类软件的测试,如果继续使用传统的 “一型一套”的测试模式,设计测试用例和准备测试数据的工作量将会很大,所需的时间也会很长,根本无法满足日益增长的测试任务需求。如果能在这两个方面进行有效的突破,将可以大大地减少测试该类软件的工作量[1]。

本文对飞行记录器软件共性功能进行了分析提炼,针对影响该类软件测试效率的主要问题进行了分析,以测试用例复用技术为基础,结合测试数据准备、测试过程管理和测试文档生产等自动化测试手段,研究了基于测试用例复用的软件自动化测试平台,有效地减少了测试用例设计、测试数据准备和测试文档编制的工作量,极大地提升了软件测试的效率和质量。

1 飞行记录器软件功能分析

飞行记录器软件一般具备数据接收、数据分析处理、数据记录存储、数据转发输出和系统维护等共性功能[2],具体的内容如下所述。

a)数据接收功能

按照约定的接收规则,从机上传感器和其他系统采集数字化飞行数据和音频模拟信号,数据形式多样,数据量大,数字信号包含各种总线、串口、以太网和I/O数据等,接收数据的同时可对数据格式和范围大小进行初步的验证。

b)数据分析处理功能

对接收的数据进行分类打包,或提取相关的控制命令并执行。

c)数据记录存储功能

对数据进行分区和按类存储,并建立存储索引号;当存储器的容量记满时,可擦除旧的数据,记录最新的飞行信息;对不同类型的数据的记录时长有不同的要求。

d)数据转发输出功能

向外输出状态信息和告警信息,常见的输出形式为模拟信号、离散信号或数字信号。

e)系统维护功能

通过维护接口来实现记录数据、状态监控、记录数据下载、记录器参数配置和查询,以及系统自检等地面维护功能。

以上功能的实现,均可归纳为对外部接口数据的输入/输出处理,如若对接口每个字段的所有值分别单独设计执行用例,要达到100%测试覆盖,工作量无疑是巨大的。如果对这些接口数据进行提炼,将对接口数据的处理设计成固定模式用例,即应用测试复用理念设计用例来避免重复性的设计工作,并借助自动化数据生成手段来快速地生成各类接口测试数据,这将会极大地提升该类软件的测试效率。

2 测试复用技术研究

测试复用技术的应用可以有效地帮助测试人员减少软件测试过程中的重复劳动,提高软件测试的效率和质量,但面向通用软件的测试复用技术,由于建立和维护复用库的成本过大,见效周期长,导致该技术的实际应用较少,所以开发特定专业领域的软件测试复用技术,进行折中取舍,将具有较高的实际工程应用价值[3]。

测试复用技术的核心内容在于建立测试用例复用库,其基本的技术思路为:挖掘不同系统的共性需求→建立共性需求的测试复用用例→对测试复用用例进行管理→测试复用用例应用[4]。建立飞行记录器软件测试用例复用库的具体思路如下所述。

a)挖掘可复用的共性需求

将第1节中分析提取的飞行记录器软件共性功能,进一步地细化成最小的功能颗粒,例如:数据接收功能可以分割为总线、串口、以太网和I/O等数据接收功能,并对需求进行简短、准确的描述,以提高需求检索的有效性。

b) 建立共性需求的测试复用用例

设计测试用例的基本要素,包括:用例ID、版本号、测试需求、测试环境、测试类型、前提、约束条件、输入参数、操作步骤和期望结果,以及评估标准等[5]。可复用测试用例的设计原则是使生成的测试用例可供多次使用,具有可复用的特性,因此,设计测试用例时需规范地描述基本要素的详细内容,确保用例的通用性。为了增强测试用例的复用性,可以增添反映测试用例特性的关键字信息,例如:被测软件的名称、软件所属的领域、测试需求和输入参数等,形成以关键信息为索引的层次化用例存储和显示体系结构。

测试用例越多,并不代表测试效果越好,成功的软件测试案例是通过运行较少的用例来发现尽可能多的软件缺陷的,所以要求测试人员提高所设计的测试用例的质量,避免无意义的冗余设计。例如:飞行记录器软件在接收处理串口、网口数据时,测试人员可将每个字段的正常值、异常值和边界值进行等价类划分,针对每个等价类输入建立通用的数据处理测试用例,可同时覆盖功能和接口层面的测试需求,有效地提升测试效率,降低测试成本。

c)测试复用用例的管理

可复用测试用例的管理应指定专门的管理员负责,对复用库的访问权限进行严格的限制,防止非授权的用户对复用库进行非法操作,随意篡改、破坏用例。用例设计者将设计好的用例经评审后提交至管理员,管理员将测试用例进行归类,录入保存到测试用例复用库中,并对测试用例进行维护;在维护中不断地添加新的测试用例,更新旧的可完善的测试用例,删除不适应的测试用例。例如:由于软件需求发生变更,或是随着测试的深入,发现原先设计的测试用例不能完全满足测试需求,就需要完善测试用例或新增测试用例,甚至是删除不再适用的测试用例,让测试用例的测试效果更能贴近客户的需求;若需求变更,原功能被取消了,相应的测试用例暂时失去了作用,但考虑到将来可能被其他人在相似的测试中借鉴或修改复用,这时可将与该功能相对应的测试用例标记为无效。

d)测试复用用例的应用

建立好测试用例复用库后,测试人员可以通过软件名称、软件需求和主要参数等关键信息来检索测试用例复用库,查找可以借鉴和复用的测试用例。

3 自动化测试平台的研究

3.1 测试平台的设计要求

为了突破飞行记录器软件测试效率的瓶颈,实现高效、快速测试的目标,进行自动化测试平台设计时应考虑以下几个方面的要求。

a)测试用例的可复用性

飞行记录器软件自动化测试平台能够建立测试用例复用库,不同型号的同类型软件测试用例能够进行复用借鉴。

b)测试数据的自动生成功能

该平台能够模拟仿真通用的网口、串口和总线等接口数据,当接口传输协议、接口数据格式或数据内容等发生改变时,只需修改配置信息即可完成新的测试数据仿真。

c)数据保存和文档生成功能

该平台能够有效地保存测试过程记录,进行测试数据统计;并可辅助生成各个阶段的测试文档,例如:软件测试计划、软件测试说明、软件测试记录和软件测试报告等。

d)操纵界面的简易化

界面直观、易操作,测试人员能够根据软件界面的工作向导,按照测试流程来完成各个阶段的测试工作。

e)信息交互的便捷性

测试人员可以根据需要,通过平台进行测试数据、文档的导入与导出,实现信息的交互与共享。

3.2 测试平台的功能模块

根据自动化测试平台的设计要求,可将该平台划分为3个大的功能模块,即:测试用例管理模块、测试数据管理模块和测试项目管理模块。其功能结构如图1所示。

图1 自动化测试平台的功能结构图

3.2.1 测试用例管理模块

测试用例管理模块主要实现用例复用库的构建、维护和使用,主要包括以下几个方面的内容。

a)测试用例的添加功能

可以新建测试用例,编辑输入用例基本要素:用例ID、版本号、测试需求、测试环境、测试类型、前提和约束条件等;为了提高用例的维护性和复用性,可以增添能够反映测试用例特性的关键字信息 (如被测软件的名称、软件所属的领域和输入参数等);并可以进行用例的保存。

b)测试用例的维护功能

对原用例的修改完善,对冗余不适用的用例可以进行删除或标识无效。

c)测试用例的使用功能

可以通过不同的检索条件 (如软件名称、测试需求、用例名称和测试类型等) 进行用例的查询,提取所需的测试用例进行复用。

d)测试用例操作权限设置

对测试用例的添加、删除、查询和提取权限进行严格的限制,例如:设置项目组长并让其拥有用例操作的最高权限,而组员只有用例查询和提取权限,防止各个组员对用例库用例的随意更改。

3.2.2 测试数据管理模块

测试数据管理模块主要负责机上常见飞行数据和地面维护控制命令的构建,计算机配备必要的数字板卡,可以进行数据的构造发送、接收显示和记录保存。

a)数据的构造和发送功能

可以支持机上典型的接口传输协议,包括TCP、UDP、串口、GJB 289A和HB 6096等协议;接口数据格式、内容和范围可以灵活地配置;此外,还能够设置数据发送频率和发送次数等,可测试接口的逻辑、功能正确性、容错性和吞吐能力等。例如:对于典型的串口、网口 (数据格式如表1-2所示),可对接口文件进行解析、设置数据域的长度和阈值范围,设定数据域的初始值后,可通过复选自动累加、自动递减和随机生成等方式,平台自动地遍历与构造数据域正常值、边界值和非法值的接口数据并进行发送。

表1 典型的串口数据格式

表2 典型的以太网数据格式

b)数据的接收功能

可以支持包括TCP、UDP、串口、GJB 289A和HB 6096等多种接口传输协议数据的接收和显示,根据预先对接口文件的解析,判断是否满足接口协议要求。

c)测试数据的保存功能

可对发送和接收到的接口数据以规范化格式进行记录,记录数据作为数据文件保存或直接导入测试用例的执行记录中,以用于后续结果的分析及统计中。

3.2.3 测试项目管理模块

建立测试项目管理模块,将软件评测过程分为测试策划、测试需求分析、测试设计、测试执行、回归测试和测试总结6个阶段,帮助测试人员按照实验室质量管理体系要求,规范完成各个阶段的测试工作,提升测试效率和文档编制质量。

a)测试项目的管理功能

每一个项目可通过唯一的项目标识号进行区分,输入表征项目特点的关键信息 (软件名称、版本号、研制单位和应用领域等)建立项目工程。平台自动地将该项目划分为6个阶段,生成各个阶段必需的工作产品,建立起各个阶段活动的强制内联关系,比如测试策划前必须进行测试样品的接收登记,测试设计前必须先进行需求分析。项目管理模块还可链接访问复用用例库进行用例复用,进行测试数据统计、问题分类等,可以支持开展需求管理、配置管理、质量保证和风险分析等活动。

b)测试文档的生成功能

选取实验室规范制订的各类测试文档模板,通过平台可生成模板化的软件测试计划、软件测试说明、软件测试记录、软件问题报告和软件测试报告等测试技术文档,各个文档中需要的测试周期、测试环境、测试执行、测试结果和问题统计等信息均来自于平台,从而保证了文档描述的正确性和一致性。另外,还可以生成项目样品管理、配置管理和质量保证等管理类表单,避免消耗额外的人工来手工填写此类表单。

c)测试文件的交互功能

增加对测试文档、测试记录和结果的文件交付,如Word或Excel形式,可以提高项目的扩展性和共享性,方便项目组成员之间的工作交互。

4 结束语

基于测试复用技术的飞行记录器软件自动化测试平台可以实现测试用例复用、测试过程管理和测试数据生成的一体化应用,借助该测试平台可以有效地帮助测试人员按照规范化测试流程完成各个阶段的测试工作,有效地缩短测试设计、测试执行和文档编制的周期,提升测试质量。同时,该平台还可以继续扩展应用到其他专业领域软件的测试中。因此,我们认为平台的建立具有非常长远的工程应用价值。

猜你喜欢
记录器测试用例测试数据
基于SmartUnit的安全通信系统单元测试用例自动生成
测试数据管理系统设计与实现
基于混合遗传算法的回归测试用例集最小化研究
汽车事故数据记录器数据规范及应用进展综述
基于自适应粒子群优化算法的测试数据扩增方法
列车车厢视频记录器的应用
空间co-location挖掘模式在学生体能测试数据中的应用
基于弹载图像记录器的压缩系统设计
基于依赖结构的测试用例优先级技术
影响《标准》测试数据真实性的因素及破解策略