自动化测试方法在目标识别软件中的应用

2021-07-29 11:59中国船舶重工集团公司第七一五研究所赵旭瑞
电子世界 2021年12期
关键词:关键字脚本正确率

中国船舶重工集团公司第七一五研究所 赵旭瑞

针对目标识别软件在黑盒测试时遇到的测试覆盖范围小、验证不充分、测试执行效率低等问题,将主流的线性脚本、结构化脚本、数据驱动、关键字驱动等自动化测试方法应用其中。根据被测软件的关键等级和测试条件,选择适合的自动化测试方法,提升软件测试水平,提高被测软件的质量。

目标识别软件主要实现从时域信号提取跟踪目标特征信息,结合侦察结果、定位结果得出跟踪目标分类结果及置信度。存在多个输入设备时,还要实现多目标信息的关联。软件运行的网络拓扑图如图1所示。主要的性能指标是对不同目标分类正确率的要求。

图1 目标识别软件网络拓扑图

对于常规采用黑盒方式的配置项级测试,测试过程主要内容为使用软件开发组自己提供的几个类型的目标信号作为输入,经被测软件特征分析及自动分类处理后,在显控软件上查看输出结果。功能类测试用例的预期结果主要为分类结果与的目标类型一致;不同型号设备对同一目标的分类结果可进行融合判决。性能测试用例的预期结果主要为统计多次目标分类执行结果,计算出的分类正确率高于规定值。

在测试执行中,大量的测试规程都围绕“模拟某类目标、查看预期分类结果”这项内容,以及排列组合不同类型目标得出统计结果。手动逐项操作并逐个对结果进行检查是一种费时费力的做法,且难以保证记录的准确性和条件覆盖的全面性。将测试规程抽象化,用自动化测试的方法实现测试内容的重复和结果正确性的比对,可更高效全面地验证被测软件。随着测试数据的丰富和测试技巧的提升,可逐步使用线性脚本、数据驱动、关键字驱动等一系列方法,实现自动化程度的提升。

1 线性脚本方法

线性脚本主要用来模拟手动执行测试时的动作序列,测试执行人员通过运行脚本便可一键执行一系列动作。对于目标识别软件某个目标(或某几个组合目标)分类的线性脚本在设计测试的成本和测试执行效率之间达到平衡,实现软件测试水平的提升向验证测试规程,可用图2所示的流程搭建成线性脚本。

图2 目标分类线性脚本流程图

该方法是实现更繁杂脚本、更高层次自动化的基础。优点是简单易学,一些测试工具可以图形化操作甚至通过录屏来实现手动操作的流程转化为脚本代码,对于编程水平有限的使用者也可以轻松使用。缺点也很明显,例如加载不同种类的目标、存在多个不同目标的组合时由于不同的约束条件和不同的操作步骤,将对应有多个不同脚本,脚本的数量会较多;重复多次加载模拟目标或者加载不同类型的模拟目标时,需要执行多次或多个脚本,对于性能测试的分类正确率中要求统计大量多次运行结果的场景,这种方法仍不够高效。

2 结构化脚本方法

结构化脚本方法在线性脚本方法的基础上,引入了脚本库,便于对线性脚本的重用。对于目标分类来说,可以将加载不同类型的模拟目标分别制成基础脚本。为了多次运行时统计结果,将脚本输出改为在识别正确时对应类型目标数加1,流程如图3所示。将不同类型目标识别分类的脚本存入脚本库中,在性能测试的分类正确率计算脚本中,便可组合调用,统计结果后计算出识别率。以基本的A、B两类目标为例,共正身验证100个样本,则流程图如图4所示。

图3 A类目标分类脚本

图4 分类正确率计算脚本

结构化脚本通过重用减少修改脚本的工作量,也降低了新建脚本的难度。该方法的应用对脚本库的管理和测试人员技能有一定要求,脚本应做好文档化,测试人员也应具备一定的编辑能力。

3 数据驱动方法

数据驱动方法是指在线性脚本方法的基础上,将测试输入提取出来存为一个或多个单独的数据文件,通过编辑测试输入文件来控制测试的广度和深度。此时在目标分类脚本的流程前增加“从数据文件中读取目标信息”,数据文件中主要设定加载目标的种类、数量及顺序,作为目标分类数据驱动的控制脚本,如图5所示。性能测试的分类正确率便改为在目标分类驱动后增加计算识别率和验证是否达标的流程,如图6所示。需要增加测试的全面性和有效性则通过增加数据文件中的目标种类、目标数据的数值来实现。验证“多输入目标信息的关联”功能在该方法下也会更容易实现自动化,只需要在目标分类流程中增加每轮识别的目标结果与数据文件中该轮模拟目标信息的比对即可。

图5 目标分类数据驱动流程

图6 分类正确率数据驱动流程

该方法大大减少增加新测试用例的成本,使测试人员不需要过多依赖技术测试分析师(TTA),更适用在关键点、关键区域进行更深入的测试。在管理输入的数据文件并保证读取接口的正确性方面需要投入更多精力。

4 关键字驱动方法

关键字驱动方法是指在数据驱动方法的基础上,将测试输入的数据文件按具体业务提取出关键字,测试执行时通过选择关键字来对被测软件对应类别进行测试。目标识别软件可应用此方法从需求的不同角度设置如“A型设备目标分类、B型设备目标分类、水面目标识别率、水下目标识别率”等关键字,更宏观地验证所关心的内容,而详细的测试用例由关键字文件来自动生成。

该方法的目的是将测试的详细步骤抽象,将测试用例的繁杂性隐藏在关键字中,使现场执行的难度进一步降低,同时也进一步降低新增测试项的成本。关键字的名称应选择对于测试人员和被测软件有意义的字和词,多用于表示与系统的高层业务交互。构建关键字驱动的前期需要投入较多精力,在复杂的大型系统中使用该方法会得到更大收益。

结束语:目标识别软件通过使用线性脚本、结构化脚本、数据驱动、关键字驱动等一系列测试方法,可实现测试自动化程度的逐步提升。根据被测软件的关键等级、规模、测试输入数据的丰富程度、测试工具的功能等因素,选择适合的自动化测试方法,在设计测试的成本和测试执行效率之间达到平衡,实现软件开发的降本增效。

猜你喜欢
关键字脚本正确率
酒驾
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
安奇奇与小cool 龙(第二回)
门诊分诊服务态度与正确率对护患关系的影响
成功避开“关键字”
快乐假期
小编的新年愿望
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意