APP下载

智能电表功能测试平台设计与实现

2021-06-16金虎张林李军

电子技术与软件工程 2021年5期
关键词:功能测试测试用例用例

金虎 张林 李军

(威胜集团有限公司 湖南省长沙市 414400)

随着能源互联网和物联网的高速发展,智能电表在人们的生活中扮演了越来越重要的角色,电网公司、售电市场以及电力用户之间的交互日趋频繁[1],交互需求的个性化和多样化使得智能电表的功能相较于以往有了大幅的扩展,功能的复杂性也提高了智能电表的生产过程的要求,因此需要大量的测试来保证产品的稳定性和正确性,当用户需求发生变动时,需要能快速测试修改部分的功能并对各个功能模块进行回归测试,以同时满足产品的质量和客户的交付要求。

文中通过设计一种适用于智能电表功能测试的软件平台,利用分层设计思路,将智能电表的功能测试任务分解为测试方案后,采用可重用的带有属性和方法的测试元件组合成测试用例,通过测试方案的元素编辑,实现满足智能电表功能测试的开放式软件平台架构,由此解决了功能测试的自动化程度低、灵活性差的问题。

1 智能电表功能

随着微电子技术的发展,智能电表不仅实现了系统引导层、系统驱动层、系统应用层的分层设计[2],表计功能的模块化设计也已成为主流设计方法。尽管国际市场客户的需求在细节上有差异,但智能电表的总体框架变化不大,尤其是国内市场在国网、南网的统一招标管理下,智能电表的需求更加明确且功能定义清晰,技术方案基本固化,因此,智能电表的总体功能框图基本如图1 所示。

2 功能测试平台

功能验证测试平台整体框架采用分层设计,包括任务层、方案层、用例层、元件层、属性/方法层等,实现用可视化的测试方案向目标结果测试执行转化。每层的内部元素采用面向对象的方式定义,平台框架结构如图2 所示。

其中,测试元件是系统的基本组成元素,构成了整个测试平台的基础。

(1)元件层是由众多的元件组成的数据库,每个元件除了名称外,还包含类、属性和动作等特性,这些特性采用标准定义的接口封装成动态库,系统自动引用由用户导入的动态库从而实现测试元件库的持续丰富;

(2)用例层是由各种测试用例组成的数据库,每个用例除了名称外,还包含类别、功能描述等特性,将元件库导入系统后,用户从元件库中选取元件,按照测试流程的逻辑设计测试用例,每个测试用例完成一个功能测试;

(3)方案层是由针对各种功能的测试方案组成的数据库,每个方案除了名称外,还包含测试目的、测试需求分析、测试策略(可选)、测试说明等特性,将用例库导入系统后,用户按照测试需求从用例库中选取用例组成测试方案,每个测试方案完成一个功能模块的测试;

图1:智能电表功能框图

(4)任务层则由用户根据产品测试需求,从方案库中选取测试方案,覆盖产品测试的所有功能组件,并根据实际测试对象的提供情况选择实物测试还是虚拟测试,输出分项和总的测试结论,导出pdf、html 等格式的测试报告。

3 库的设计

智能电表的功能在持续扩展,因此本系统在对元件属性、元件方法、测试元件、测试用例、测试方案等进行设计时,均以库的形式进行保存和管理,并将元件设计为动态链接库方式,通过反射加载技术将动态链接库中类、属性和方法识别出来,保存到系统数据库中,从而实现了测试元件、测试用例、测试方案等以动态持续增加的软件生态方式发展。

图2:测试系统软件平台框架图

图3:用例编辑和执行的元件调用关系图

图4:测试任务分解流程图

用户通过系统界面编辑各元件的属性值或调用其中的方法,这些操作将与用例名称关联后保存到用例数据库中。编辑用例时,系统自动调出被选中元件的类、属性和方法,通过给属性赋予不同的值,使元件获得不同的属性,通过在用例中选择元件的不同方法,使元件在用例的不同阶段完成不同的功能,从而满足各个测试步骤的需求。

执行用例时,系统根据测试用例识别所需调用的元件,并自动调用用例数据库中配置的方法,这些方法则使用用例数据库中配置的属性值来完成元件内部参数的初始化,执行的结果数据输出到用例中配置的公共变量,由系统进行统一处理,用户根据功能需求和经验积累灵活地对测试用例进行各种排列组合完成测试任务。

用例编辑和执行的元件调用关系图如图3 所示。

4 系统实现

利用电能表功能验证测试平台可以对现有智能电能表进行测试,测试对象可以是真实的电能表,也可以是PC 端虚拟的模拟表[3]。首先根据测试要求将测试任务按照方案、用例、元件等逐层分解,分解流程图如图4 所示。利用多线程技术模拟多台电能表,分别执行不同的测试方案;利用串口通讯通道,控制电能表标准源,完成台体升源、降源、角度控制、幅值调整、周期控制等各种参数的组合,模拟各种事件的产生机制,并收集事件记录[4];以功能模块为测试单元进行系统验证,共创建了42 个测试元件,由此组合成112个测试用例,完成了走字验证、跳合闸管理、固件升级、结算曲线等4 个测试方案的完整测试,验证了测试平台的有效性。

5 结束语

文中提出的功能验证测试平台设计,是一个开放式的测试开发和应用平台,通过分层和面向对象设计方法,实现了将测试任务分解到测试元件的图形化过程和将设计方案从思路概念转变为实际测试结果的全部功能;通过对测试元件、测试用例、测试方案等采用数据库管理方式,为测试经验的积累和沉淀提供了容器;软件测试平台和测试方案库、测试用例库、测试元件库既紧密联系又相互独立,每个库的管理和发展不受软件测试平台的制约;特别地,将元件库、用例库、方案库等根据各行业的特点,生成行业专用库,可实现任意行业的产品功能测试,对功能测试平台的搭建和促进行业产品快速发展具有重要意义。

猜你喜欢

功能测试测试用例用例
某内花键等速传动轴八功能测试夹具设计
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于SmartUnit的安全通信系统单元测试用例自动生成
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
基于混合遗传算法的回归测试用例集最小化研究
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究