敏捷测试价值观、方法和实践读书笔记(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

目录
相关文章
|
1天前
|
机器学习/深度学习 人工智能 测试技术
软件测试中的自动化测试实践与挑战
本文深入探讨了软件测试领域中的自动化测试,从基本概念到实际应用案例,揭示了自动化测试在提升软件开发效率和质量中的关键作用。同时,文章也分析了在实施自动化测试过程中面临的主要挑战,并提出了相应的解决策略。
12 5
|
2天前
|
Ubuntu jenkins 测试技术
软件测试中的自动化与持续集成实践
【9月更文挑战第15天】在软件开发的快节奏世界中,自动化测试和持续集成(CI)已成为确保质量和效率的关键策略。本文旨在揭示如何通过实施自动化测试框架和CI流程来优化开发周期,减少人为错误,并加快产品上市时间。我们将探讨一些实用的工具和技术,以及它们如何帮助团队实现更流畅、更可靠的软件发布。
|
3天前
|
监控 jenkins 测试技术
软件测试中的自动化测试策略与实践
本文将深入探讨自动化测试在软件开发中的重要性及其实施策略。我们将从自动化测试的基本概念入手,分析其在提高软件质量、缩短开发周期和降低维护成本方面的优势。通过具体案例,展示如何有效地规划和执行自动化测试,以及如何评估其效果。
13 1
|
4天前
|
Devops jenkins 测试技术
敏捷测试价值观、方法和实践读书笔记(10)
本文介绍了敏捷测试的延伸实践,重点讨论了持续集成(CI)和持续部署(CD)的概念与实践方法。持续集成强调频繁提交代码至主干并自动化构建测试,确保快速反馈和高质量代码。持续部署则进一步实现自动化部署,通过蓝绿部署、金丝雀发布等方式提升软件交付效率。此外,文章还探讨了持续反馈机制,如A/B测试和混沌工程,以及DevOps文化下的测试策略,强调测试在整个开发流程中的重要性。
11 0
敏捷测试价值观、方法和实践读书笔记(10)
|
4天前
|
XML 存储 API
敏捷测试价值观、方法和实践读书笔记(8)
本文介绍了API的基础知识,区分了Web Service和Web API的概念,详细阐述了Web Service中的SOAP服务和REST服务的特点及区别。同时,文章还探讨了如何在项目中进行API测试,包括API测试的类型和实施阶段,强调了API在现代软件开发中的重要性和优势。
6 0
敏捷测试价值观、方法和实践读书笔记(8)
|
1天前
|
敏捷开发 人工智能 测试技术
提升软件质量的关键——高效软件测试策略与实践
在软件开发过程中,测试是一个至关重要的环节。它不仅决定了产品的可靠性和用户体验,还直接影响到企业的声誉和市场竞争力。本文将详细探讨如何通过科学的测试策略和方法,确保软件质量达到高标准的要求。从测试流程的设计、自动化测试工具的应用,到持续集成和持续部署的实践,我们将全面解析如何在软件开发中实施有效的测试,以降低错误率,缩短上市时间,并提供优质的软件产品。
13 0
|
1天前
|
敏捷开发 测试技术 UED
软件测试中的探索性测试方法
在软件开发过程中,测试是确保产品质量的重要环节。本文将探讨一种常被忽视但极其重要的测试方法——探索性测试。通过分析其定义、优势及实际应用案例,揭示如何更有效地发现软件缺陷,提升软件质量。
6 0
|
3天前
|
测试技术 持续交付
软件测试中的自动化测试实践与探索
在软件开发生命周期中,测试阶段是确保产品质量和稳定性的关键环节。随着技术的快速发展,自动化测试逐渐成为提升测试效率和覆盖率的重要手段。本文将探讨自动化测试的基本概念、工具选择、实施策略以及面临的挑战,旨在为读者提供关于如何在项目中有效应用自动化测试的指导性见解。
8 0
|
4天前
|
测试技术 UED 开发者
《敏捷测试价值观、方法与价值观》读书笔记(9)
本章节聚焦于非功能性测试,尤其深入探讨了可用性测试的重要性和实施方法。首先,阐述了可用性原则如简洁设计、一致性及高效性等,并强调用户而非开发者才是评判应用易用性的关键。接着介绍了可用性测试的不同技术和环境需求,包括卡片分类、结构化评估等方法,并讨论了测试实验室的具体配置。此外,详细说明了测试过程中的计划、执行、分析阶段,涵盖了从测试目标设定到测试结果优化的全流程。同时,还提供了测试参与者招募标准、测试材料准备及执行过程中注意事项的具体示例。最后,指导如何整合与分类测试结果,以及生成可用性测试报告的方法。
7 0
|
5天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
30 7
Jmeter实现WebSocket协议的接口测试方法