敏捷测试价值观、方法和实践读书笔记(6)

简介: 验收测试驱动开发(ATDD)强调在开发前定义验收标准,并通过自动化测试确保用户价值得到满足。验收测试关注用户需求是否实现,而非代码细节。ATDD涉及用户、产品负责人、开发人员及测试人员,通过讨论、开发和交付三个阶段,确保产品符合预期。此方法有助于团队更好地理解和实现用户需求。

6.2 ATDD

一定的自动化测试和“实现未动,测试先行”的策略

验收测试驱动开发(Acceptance Test Driven Development ,ATDD)

什么是验收测试

验收标准(Acceptance Criteria)验收标准->验收测试(Acceptance Tests)

单元测试相似,验收测试通常具有两种结果,即测试通过或测试失败。

例子:

  • 作为一名信用卡持有人
  • 我想要能够从手机查询当月信用卡账单
  • 以便了解我的还款日期和还款数额

验收标准:

  • 信用卡持有人可以通过 App 查询账单
  • 信用卡持有人可以通过手机短信查询账单
  • 查询账单需要验证用户身份
  • 查询账单要看到还款日期
  • 查询账单要看到还款数额

用户故事 1:

  • 作为一名信用卡持有人
  • 我想要通过手机APP 查询当月信用卡账单
  • 以便了解我的还款日期和还款数额

用户故事 2:

  • 作为一名信用卡持有人
  • 我想要通过手机短信查询当月信用卡账单
  • 以便了解我的还款日期和还款数额

(1)短信发送场景。

① 用户使用绑定的手机号码查询。

用户(用户名为A)已在2020年2月20日有200元信用卡账单。

用户使用绑定的号码18588888888发送短信“bill”给账单中心号码(85555)。

回复的短信内容为“尊敬的信用卡用户A:您好,您本月(2020年2月)账单总额为 200.00 元,最后还款日期为3月15日。谢谢”。

② 用户使用未绑定的手机号码查询。

用户(用户名为A)已在2020年2月20日有200 元信用卡账单。

用户使用绑定的号码19588888888发送短信“bill”给账单中心号码(85555)。

回复的短信内容为“尊敬的信用卡用户 A:您好,您发送的短信号码并未绑定。谢谢”。

(2)APP 发送场景。

① 用户使用绑定的手机号码查询。

用户(用户名为A)已在2020年2月20 日有 200 元信用卡账单。

用户使用绑定的号码18588888888在App注册账户。

回复的短信内容为“尊敬的信用卡用户A:您好,您本月(2020年2月)账单总额为 200.00 元,最后还款日期为3月15日。谢谢”

② 用户使用未绑定的手机号码查询。

用户(用户名为A)已在2020年2月20日有200元信用卡账单。

用户使用绑定的号码19588888888发送短信“bill”给账单中心号码(85555)。

回复的短信内容为“尊敬的信用卡用户A:您好,您发送的短信号码并未绑定。谢谢”。

验收测试和单元测试的关系

单元测试->开发人员的角度

验收测试->用户价值是否被满足

验收测试“三个伙伴”(Three Amigos):分别代表了

  • 用户(我们要解决什么问题?)
  • 开发人员(我们如何解决这个问题?)
  • 测试人员(关于解决这问题会发生什么?)

3种不同的角度。

包含验收测试的用户故事可被看作系统功能描述的唯一文档,这是一份编写给所有人的文档,新成员加入时,就可以通过用户故事很快理解项目的建构背景。

ATDD的实践

scrum开发团队为每条验收标准编写可以进行自司测试的测试用例

首先,ATDD不是一种测试方法论,而是一种开发方法论。

其次,验收测试关注的是用户价值是否被满足,而单元测试关注的是代码的实现是否正确。所以,

  • 基于单元测试的 TDD只涉及开发人员,偶尔需要用户的支持
  • ATDD涉及用户、产品负责人、开发人员、测试人员

ATDD侧重测试业务用户功能,而TDD在传统上用于运行或自动化单元测试。

TDD是 ATDD 为了完成功能测试而模仿的先锋。

编写“刚好够用”的代码

ATDD的三个阶段

(1)讨论阶段。

  • 团队针对需求和实现方案进行讨论。
  • 大家对需求和实现方案达成理解上的共识。
  • 通过明确验收测试的方式确认实现方案。
  • 验收测试方式将被自动化。

(2)开发阶段。

  • 以明确具体的验收测试方式指导开发工作,进一步把验收测试细化为单元测试,并且采用 TDD 的方式进行开发。
  • 验收测试自动化和特性的开发可以并行开展。
  • 团队成员均对验收测试的自动化负责,而不只是测试人员。
  • 最终,我们的产品实现能让所有的自动化测试通过。

(3)交付阶段。

  • 要保证之前迭代的所有自动化验收测试能在新交付上通过。
  • 为所有利益相关方演示新特性。
  • 收集反馈,讨论改进。

在代码库中存放自动化验收测试

验收代码设计一个代码库

与代码放在一起

专门建立一个文件夹

自动化验收测试的重构

自动化测试用例需要重构

采用Robot Framework实现自动化验收测试

本人不建议使用Robot Framework非编程工具实现自动化,建议使用selenium Cypress或playwright

目录
相关文章
|
11月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
11月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
12月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
677 1
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
3495 8
|
12月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
864 6
|
12月前
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
人工智能 自然语言处理 测试技术
AI测试平台的用例管理实践:写得清晰,管得高效,执行更智能
在测试过程中,用例分散、步骤模糊、回归测试效率低等问题常困扰团队。霍格沃兹测试开发学社推出的AI测试平台,打通“用例编写—集中管理—智能执行”全流程,提升测试效率与覆盖率。平台支持标准化用例编写、统一管理操作及智能执行,助力测试团队高效协作,释放更多精力优化测试策略。目前平台已开放内测,欢迎试用体验!
|
人工智能 资源调度 jenkins
精准化回归测试:大厂实践与技术落地解析
在高频迭代时代,全量回归测试成本高、效率低,常导致关键 bug 漏测。精准化测试通过代码变更影响分析,智能筛选高价值用例,显著提升测试效率与缺陷捕获率,实现降本增效。已被阿里、京东、腾讯等大厂成功落地,成为质量保障的新趋势。
|
搜索推荐 Devops 测试技术
避免无效回归!基于MCP协议的精准测试影响分析实践
本文揭示传统测试的"孤岛困境",提出MCP(Model Context Protocol)测试新范式,通过模型抽象业务、上下文感知环境和协议规范协作,实现从机械执行到智能测试的转变。剖析MCP如何颠覆测试流程,展示典型应用场景,并提供团队落地实践路径,助力测试工程师把握质量效率革命的新机遇。
|
人工智能 缓存 自然语言处理
大模型性能测试完全指南:从原理到实践
本文介绍了大模型性能测试的核心价值与方法,涵盖流式响应机制、PD分离架构、五大关键指标(如首Token延迟、吐字率等),并通过实战演示如何使用Locust进行压力测试。同时探讨了多模态测试的挑战与优化方向,帮助测试工程师成长为AI系统性能的“诊断专家”。