业务流程遍历测试:高效揪出隐藏Bug的秘诀!

一、引言

  在项目测试实践中,业务流程测试是把系统各个模块连通起来运行,模拟真实用户实际的工作流程,对用户需求定义的功能进行测试的过程。业务流程遍历图是由点和边组成的用以描述系统的图形,通过建立一个模型来抽象出应用程序的操作行为,然后从中派生出测试用例来验证应用程序。

  业务流程遍历测试则是基于构建的业务流程遍历图,制定行为和行为之间的关系以及行为和系统的关系(有限状态机),然后根据被测系统的状态、设置的限制条件和策略来生成测试路径,不同的生成器将生成不同的测试路径,并且它们将以不同的方式遍历模型。

  二、业务流程遍历测试简介

  2.1技术背景

  在需求分析阶段,通过对业务需求进行业务规则、业务范围、业务流程等方面的技术分析,可以输出业务流程图。通过对流程图进行一系列的剪枝与规则调整,并基于专业的建模软件,如GraphWalker,可以生成业务流程遍历图。这是一种由点和边组成的用以描述系统的图形,一个图由节点和它们之间的有向边组成。

  与传统的业务流程图相比,业务流程遍历图被赋予了更多的技术属性。业务流程图更多地从业务流程角度对需求进行解析,提炼出业务的执行步骤,但却难以直接转化为程序脚本,缺乏与自动化测试相结合的能力。在业务流程遍历图中,节点代表了业务流程中的中间步骤,表示一次测试验证;有向边代表了系统之间的状态转移,表示一次测试动作。

  2.2测试要点

  用户需求分析:

  (1)充分掌握业务知识,业务流程以及业务的数据流向。

  (2)从需求人员或者客户那里了解到各业务流程的重要程度和使用频率。

  (3)了解业务流程在系统中对应的功能,建立业务与系统的映射,为编写测试用例做好准备。

  业务流程设计:

  (1)测试数据支持多次使用,同时方便自动化工具介入。业务流程遍历测试要依赖这套数据,使得每个流程可以更有针对性地执行。

  (2)业务流程可大可小,但每一个流程都要是一个典型的业务操作,且要符合用户常用的业务操作习惯,尽量考虑用户的实际操作去编写。

  (3)业务流程测试用例不必覆盖到所有功能点,因为流程用例是功能用例的一个补充。

  (4)业务流程不被具体的模块所限制,各个模块可以交叉。用户实际的业务操作是没有界限的。

  测试用例准备:

  (1)绘制业务流程遍历图,流程图比较直观,可视化展现可以辅助测试人员更好地理解和掌握业务流程,也便于进行路径的分析。

  (2)根据业务流程的重要程度、使用频率为各流程设置好优先级。

  (3)采用场景法、随机法或其他路径生成器算法梳理出每个业务流程在系统中对应的操作步骤,形成业务流程的测试用例。这个操作步骤可能是一个业务操作集,通过分解成多个步骤对应到具体的功能测试用例,从而做到测试用例的复用。所以业务流程测试用例是将多个功能测试用例组合成一个集合,形成一个业务流。

  (4)需要平衡项目的进度、成本,不一定需要覆盖所有的路径。

  测试计划执行:

  (1)保证质量最有力的手段是预防,将业务流程遍历测试用于测试的前期,比如开发人员进行联调或者冒烟测试阶段,将优先级高的主要业务流程测试用例作为冒烟测试用例,这样可能会提高送测质量,减少测试轮次,提高编码质量。

  (2)在功能测试通过后,采用业务流程遍历测试对用户需求进行业务验收测试,通过遍历图的方法覆盖分支路径,确保测试的完备性。

  三、业务流程遍历测试指南

  3.1业务流程遍历图构建

  在基于需求的建模过程中,业务流程遍历图根据被测系统的状态、设置相应的限制条件和策略来生成测试用例。当前,开源的业务流程遍历图测试工具——GraphWalker,已支持命令行和窗口化的形式完成业务流程遍历图的构建工作。

  由于引入了守卫(Guard)和操作(Action)机制,业务流程遍历测试可以对原始的业务流程图进行路径分析,辅助测试人员分析业务需求,输出业务流程遍历图的。业务流程遍历图赋予业务流程图技术属性,可以从图遍历的角度对模型连通性进行验证,判断是否存在死循环或是不合理的业务流程。通过以命令行的形式调用GraphWalker组件并执行相应命令,可以在终端输出遍历图是否正确的提示,进而对业务逻辑和业务流程遍历测试本身的语法规则进行正确性校验。

       可以到我的个人号:atstudy-js

      这里有10W+ 热情踊跃的测试小伙伴们,一起交流行业热点、测试技术各种干货,一起共享面试经验、跳槽求职各种好用的

      欢迎加入 ↓ ↓ ↓ 

       多行业测试学习交流群,内含直播课+实战+面试资料

       AI测试、 车载测试、自动化测试、银行、金融、游戏、AIGC.

  3.2测试用例生成

  对于校验成功的业务流程遍历图,可以基于设定的遍历方法进行业务流程遍历图上的随机游走,并将结果保存在日志文件。实际上,业务流程遍历图上的每一次遍历都对应一条流程级测试用例。

  3.3测试用例执行

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

  脚本准备完毕之后,业务流程遍历测试基于遍历日志进行测试。通过依次读取日志文件中e_开头的事件激励,调用自动化测试脚本中的相应函数开展测试执行。基于传递的参数,触发浏览器驱动依次执行相应的页面操作。结束条件将决定业务流程遍历测试何时停止,可以通过逻辑或(||),或者逻辑且(&)使用多个停止条件。

  四、结语

  业务流程遍历测试技术基于构建的业务流程,制定行为和行为之间的关系以及行为和系统的关系(有限状态机),然后根据被测系统的状态、设置的限制条件和策略来生成测试用例。与业界现有的测试技术相比,业务流程遍历测试生成的测试结果具备不确定性,更有可能发现较深路径下的隐藏缺陷。依托建模工具将功能需求转换为业务流程,并使用智能引擎将这些模型转换为自动化测试脚本,广泛适应于UI测试、接口测试、APP测试等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值