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

目录
相关文章
|
25天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
43 4
|
27天前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
25天前
|
测试技术 Python
探索软件测试的深度与广度:从理论到实践
在数字化时代,软件已成为我们生活中不可或缺的一部分。随着技术的不断进步和用户需求的多样化,确保软件质量变得尤为重要。本文将深入浅出地介绍软件测试的核心概念、类型及其在软件开发生命周期中的重要性。我们将通过实际案例,展示如何实施有效的测试策略,并探讨自动化测试的未来趋势,旨在为读者提供一套完整的软件测试知识体系,帮助提升软件质量和开发效率。
|
26天前
|
测试技术 Python
探索软件测试的奥秘:从理论到实践
在软件开发的宇宙中,软件测试犹如一颗璀璨的星辰,指引着质量的方向。本文将带你穿梭于软件测试的理论与实践之间,揭示其内在的逻辑和魅力。从测试的重要性出发,我们将探讨不同类型的测试方法,并通过实际案例分析,深入理解测试用例的设计和应用。最后,我们将通过一个代码示例,展示如何将理论知识转化为实际操作,确保软件质量的同时,也提升你的测试技能。让我们一起踏上这段探索之旅,发现软件测试的无限可能。
|
29天前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
62 7
|
28天前
|
测试技术
探索软件测试的奥秘:从理论到实践
本文深入探讨了软件测试的基本概念、重要性、主要类型以及实施策略。通过分析不同测试阶段和相应的测试方法,文章旨在为读者提供一套完整的软件测试知识体系,帮助他们更好地理解和应用测试技术,确保软件产品的质量和可靠性。
55 4
|
1月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
47 2
|
24天前
|
监控 搜索推荐 测试技术
电商API的测试与用途:深度解析与实践
在电子商务蓬勃发展的今天,电商API成为连接电商平台、商家、消费者和第三方开发者的重要桥梁。本文深入探讨了电商API的核心功能,包括订单管理、商品管理、用户管理、支付管理和物流管理,并介绍了有效的测试技巧,如理解API文档、设计测试用例、搭建测试环境、自动化测试、压力测试、安全性测试等。文章还详细阐述了电商API的多样化用途,如商品信息获取、订单管理自动化、用户数据管理、库存同步、物流跟踪、支付处理、促销活动管理、评价管理、数据报告和分析、扩展平台功能及跨境电商等,旨在为开发者和电商平台提供有益的参考。
30 0
|
1月前
|
人工智能 数据管理 jenkins
探索软件测试中的自动化框架:从基础到高级实践
在当今快速发展的软件行业中,自动化测试已成为提高开发效率和保障产品质量的关键手段。本文将深入探讨软件测试自动化的各个方面,包括其重要性、主流的自动化测试框架、以及如何有效地实施自动化测试策略。我们还将通过案例分析,展示自动化测试在实际项目中的应用效果,以及面临的挑战和解决方案。无论是软件开发者还是测试工程师,了解并掌握自动化测试技术都将极大提升工作效率和产品质量。
48 0
|
12天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
57 11