什么是软件测试中的工作流测试?举例

⚡ 智能摘要

工作流测试确认应用程序内的每个步骤序列仍然反映其构建时所针对的业务流程,检查从第一个操作到最​​终结果的每个阶段、交接和依赖关系。

  • 🔄 定义: 工作流程是指一系列任务,这些任务经过多个阶段最终产生一个预期结果。
  • 🏢 业务契合度: 每个测试序列都必须与业务需求文档中描述的流程相符。
  • 🧩 范围: 每次构建都同时利用集成测试和系统测试来保证测试覆盖率。
  • 📅 四个阶段: 初始阶段、完善阶段、构建阶段和过渡阶段分别有不同的测试重点。
  • 👥 角色: 测试工程师、组件工程师、集成测试人员和系统测试人员共同承担这项工作。
  • ???? 边界: 端到端测试涵盖整个系统,而工作流测试则遵循单个业务流程。
  • 🛠️ 做法: 优先考虑对收入至关重要的流程,使用真实数据,并在流程发生变化时重新测试。

通过业务流程步骤、角色和示例来解释工作流测试。

什么是工作流测试?

工作流程测试 工作流测试是一种软件测试类型,它检查每个软件工作流是否准确反映了给定的业务流程。工作流是一系列产生预期结果的任务,通常包含多个阶段或步骤。对于任何业务流程,对这些顺序步骤的测试都称为工作流测试。

关键的区别在于范围。 测试用例 工作流测试询问单个函数是否返回正确答案。而工作流测试则询问按照真实用户操作顺序执行的十个函数,是否仍然能够产生业务预期的结果。因此,工作流测试属于流程导向型测试的范畴。 软件测试类型 而不是采用单元级技术进行目录编制。

工作流测试示例

例如,验证该系统是否可以安装在用户的平台上,以及它是否能够正确运行。

一个更丰富的例子是线上订单。顾客将商品添加到购物车,使用折扣码,选择配送方式,付款,并收到确认邮件,同时仓库收到拣货指令。这些步骤单独来看可能都成功,但串联起来却可能失败:折扣码可能在付款环节失效,或者仓库的拣货指令可能永远无法从队列中发出。

工作流程测试分阶段进行。以下是工作流程测试的执行步骤。

  • 初始阶段该阶段包括初步测试计划和原型测试。
  • 细化阶段此阶段包括建立测试架构基线。
  • 施工阶段此阶段包括对每次构建进行大量测试。
  • 过渡阶段此阶段包括 回归测试 并重新测试修复方案。

如何执行工作流测试

上述阶段模型描述了工作发生的先后顺序。下面的步骤序列描述了测试人员在任何一个阶段中实际执行的操作。

  1. 绘制业务流程图。 按照业务实际运作方式绘制工作流程图,包括每个决策点、审批流程以及部门间的交接环节。通常情况下,业务分析师是绘制准确流程图的最快途径。 业务分析师 文档是用来核对地图的参考依据。
  2. 设置准入和退出标准。 记录系统在工作流开始前必须达到的状态,以及工作流完成时的状态。如果缺少这两项,测试人员对测试是否通过的判断就会出现分歧。
  3. 设计测试用例。 工作流程的每个路径对应一个案例,而不是每个屏幕对应一个案例。给每个步骤编号,说明每个步骤的预期结果,并为每个案例分配一个唯一标识符,以便识别缺陷。 trac回到正轨。
  4. 准备真实的测试数据。 与其使用虚构的数值,不如重复使用匿名化的生产数据记录。折扣码、税收规则和地址格式通常是合成数据掩盖真实缺陷的地方。
  5. 首先运行主路径。 在故意破坏任何环节之前,务必确认工作流程能够完整无误地完成。如果此处出现故障,则后续所有负面结果都将无效。
  6. 故意打破链条。 中途取消、在决策点提交无效值、会话超时以及拒绝批准。真正棘手的缺陷存在于这些中断的路径中,而不是主要路径中。
  7. 报告问题,修复问题,然后重新测试。 将每个缺陷记录到产生该缺陷的步骤中,然后在修复后重新运行整个工作流程。修复后的步骤通常会将故障转移到流程链的下一个阶段。

每次发布都会重复的稳定工作流程最适合自动化,因为每次运行的步骤都相同,脚本只需几个周期就能收回成本。

谁将执行工作流测试?

工作流程测试是一项协作工作,因为没有哪个角色能够看到整个流程。这项工作由四个角色共同承担,每个角色都有各自的职责。

  • 测试工程师
    • 规划测试目标和时间表
    • 定义测试用例和程序
    • 评估测试结果
  • 元件工程师
    • 测试组件的开发
    • 自动化一些测试程序
  • 集成测试员
  • 系统测试员

