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

简介: 本章节介绍敏捷测试在快速变化的软件开发环境中的重要性。传统测试方法在敏捷环境中面临时间紧迫、文档不足、频繁变更及资源短缺等挑战。敏捷测试遵循敏捷开发原则,强调测试与开发的紧密融合、团队协作及业务价值交付。其特点包括更强的协作、更短的周期、更灵活的计划及高效的自动化。相较于传统测试,敏捷测试具有加快产品上市时间、提升整体质量及简化流程降低成本的优势。

第2章 敏捷测试

1 在敏捷环境下的传统测试

在敏捷环境下传统测试面临的困境

在敏捷环境下传统测试面临的挑战

(1)时间极短

(2)文档极少

(3)变更极频繁

(4)资源极缺

2 敏捷测试的概念

敏捷测试的定义

敏捷测试是遵从敏捷软件开发原则的一种测试实践。

敏捷开发模式把测试集成到整个开发流程中,而不再把它当成一个独立的阶段,因此,测试变成了整个软件开发过程中非常重要的环节。

敏捷测试的核心内涵:

(1)敏捷测试遵从敏捷开发的原则,强调遵守

(2)测试被包含在整个开发流程中,强调融合

(3)跨职能团队,强调协作

(4)敏捷测试是为了交付业务价值,强调价值

3 敏捷测试宣言

敏捷测试宣言 Agile Testing Manifesto

测试是一个活动, 胜于测试是一个阶段。

Testing is a activity Over Testing is a phase

预防缺陷 胜于 发现缺陷。

Prevent Buss Over Finding Bugs

做测试者 胜于 做检查者。

Be a tester Over Be a checker

帮助构建最好的系统 胜于 破坏系统。

Helping wo build the BEST system Over Breaking the system

团队为质量负责 胜于 测试者为质量负责。

whole team takes responsibility for quality Over Tester is responsible for quality

测试是一个活动 胜于 测试是一个阶段

《Google 软件测试之道》中写道:“当你把开发过程和测试放到一起,将它们像在搅拌机里一样混合搅拌,直到不能区分彼此的时候,你就得到了质量。”

待办 开发 测试 完成

->

待办 处理中 审核 完成

预防缺陷 胜于 发现缺陷

做测试者 胜于 做检查者

帮助构建最好的系统胜于破坏系统

团队为质量负责胜于测试者为质量负责

4 敏捷测试的特点与价值

敏捷测试的特点

(1)更强的协作:反对:开发需要测试帮忙。开发->开发领导->测试领导->测试

(2)更短的周期

(3)更灵活的计划

(4)更高效的自动化

(5)更广泛的技能要求:T型人才

敏捷测试与传统测试差异

重要维度

传统测试

敏捷测试

测试发生的时间节点

测试发生在软件生命周期的最后阶段,在

测试发生在每次 Sprint 迭代内,以及 Sprint 的集成过程中

团队沟通

团队之间除了正式沟通,还有很多非正式沟通,软件发布上线前团队之间的沟通是正式的,很多时候以邮件为载体

团队之间除了正式沟通,还有很多非正式沟通如口头沟通

测试自动化

测试自动化是可选项

测试自动化被高度推荐。测试自动化是决定敏捷测试成功的重要因素之一

测试标准

测试以需求规格文档为准,用户真正的需求很多时候在转换成需求文档时会失真

测试以用户最终需求为准,敏捷中的行为驱动开发(BDD) 实践等就是以用户最终求为准的

测试计划的详细程度

详细的测试计划。传统模式属于“预定义”过程控制模式,需求相对晰明确

精益化的测试计划。在最初阶段,需求本身比较模糊,无法也没有必要编写详细的测试计划

测试计划的制订方式

做计划是一次性的活动,因为传统模式按阶段划分,做计划会被安排在最初阶段,后面不再进行相关的计划工作

做计划是持续性的活动,分为不同的级别:·最初阶段做粗粒度的计划·在后续的迭代中不断优化为刚好够用(Just-In-Time)的计划

测试计划制订人

测试主管计划整个团队的测试工作,一般做计划时采用“自顶向下”的方式

团队被授权并主动参与计划,一般做计划时采用“自底向上”的方式

需求的详细程度

在最初阶段就要求给出详细的需求,并且需求需要经过严格评审,不欢迎需求变更

