玩转敏捷测试不得不知的知识【乐搏Test PRO】


伴随业务发展,越来越多的组织希望改善业务流程,让其变得更加敏捷、灵活、高效。面对如今不稳定的外部经济环境,这一理念对于组织来说将具有更多重的意义。

一、敏捷测试定义

敏捷开发的最大特点是高度迭代,有周期性,并且能够及时、持续地响应客户的频繁反馈。敏捷测试即是不断修正质量指标,正确建立测试策略,确认客户的有效需求能得以圆满实现和确保整个生产的过程安全的、及时的发布最终产品。典型的敏捷软件开发过程:

首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。敏捷测试是遵循敏捷宣言的一种测试实践:

1、强调从客户的角度,即从使用系统的用户角度,来测试系统。

2、重点关注持续迭代地测试新开发的功能,而不再强调传统测试过程中严格的测试阶段。

3、建议尽早开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。

二、敏捷测试与普通测试的区别

1.项目相当于开发与测试并行,项目整体时间较快。

2.模块提交较快,测试时较有压迫感。

3.工作任务划分清晰,工作效率较高。

4.项目规划要合理,不然测试时会出现复测的现象,加大工作量。

5.发现问题需跟紧,项目中人员都比较忙,问题很容易被遗忘。

6.耗时、或较难解决对项目影响不大的问题一般会遗留到下个阶段解决。

7.发现BUG能够很快的解决,对相关的模块的测试影响比较小。

8.版本更换比较勤,影响到测试的速度。

9.要多与开发沟通。

10.要注意版本的更新情况。

11.测试人员几乎要参加整个项目组的所有会议。

三、敏捷测试的本质

可以明确的是,敏捷测试既不是一种方法(如黑盒方法、白盒方法等),也不是一种方式(如探索式测试)。因为在敏捷测试中可以采用已有的各种方法,包括白盒方法、黑盒方法;在敏捷中也可以采用探索式测试(exploratory test),也可以采用基于脚本的测试(scripted test)。

那敏捷测试的本质是什么?敏捷测试应该是一套解决方案、一类测试操作与管理的框架、一组实践或由一定顺序的测试活动构成的特定的测试流程。就像Scrum一样,Scrum可以理解为敏捷方法的具体实现的框架、一组实践或具体的解决方案。

简单地说,敏捷测试就是顺应敏捷开发方法、力求达到质量和效率平衡的一系列的测试实践。

四、方法论上的敏捷测试

先从敏捷开发这一方法论层次来讨论什么是敏捷测试,即敏捷测试有什么具体特征,或有哪些主要实践,然后再就目前非常热的敏捷具体框架Scrum来讨论Scrum中的敏捷测试(或称为Scrum Testing)。先研究一下敏捷宣言背后所蕴含的12条原则:

1)我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

2)欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

3)经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

4)业务人员和开发人员必须相互合作,项目中的每一天都不例外。

5)激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

6)不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

7)可工作的软件是进度的首要度量标准。

8)敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

9)坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

10)以简洁为本,它是极力减少不必要工作量的艺术。

11)最好的架构、需求和设计出自自组织团队。

12)团队定期地反思如何能提高成效,并依此调整自身的举止表现。

五、敏捷测试带来的价值

1. 缩短价值交付周期:通过敏捷测试模型,契合整个敏捷开发周期,使得整个敏捷开发按照相同而快速的迭代速率和周期交付。让最终用户尽快获取到业务价值。开发团队通过提供最小化可用产品获取用户反馈,并在这个最小化可行产品上持续快速迭代,直到一个相对稳定的阶段产品。在此过程中,敏捷测试人员快速验证团队的目标,快速试错。

2. 降低软件质量风险:敏捷测试使得测试前移,测试人员尽早开始测试,与开发人员并驾齐驱,尽早的发现系统缺陷或存在的问题,降低整体系统风险敏捷测试要求测试人员尽早进入测试,与开发人员形成统一战线,尽早发现系统缺陷及其它问题,避免大量问题在项目后期才发现,形成质量风险不可控的结果。启用日构建,通过BVT进行持续测试,让每天的迭代代码都能得到验证。

3. 提高团队质量意识:质量不再仅是QA和测试人员的事,产品经理、开发人员、业务人员等全体人员都在为质量服务。敏捷测试人员以专业的能力,引导项目全体成员开展测试,编写自动化测试用例,关注自动化测试执行结果,以稳定的每次编译及测试均未发现缺陷为目标。

4. 节省项目研发成本: 敏捷测试简化了测试相关流程,没有详细测试计划和测试文档,采用持续构建、自动化部署和自动化测试,轻量级的管理模式为测试人员减少不必要的负担,节省了工作量及成本。敏捷开发偏向项目型的组织架构,测试人员与产品经理、程序经理、需求人员、开发人员等构成一个团队,采用扁平化的方式进行管理,构建一种和谐的工作氛围,共同为交付价值而努力。

5. 加速个人能力提升:测试人员不再是机械的承担某项工作,涉及到的测试工作更多,个人无论从管理、专业还是技术都会得到提升,发展为测试专家成为可能。在一个敏捷迭代周期里,一般团队规模7~8人,敏捷测试人员至少2~3人,测试工作不在是一个萝卜一个坑,每个人承担的事情种类较多,要求的知识面更广泛,个人技术栈会越来越丰满,独挡一面的能力更强。


今天的先分享到这里,每天持续更新软件测试行业趣闻、动态、技术干货,欢迎添加关注~~

扫码↓领取本文中的涉及的视频资料,以及30G软件测试学习大礼包,共计75节课,内容涵盖功能测试、性能测试、自动化测试、测试框架、安全测试、接口测试、测试面试题、测试简历模板等。

推荐阅读更多精彩内容