智慧管网自动化测试系统设计

2018-10-24 07:46周灵敏
电子设计工程 2018年20期
关键词:关键字测试用例手工

周灵敏,张 弛

(1.江西航天鄱湖云科技有限公司江西南昌330096;2.南京理工大学江苏南京210094)

智慧管网,即针对城市地下管网的数字化、信息化、智能化管理需求,建成以云计算为基础,以数据中心为核心,以政府部门和行业用户为节点,最终实现管线数据管理、运行监测、动态更新、综合应用,对外服务发布及业务审批管理的一体化管理[1]。

因为智慧管网产品的庞大和复杂性,使得开发和质量管理的成本不断的提升。其中,软件测试在质量保证中占有极其重要的地位[2-3],是保证软件可靠性的一个关键环节[4]。在智慧管网产品中,其版本更新迭代速度快,使用纯粹的手工测试效率低、重复性高且容易产生测试疲劳,造成测试成本高、测试质量达不到理想状态的现象[5]。

除此之外,智慧管网产品中的多数信息化类功能点的正确性都可以使用机器自动判断,引入自动化测试可以很好地代替手工测试[6-7]。这时候,探索并设计一个适用于智慧管网的自动化测试系统用来提高测试效率,降低测试成本[8]就显得非常必要。

1 智慧管网自动化测试需求分析

智慧管网产品由10个子系统和一个APP组成,而数据管理(包括数据查询、数据统计、数据编辑等)、设备管理、地图操作、人员管理等信息化类的功能模块在10个子系统中都会以不同的程度体现出来。而数据管理、设备管理、人员管理等功能模块的手工测试用例都比较容易转换为自动化测试用例,不同子系统间的不断重复更是证明了智慧管网产品自动化测试的可行性。

本文以智慧管网之管线应用综合子系统的数据查询模块为例,它共包括9个子模块,具体的测试需求概述如表1所示。

表1 数据查询模块测试需求概述

2 智慧管网自动化测试方案设计

对比手工测试流程[9],智慧管网的自动化测试人员在制定自动化测试计划和分析自动化测试需求后,也需要设计编写自动化测试用例,然后在部署好的自动化测试环境中运行相关用例,并对测试结果进行记录、追踪和分析。

文中基于selenium[10-11]和关键字驱动思想[12-13],采用B/S架构[14],探索设计了如图1的自动化测试系统[15-16]。智慧管网的自动化测试人员根据测试需求设计好自动化测试用例,并在自动化测试系统的Web页面上编辑相关测试对象和测试脚本,形成测试用例库;自动化测试系统根据测试人员的选择执行测试用例;测试用例执行结束后,自动化测试系统展现测试报告和详细的测试日志。

图1 自动化测试系统架构

要实现上述的自动化测试系统,需要解决自动化测试脚本设计、关键字方法库设计、测试报告与测试日志的设计这3个关键问题,具体的设计思路可以参考下文的介绍。

3 智慧管网自动化测试关键技术

3.1 关键字方法库设计

关键字方法库主要是使用selenium API对智慧管网的Web界面元素所持有的事件进行基本封装。这样保证智慧管网的自动化测试系统中只有测试对象和关键字方法库相关联,更高层只需要关心智慧管网产品测试的功能点和业务逻辑。针对智慧管网的产品特点,本文设计的关键字方法库除了需要封装常用的点击(click)、输入(input)、下拉选择(select)、获取文本(getText)等关键字方法,还需要封装智慧管网产品中针对地图操作的相关关键字方法,如对地图进行放大(enlarge)、缩小(toScale)、平移(move)、选点(mapClick)等,形成一个具有智慧管网特色的关键字方法库。

3.2 自动化测试脚本设计

表2为“根据管线编号进行查询”功能点的手工测试用例,根据分析得知,如果想把本条测试用例转换为自动化测试用例,不仅需要把UI测试对象(包括管线编号输入框、图层类别输入框、管线图层输入框、缓冲范围输入框、查询按钮输入框、查询结果列表等)单独获取出来,还需要输入测试数据(操作值和预期结果)以及操作类型(即关键字input、select、click等)。因此,本文根据公司的手工测试用例的设计字段以及关键字驱动的相关思想,对智慧管网的自动化测试脚本字段设计如表3所示。

表2 管线编号查询手工测试用例

表3 智慧管网自动化测试脚本字段设计表

3.3 测试报告与测试日志的设计

测试报告和测试日志的设计都是为了更好的分析智慧管网的自动化测试用例执行结果。在执行智慧管网的自动化测试用例时,本文设计的自动化测试系统便会同步启动测试日志的记录功能。当自动化测试用例执行结束时,会出一份包含该次执行结果的概要信息的测试报告,包括总用例数、执行成功用例数、执行失败用例数、执行时长等信息。而当智慧管网的自动化测试人员想要更具体分析测试用例执行失败的原因,可以根据Log4j记录的详细测试日志进一步的定位自动化测试用例执行失败的原因。

4 智慧管网自动化测试应用分析

根据上述的测试需求分析、自动化测试方案设计,我们针对智慧管网之管线应用综合子系统的数据查询模块,共设计自动化测试用例297个。在测试用例执行结束后,我们简单的比对了自动化测试和手工测试执行过程中的各项数据,其中各测试阶段所花费的时间统计和效率分析[17]比对分别如表4和表5所示。

表4 测试用时统计

表5 测试收益率比对

5 结束语

文中针对智慧城管产品的当前需求提出了自动化测试方案[18]并设计了相应的自动化测试系统,通过智慧管网之管线应用综合子系统的数据查询模块的应用示例[19],充分证明了该自动化测试方案可以提高智慧管网产品的测试效率和测试覆盖率。今后,我们还可以进一步的完善关键字方法库、改善该自动化测试系统的性能,将该自动化测试系统应用到其他相似的产品当中。

猜你喜欢
关键字测试用例手工
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
基于SmartUnit的安全通信系统单元测试用例自动生成
成功避开“关键字”
做手工
基于混合遗传算法的回归测试用例集最小化研究
超萌的羊毛毡手工
手工DIY
基于依赖结构的测试用例优先级技术
软件回归测试用例选取方法研究
智能垃圾箱