结合人工智能(AI)技术、自动化测试技术的进步以及介方信息规模化软件开发及交付的需求,公司内部成立了以数据驱动的智能化软件测试项目。聚焦于本司软件研发、测试、交付过程中的痛点,采用人工智能、数据中间件等技术构建全数字化的嵌入式软件智能测试平台,促进企业软件测试向数字化、智能化转型。
该智能化软件测试平台可完成软件的单元测试、集成、回归等类别的测试任务,测试的对象涵盖本公司所有的软件产品,包括核心框架、中间件、硬件抽象层、操作系统等。测试用例库可以无限扩展,目前已支持2000+测试用例,可实现对软件产品的功能、性能、标准符合性等类型的测试项目。项目运营6个月,已经顺利完成5个软件项目的顺利交付,将项目交付效率提升了40%,客户满意度大大提高。
通过实战项目落地,公司成立了一个独立的智能化测试平台团队,负责测试项目实施及测试平台的运维工作。将公司的测试成本节省了70%。基于项目成功的实践,现已将该智能化测试平台作为一个标准化产品推向市场。
一、实施背景及目标
国内“十四五”期间开始大规模列装下一代智能通信装备,并且强制要求采用基于SCA的智能可重构操作系统。由预研到型研的转变,一方面要求软件产品能够快速交付;另一方面要求软件产品的质量能满足军标要求。
大规模嵌入式软件产品在面向不同的硬件平台时,需要一定程度的裁剪、重配置、功能定制及性能优化。一个软件项目的交付会涉及研发、测试、质量等各个环节,传统的软件测试方式不仅需要大量的测试工程师,而且不能保证测试质量和效率。针对以上问题,采用开放式的软硬件架构构建嵌入式软件测试平台,通过统一的数据模型打通不同测试分系统,实现全流程的数字化,使用AI技术实现测试计划自动生成、测试报告分析等。
二、建设内容
2.1全流程智能化测试平台
为了实现本司软件产品的测试流程的标准化、测试过程的自动化、数据分析的智能化,构建图一所示分布式测试硬件环境。该环境由综合管理平台、可视化操作平台、软无基型平台、测试仪器四部分构成,每个部分之间通过交换机或者硬件接口直连,具体描述如下:
2.1.1综合管理平台
综合管理平台是智能化测试系统的“大脑”,提供测试工程管理、用例管理、测试计划生成、测试数据管理及报告生成等功能。该平台由专人管理,管理整个项目的全生命周期,从导入厂家待测设备的硬件信息到生成测试计划,以及监控项目的执行进度、测试报告生成。该平台的硬件部分是一个高性能工作站,软件部分是综合管理软件,并综合管理软件是整个智能化测试系统的核心,作为测试后台,控制具体功能测试软件完成具体测试任务。
2.1.2可视化操作平台
可视化操作平台提供可视化的测试界面,该平台由测试计算机和功能测试软件构成。按照功能划分,可以分为操作系统测试平台、传输机制测试平台、核心框架测试平台、硬件抽象层测试平台及平台适配性测试平台,分布式执行不同的测试任务。可视化操作平台在常规测试模式下,必须向综合管理平台请求测试计划及更新测试用例,然后执行测试任务,最后将测试结果上传至综合管理平台。考虑到适配的灵活性,测试平台提供调试模式,可以完成测试用例的适配。
2.1.3软无基型平台
软无基型平台是被测试对象,分为高集成式、一体式、嵌入式及分体式等四种类型。每个基型平台软件、硬件的设计要符合性SCA标准,其平台软件操作系统、传输机制、核心框架及硬件抽象层。测试厂家进行符合性测试,需将基型平台的软硬件信息(设备类型、关键器件、操作系统、IP地址、逻辑地址等)上报给测试管理人员进行登记。
2.1.4测试仪器
测试仪器是辅助符合性测试系统完成测试任务的测量设备,包括直流电源、频谱仪、示波器、矢量信号源、功率计、矢量信号分析仪、时间测试平台等。每个测试仪器的功能简要描述如下:
●直流电源:为软无基型平台提供电源支撑,提供多通道多种输出电压。不仅能满足多台设备的需要,而且还要满足大功率设备的电源要求。
●频谱仪:频谱仪连接被测设备的射频接口,辅助完成波形加卸载、RFC硬件抽象层接口等项目的测试。
●示波器:示波器用于监测被测设备的高速、低俗接口,辅助完成波形加卸载、硬件抽象层等项目的测试。
●矢量信号源:矢量信号源用于连接被测设备的射频接口,辅助RFC硬件抽象层接口项目的测试。
●射频功率计:矢量信号源用于连接被测设备的射频接口,辅助RFC硬件抽象层接口项目的测试。
●矢量信号分析仪:矢量信号源用于连接被测设备的射频接口,辅助RFC硬件抽象层接口项目的测试。
2.2数据驱动的软件测试过程
2.2.1软件测试环境
图一:一体式智能化软件测试平台
如上图所示,智能化软件测试环境是一个总分式的结构,综合管理平台是整个测试系统的“大脑”,负责测试项目管理、用例库管理、测试数据管理及执行监控。综合管理平台通过传输机制与各个测试软件进行通信,形成一个分布式系统。各个测试软件请求综合管理平台下发测试计划,执行测试完成,并将测试结果上传到综合测试管理,实现一个完整的测试闭环。
测试用例库是符合性测试系统最为核心的构件,本系统将测试用例与测试软件实现解耦,测试用例可配置、可升级,而测试软件采用插件式的开放架构,不同的测试任务配置不同的测试用例。
为了方便测试的任务并行开展,提高测试效率,将测试软件设计为五个独立的测试操作软件:核心框架测试软件、传输机制测试软件、操作系统测试软件、硬件抽象层测试软件及平台适配性测试软件。每个测试软件可以执行不同的测试任务,在执行测试任务的过程中,测试用例配置、测试过程、测试结果都由后端的综合管理软件进行管控,保证测试流程的数据私密性和公正性。
2.2.2自动化软件测试流程
测试的依据是SCA标准规范集,包括操作系统子规范、传输机制子规范、核心框架子规范、MAHL子规范、MOCB子规范。根据这些标准规范设计测试大纲,定义结果的判决标准。在测试系统的实现方面,将测试用例与测试环境及工具分离,测试用例严格按照测试大纲设计,保证符合SCA标准规范。测试环境及测试工具采用开放式架构设计,功能可定制,适配不同的测试需求。
通过实际的测试结果与测试大纲定义的期望结果进行比对,生成不符合、基本符合、完全符合等测试结论。对于测试过程中,出现不可恢复故障,无法完成测试任务的,则终止测试。
图二:数据驱动的软件测试流程
如上图所示,SCA符合性测试流程共分为适配阶段、测试阶段及分析总结阶段,本方案所构建的符合性测试系统涵盖了测试项目创建、执行测试到测试结果分析、报告生成整个测试周期。
1)适配阶段主要完成项目创建到测试计划的生成,需要测试厂家和测试管理人员的共同参与。
2)测试阶段的主要工作是执行各个测试任务,并把测试结果上传给综合管理平台。
3)分析总结阶段主要完成数据的统计及分析,生成测试报告,给出符合性测试结论。在关闭项目之前对项目工程的数据进行备份,以便于复盘和查询。
三、实施效果
截止目前,数据驱动的智能化软件测试项目已经在公司5个项目上落地,并保障了项目顺利交付。应用对象已覆盖我司核心框架、中间件、集成开发环境等全部核心软件产品。现已经将该智能化软件测试平台打造成一个标准化产品,应用到客户现场,凸显了我司产品在业内差异化竞争优势。具体的实施效果如下
1、交付效率:
软件产品交付效率平均提升了40%,在不增加研发及测试人员的情况下,完成了更多的项目交付。
2、产品质量:
客户请求现场解决问题的次数下降了85%,降低到历史最低点,客户满意度持续上升。
3、测试成本:
测试平台一次投入,持续升级。测试的用例及方法得到最大化的复用,单个项目的测试成本平均降低了70%。
4、产品性能:
随着测试用例库的不断丰富,对软件产品的测试不仅更深而且更广,测试出一些产品以前未被测试bug,提升了本司软件产品在行业内的竞争力。