2.陕西省地方电力(集团)有限公司汉中供电分公司 陕西汉中 723000)
摘要:智能电能表及采集终端在近年来已获得大范围的推广应用,为满足智能电网发展的需要,对其软件的功能设计有了越来越多的要求,软件规模和复杂性逐步增长。但目前在软件的测试技术、质量可靠性等方面的研究还相对空白。为提高软件质量可靠性,本文基于软件工程理论,建立智能计量设备软件测试模型,研究其静态测试、动态测试、自动化测试工具支撑等关键技术,提供智能计量设备的软件测试方法。
关键词:智能计量设备;软件测试模型;测试技术;测试工具
0 引言
随着我国智能电网及智能计量的快速发展,对智能电能表、采集终端等智能计量设备的软件功能设计要求越来越多,软件的规模及复杂性也随之增加[1]。除硬件元器件、材料、结构等影响产品可靠性外,软件也已成为影响产品稳定性运行的关键因素,并逐渐成为区分产品质量优劣的重要指标之一。智能计量设备目前的测试标准只限于对产品要求的外部常规功能测试和通信规约一致性测试,关于智能计量设备软件规范化的测试模型、测试流程及测试技术都没有行业的规范标准支撑。
本文针对智能计量设备的软件质量测试,建立了智能计量设备软件测试模型,并研究了静态测试、动态测试、自动化测试工具等关键技术,为智能计量设备软件测试提供测试方法及内容。
1 软件测试模型分析
软件测试模型与开发过程紧密结合,定义软件测试的流程和方法[2]。模型的优劣直接影响测试进度和测试结果的准确性、有效性,所以,正确选择与构建过程模型是测试应该解决的前提。典型的通用软件测试过程模型包括V模型、W模型等,目前军用和汽车电力领域也有相对成熟的符合自身行业的嵌入式软件测试模型。
1.1通用软件测试模型
1.1.1 V模型
V模型在20世纪80年代后期由Paul Rook提出,是软件测试最具代表性的测试模型之一,主要反映测试活动与分析和设计的关系[3]。V模型测试结构如图1所示,图中箭头表示时间方向,左边是开发阶段,与之对应的右侧是测试阶段。
图1 软件测试V模型
图2 软件测试W模型
V模型明确的标明了测试过程中存在的不同阶段,说明了开发中由需求到编码等阶段对应的各测试阶段[4]。但局限性在于只把程序作为被测对象,而需求、说明书等其它规格说明书都未被列为测试对象;另外需求分析阶段隐藏的缺陷要最后产品测试验收时才能被触发,不利于早期发现缺陷。
1.1.2 W模型
基于V模型,软件各开发阶段中应该同步进行的验证和确认(Verification and Validation,简称V&V)活动,在W模型中被提出。W模型测试结构如图2所示。
W模型明确代表测试和开发之间并行的关系,强调了测试的对象包括程序,还包括设计、需求、文档等材料,也需要测试。但局限性在于仍旧把开发活动看成是从需求开始到编码结束的串行活动,不能支持迭代、自发性以及变更调整[5]。
1.2军用或汽车电子软件测试过程及模型研究
在军用《QJ3027-1998 航天型号软件测试规范》中4.2规定完整的测试工作贯穿于开发及确认全过程,测试必须包含单元测试、组装测试、确认测试和系统联试,并以所列顺序进行[6],即基本包括以上模型中的所有测试活动。
在汽车电子《ISO/DIS 26262 道路车辆 功能安全》第6部分软件完整性测试等级要求中如图4,建立汽车电子软件全生命周期的测试V模型,左侧为开发阶段,右侧对应软件测试阶段,包括单元、集成、确认测试,且以自动化测试为主。
图4 汽车电子软件完整性等级测试
2 智能计量设备软件测试模型建立
智能计量设备软件要进行完整性测试,需要首先建立适合产品特性及质量要求的软件测试模型。基于以上通用及汽车电子等模型,构建智能计量设备软件测试过程模型如图5所示。
图5 智能计量设备软件测试模型
该模型的特点及优点[7]:
(1)模型明确了每个常规的测试阶段,单元、集成、确认和系统测试,并且对应着每个研发阶段;
(2)独立系统体系结构设计阶段。主要是强调系统体系结构设计在开发测试中的重要性;
(3)编码阶段对应独立划分了静态分析阶段,增加了静态分析的软件质量度量、代码审查等过程[7];统计表明,静态分析能发现/阻止20%的代码问题。这样能及早的发现问题,大大减轻后续测试的工作量。
(4)集成测试的阶段不仅仅只针对单元接口测试,同时增加了软件功能需求的验证,对由软件实现的功能可以部分在宿主机下验证;
(5)增加了各个阶段的回归测试,只要软件发生改变,就可能给软件带来问题,所以要及时进行回归测试,模型中每个阶段均返回代码审查等静态分析阶段,保证原有的错误彻底修改及避免出现新错误。
模型能为智能电能表软件测试过程设计提供切实可行的理论依据。
3智能计量设备软件测试关键技术研究
3.1 关键测试技术分析
3.1.1 静态分析
静态分析是在早期确保软件质量可靠性的重要措施,也是衡量和评价软件质量的有效途径。主要测试内容包括代码检查、编码规范检查、静态结构分析、代码质量分析等[8],为代码级白盒测试。
图6 静态测试
典型的较广泛应用的是欧洲汽车工业MISRA C编程规范,是权威人士或专家在长期教训上汇集成的使用好的编程习惯和更优的编码质量排查软件缺陷,降低潜在的风险,涵盖了软件编写的甚至环境、文档,及变量、常量、关键的指针、数组、结构设计各个方面。目前,海外表某些地方,招标规范有针对智能电能表提出要求,其代码要符合MISRA C-2012的编写规范。
.1.2 动态测试
动态测试是实际运行被测程序,输入相应的测试用例,检查运行结果与预期结果的差异,判定执行结果是否符合要求[9]。测试模型中单元测试、集成测试为动态白盒测试,确认和系统、验收测试等主要为动态系统测试。动态白盒主要测试内容及指标如下图7所示。
动态系统测试是将软件与整个系统硬件进行集成的测试活动,包括性能测试、压力测试、容量测试、安全性测试、可靠性测试等。
图7 动态白盒测试
3.2 自动化测试探索
智能计量设备要从根本上去提高软件测试质量与效率,使用自动化的测试工具已成为必然的发展趋势,并且自动化测试工具中逐步包含了当前对软件测试的安全认证的标准。
3.2.1 白盒测试自动化支撑工具
白盒测试为代码级的测试,是软件内部编辑及结构的测试,目前有通用的一些嵌入式的商用自动化测试工具,例如LDRA Testbed、IBM RTRT等。LDRA Testbed(C/C++)已在军用、船舶、汽车、工业控制等多个行业广泛应用,通过了多行业的软件测试质量标准的认证,支持白盒静态和动态单元、集成测试,Testbed测试工具如图8所示。
图8 Testbed测试工具
3.2.2 产品系统级测试
系统级测试是面向产品直接需求的功能和可靠性测试,产品具有功能的独特性,通常开发专用的自动化测试工具,例如基于软件自动化脚本技术,采用系统黑盒测试的功能分析、等价类划分、边界极限等测试用例设计方法[10],设计电能表及采集终端软件自动化测试系统(配校验台使用),如图9。提高了测试的深度与测试覆盖率,实现了智能电能表及采集终端等智能计量设备的全自动化测试,进一步提高了测试效率及测试质量。
图9 基于黑盒测试智能计量测控验证软件
4 总结
本文基于通用软件测试模型、参考军用、汽车电子成熟的嵌入式软件测试模型,建立智能计量设备软件测试模型,分析模型的特点及优点,模型能为智能计量设备软件测试过程设计提供切实可行的理论依据;研究了模型中静态、动态关键测试技术,分析了自动化测试工具。研究成果有助于企业掌握先进的测试理念,测试方法,提高测试水平。提高软件代码缺陷的检测率,提高智能计量设备产品可靠性。
参考文献
[1]Malik J S,Verma R K,Gupta G.Development of smart meter[C].International Conference on Reliability.INFOCOM Technologies and Optimization. IEEE,2015;
[2]吴强,高扬,王华,王晓盈.嵌入式测绘导航软件测试过程模型研究[J].测绘科学与工程,2017,3:74-78;
[3]曾凡晋.浅议软件测试领域V模型与X模型[J].邢台职业技术学院学报,2009,20(3):15-17;
[4]孟庆鑫,张龙.软件测试模型的探讨[J].计算机与网络,2014,5:66-69;
[5]Walsh,Joan.Software quality management:a subjective view.Engineering Management Journal[J],1994,4(3):105-111;
[6]QJ3027-1998, 航天型号软件测试规范[S];
[7]汪萍萍.面向电器产品的嵌入式软件测试与评估技术研究[D].杭州:中国计量学院,2013;
[8]王英武,赵忠慧,胡巧云.软件测试技术研究[J].集成电路通讯,2015,1:31-34;
论文作者:余洁琼1,晏群2
论文发表刊物:《电力设备》2017年第28期
论文发表时间:2018/1/30
标签:测试论文; 软件论文; 模型论文; 智能论文; 设备论文; 阶段论文; 静态论文; 《电力设备》2017年第28期论文;