工作流程中需要测试的内容

软件工作流程记录在业务需求文档中,该文档是测试覆盖率的权威来源。工作流程测试也将包含系统测试和集成测试的部分内容。

对工作流程进行全面检查,不仅仅要关注用户看到的屏幕。

  • 序列: 这些步骤必须按照文档规定的顺序执行,不能跳过任何步骤,也不能随意重复执行。
  • 数据交接: 在流程早期输入的值会完整地保留到最后一步以及任何下游系统。
  • 角色和权限: 每个步骤只有获得授权的角色才能执行。
  • 中断的路径: 取消、超时、拒绝和重试都会使工作流程处于特定状态。
  • 伪像: 工作流测试模型涵盖测试用例、测试程序、测试组件和测试子系统,因此需要依次验证其中的每一部分。
  • 通知: 电子邮件、警报和队列消息会在正确的步骤中以正确的内容触发一次。

工作流程测试、端到端测试和系统测试

这三种技术之间存在诸多重叠之处,容易混淆,但它们回答的问题却各不相同。下表列出了它们的界限。

方面 工作流程测试 端到端测试 系统测试
问题已解答 该软件是否与业务流程相匹配? 整个流程是否在所有连接的系统中都能正常运行? 组装好的系统是否满足要求?
覆盖单位 一个业务流程,逐步进行 一个用户旅程,从前端到后端 完整的应用程序构建
主要参考文献 业务需求文档 用户旅程图 系统需求规范
典型业主 测试工程师(需业务分析师参与) 自动化或质量保证工程师 系统测试员

在实践中,工作流程测试通常是规范和 端到端测试 由……构成,而 系统测试 提供工作流运行所依赖的稳定版本。

最佳实践和常见挑战

从工作流程测试中获得价值的团队往往会遵循相同的几个习惯。

  • 优先处理那些会带来收入或监管风险的工作流程,而不是那些罕见的工作流程。
  • 用简洁明了的语言描述每个步骤和预期结果。
  • 保持可重复使用、真实的测试数据集,以便不同环境下的测试结果具有可比性。
  • 在每个决策点,分别使用有效输入和无效输入测试每个工作流程。
  • 一旦底层业务流程发生变化,立即更新测试用例。

这些反复出现的障碍同样是可以预见的。

  • 未记录的流程: 工作流程存在于人们的脑海中,因此测试人员是在验证某个假设。
  • 执行时间长: 涉及审批的工作流程可能需要数小时,这限制了手动运行的频率。
  • 环境漂移: 产业链下游系统存在缺陷或老化,缺陷只会在生产过程中显现出来。
  • 脆弱的自动化: 与屏幕布局相关的脚本会在界面发生变化时中断,即使进程没有发生变化。
  • 数据冲突: 并行运行会消耗相同的记录,从而产生看起来像产品缺陷的故障。

常见问题

它具有功能性。该技术判断的是序列是否产生了指定的业务结果,而不是其速度或可靠性如何——这些问题属于性能和可靠性范畴。 恢复测试.

人工智能模型会读取需求文档,并为每条路径提出一个方案,包括团队通常会忽略的中断分支。输出结果仍需审核,因为模型无法预知哪些路径会带来真正的业务风险。

Copilot 和类似的智能助手可以根据编写好的工作流程快速生成页面对象、步骤定义和断言。它们节省了大量时间。ping 与其思考:排序、测试数据和合格运行的定义仍然是测试人员的责任。

首先是业务需求文档,然后是流程图和任何审批矩阵。 Trac仅仅写出一个用户故事是不够的,因为一个故事很少能描述完整的步骤链。

构建完成后,系统才会集成并稳定运行,这样故障就会指向整个流程,而不是连接不畅的组件。过早运行这些检查会产生干扰信息;而只在最后运行则没有时间修复发现的问题。

受影响的案例会在下次运行前重写,而不是被弃用。审批步骤的更改或新的决策点通常会影响多个下游案例,因此需要重新遍历整个路径,而不是只在一个地方进行修补。

已覆盖路径与已记录路径的对比、每个工作流程中发现的缺陷数量,以及自动化运行的关键业务流程所占的比例。原始测试用例数量意义不大,因为一个工作流程可能包含数十个琐碎的测试用例。

线程测试 工作流测试遵循贯穿集成组件的一条功能主线,因此它是技术上的对应物。工作流测试则用业务术语阐述了同样的概念。 trac使用文档化的流程而不是代码路径。

总结一下这篇文章: