提示:点击上方”我们的开心”↑关注我们

文/黄翔 王冲

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

本文系统地介绍了图模型测试技术的相关背景、实施方案和应用效果,并基于图模型构建与校验、自动化脚本生成与执行、测试报告展示与评价等技术框架进行剖析,论证了图模型在开展业务场景建模、测试设计与执行、测试过程评估等方面的优势,有助于实现测试全生命周期的提质增效和测试成果的度量评价。

一| 研究背景

图模型源于业务流程图,是一种由点和边组成的用以描述系统的图形,一个图由顶点(Vertex)和它们之间的有向边(Edge)组成,可以通过使用不同的测试覆盖策略和算法最高程度地覆盖业务需求。

在图模型中,顶点代表了业务流程中的中间步骤,表示一次测试验证;有向边代表了系统之间的状态转移,表示一次测试动作。图模型测试(Graphic Model Testing)技术基于构建的图模型,制定行为和行为之间的关系以及行为和系统的关系(有限状态机),然后根据被测系统的状态、设置的限制条件和策略来生成测试用例。

二| 实施方案

01

图模型构建

在基于需求的建模过程中,图模型根据被测系统的状态、设置相应的限制条件和策略来生成测试用例。作为一种开源的图模型测试工具,GraphWalker支持命令行和窗口化的形式完成图模型的搭建工作,但需满足一定的语法规则。图1展现了运用GraphWalker Studio进行图模型构建的相关界面要素。

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

图1 GraphWalker Studio界面要素

02

图模型校验

在当前测试前移的背景下,测试团队经常需要对需求文档进行评审并给出建设性意见。常规的方法是基于业务逻辑对业务流程进行梳理,凭借经验判断业务流程是否合理。图模型测试赋予业务流程图技术属性,可以从图遍历的角度对模型连通性进行验证,判断是否存在死循环或是不合理的业务流程。

通过以命令行的形式调用GraphWalker组件并执行相应命令,可以在终端输出模型图是否正确的提示,进而对业务逻辑和图模型本身的语法规则进行正确性校验。

03

自动化脚本生成

对于校验成功的图模型,可以基于设定的遍历方法进行图模型上的随机游走用例分析图,并将结果保存在日志文件。实际上,图模型上的每一次遍历都对应一条流程级测试用例。通过打开图模型的运行日志,可以基于各激励事件生成自动化测试脚本。需要指出的是,图模型生成自动化脚本需要依赖命令行JSON处理工具jq。这是一种轻量级的JSON解析器,可以使用它来进行切片、过滤、映射和转换结构化数据,进而对GraphWalker生成的测试用例进行筛选。

图模型遍历之后生成的自动化测试脚本遵循图模型名称_渠道端命名的方式,例如ODP_web.py。该自动化测试脚本表示是针对构建的ODP图模型按照find_element_by_xpath(”)的方式生成基于web端的自动化测试脚本框架,对于Android或iOS端的自动化案例,一般基于find_element_by_id(”)的方式或find_element_by_ios_predicate(”)的元素定位模式生成脚本。

04

自动化案例执行

作为一种贯穿需求分析到系统测试的全流程测试方案,图模型测试支持将业务流程以自动化案例的形式进行执行,进而模拟测试过程中可能遇到的各种业务场景。然而,图模型遍历之后生成的测试脚本仅仅包含符合Python程序规范的各种事件激励接口以及装饰器函数,要想真正驱动自动化脚本的执行,还需按照Selenium规则对脚本进行完善。

脚本准备完毕之后用例分析图,图模型基于遍历日志进行测试。通过依次读取日志文件中e_开头的事件激励,调用自动化测试脚本中的相应函数开展测试执行。基于传递的参数,触发浏览器驱动依次执行相应的页面操作。

05

测试报告展示

图模型测试基于Pytest框架完成测试并基于Pytest-html插件生成测试报告。通过对测试失败的案例自动截图,可以基于html报告了解出现错误的测试步骤,方便进行代码调试和缺陷定位。

Pytest-html插件生成.png格式的测试截图并内嵌在html报告中,这对于以headless模式运行的UI自动化测试尤为有效。由于headless模式下界面的操作不能进行直观地展现,html报告中内嵌的测试截图便提供了最为便捷的缺陷跟踪方式。

三| 应用效果

图模型测试基于擎云平台开展接口自动化测试,通过复用擎云平台接口案例的执行方式,以事件驱动的形式触发流程级接口案例的执行。项目组通过构建图模型,并基于某项目开展了接口自动化的测试实践(图2)。

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

图2 某交易收费与明细查询图模型

图模型测试由于增加了事件的随机性,可以涵盖更多的异常事件场景,从而发现更多的隐藏缺陷。在测试执行过程中,通过将擎云平台的测试报告内嵌到Pytest-html报告,可以直观地对测试过程中遇到的问题进行分析。当测试执行通过率不是100%时(图3),图模型将案例执行情况以图片的形式进行记录。通过分析案例失败原因,发现为多次收费时出现账户余额不足,导致对公收费模型分支执行失败。

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

图3 接口自动化测试报告

作为企业级的自动化测试平台,擎云平台支持将接口测试案例以测试资产的形式积累到资产库中,通过手动拖动案例的方式实现测试案例执行顺序的调整。图模型测试整合了擎云平台的优势,将接口案例以事件驱动的形式集成到图模型的分支路径中,实现了测试案例的自动化重复执行和随机化路径探索。

四 | 总结与展望

作为一种构思新颖的测试方法,图模型测试从模型角度帮助业务分析师分析业务需求,量化产出结果。在基于需求的建模过程中,图模型根据被测系统的状态设置相应的限制条件和策略来生成测试用例。与传统的基于图的测试方法相比,图模型测试技术率先实现了“图的自动化”,将更多地精力放在需求分析和测试设计环节,而将测试用例的生成与执行以自动化的形式呈现,有助于释放更多的测试资源,实现以手工案例编写、手工测试为主的传统测试模式向标准化、模型化的智能测试转型,完成质量守护与产品赋能的角色升级!

作者简介

黄翔,农业银行研发中心测试二部公司大客组高级专员、高级工程师,致力于基于模型的测试、算法驱动测试的探索与实践。

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

王冲,农业银行研发中心测试二部支付清算组资深专员、高级经济师,专注于测试理论、测试前移、需求精准实现等方面的研究与实践。

用例分析图-【啄木鸟】测试领域优秀实践系列13期——图模型测试技术研究与实践_80楼网赚论坛|80楼网创

往期回顾

10.

7.【啄木鸟】测试领域优秀测试实践系列05期–性能测试Jmeter脚本生成工具

6.

轮值总编:张纪峰

———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需88元,全站资源免费下载点击查看详情
站 长 微 信:chuangyedemao