在最初阶段允许提出粗粒度的需求,在后面的迭代阶段逐渐细化,欢迎需求变更

需求呈现的方式

标准的需求规格说明书

需求以用户故事的方式呈现

客户参与

在需求被定义后,客户只是有限地参与,只有在需求调研的时候会较多地参与

客户参与贯穿整个项目生命周期,包括每次迭代的计划会和评审会等

敏捷测试的价值

1.加快上市时间(Time-to-Market),缩短价值交付周期。

2. 质量由团队保障,提高整体产品质量。

3.化繁为简,节省成本

首先,敏捷测试不要求详细的测试计划和测试文档,也没有定义繁复冗长和缺陷管理流程。

其次,敏捷测试提倡尽早测试,更早发现缺陷。

最后,敏捷测试分小批量迭代执行。

目录
相关文章
|
8天前
|
测试技术
软件测试的艺术:探索式测试的实践与思考
在软件开发的广阔海洋中,测试是确保航船稳健行驶的关键。本文将带你领略探索式测试的魅力,一种结合创造性思维和严格方法论的测试方式。我们将一起揭开探索式测试的神秘面纱,了解其核心概念、实施步骤和带来的效益。通过实际代码示例,你将学会如何将探索式测试融入日常的软件质量保证流程中,提升测试效率与质量。
|
15天前
|
敏捷开发 人工智能 Devops
探索自动化测试的高效策略与实践###
当今软件开发生命周期中,自动化测试已成为提升效率、保障质量的关键工具。本文深入剖析了自动化测试的核心价值,探讨了一系列高效策略,包括选择合适的自动化框架、设计可维护的测试脚本、集成持续集成/持续部署(CI/CD)流程,以及有效管理和维护测试用例库。通过具体案例分析,揭示了这些策略在实际应用中的成效,为软件测试人员提供了宝贵的经验分享和实践指导。 ###
|
15天前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
15天前
|
Java 测试技术 持续交付
探索自动化测试在软件开发中的关键作用与实践
在现代软件开发流程中,自动化测试已成为提升产品质量、加速交付速度的不可或缺的一环。本文深入探讨了自动化测试的重要性,分析了其在不同阶段的应用价值,并结合实际案例阐述了如何有效实施自动化测试策略,以期为读者提供一套可操作的实践指南。
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####
|
5天前
|
敏捷开发 前端开发 Java
软件测试中的自动化测试框架选择与实践
在当今软件开发生命周期中,自动化测试已成为提升软件质量和开发效率的关键手段。本文旨在探讨自动化测试框架的选择标准及其在实际项目中的应用实践。通过对主流自动化测试框架的分析比较,结合具体案例,本文将阐述如何根据项目需求和团队特点选择合适的自动化测试工具,并分享实施过程中的经验教训。
14 1
|
15天前
|
Web App开发 敏捷开发 测试技术
探索自动化测试的奥秘:从理论到实践
【10月更文挑战第39天】在软件质量保障的战场上,自动化测试是提升效率和准确性的利器。本文将深入浅出地介绍自动化测试的基本概念、必要性以及如何实施自动化测试。我们将通过一个实际案例,展示如何利用流行的自动化测试工具Selenium进行网页测试,并分享一些实用的技巧和最佳实践。无论你是新手还是有经验的测试工程师,这篇文章都将为你提供宝贵的知识,帮助你在自动化测试的道路上更进一步。
|
15天前
|
敏捷开发 Java 测试技术
探索自动化测试:从理论到实践
【10月更文挑战第39天】在软件开发的海洋中,自动化测试是一艘能够带领团队高效航行的船只。本文将作为你的航海图,指引你理解自动化测试的核心概念,并分享一段实际的代码旅程,让你领略自动化测试的魅力和力量。准备好了吗?让我们启航!
|
20天前
|
测试技术 API Android开发
探索软件测试中的自动化框架选择与实践####
本文深入探讨了软件测试领域内,面对众多自动化测试框架时,如何依据项目特性和团队需求做出明智选择,并分享了实践中的有效策略与技巧。不同于传统摘要的概述方式,本文将直接以一段实践指南的形式,简述在选择自动化测试框架时应考虑的核心要素及推荐路径,旨在为读者提供即时可用的参考。 ####
|
25天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。