敏捷测试的价值

敏捷项目管理如火如荼已流行了10多年,例如 Agile、Scrum 和 SAFe。不管是哪一个理论最终都离不开技术落地,都要前后进行需求分析、软件设计、编码实现、单元测试、集成测试、验收测试。固然也会换换名字,例如需求分析换做用户故事拆分。原来大堆的设计和说明文档(依据 CMMI 等理论管理的所谓较正式的项目中大多这样)变得少些,可是编写代码、单元测试、集成测试、验收测试等等该作的仍是要作,这些活动只是在时间前后、任务颗粒度大小方面进行了重组。那么敏捷项目和敏捷项目中的敏捷测试的意义和价值在哪里呢?在进入我们的正式话题敏捷测试之端到端的自动化测试以前,先从总体上简单介绍一下为何要敏捷测试,敏捷测试为谁服务?先知道“为谁辛苦,为谁甜”。git

我们先从企业的愿景提及,怎么要从企业愿景提及呢?要作一个好的测试人员特别是敏捷团队里面的测试人员不只要懂测试技术、掌握编程技能,也要了解公司的业务。测试出的产品最终是给客户用的,这个客户有多是外部客户,也有多是内部客户。客户要使用咱们测试人员测试的软件来作什么?客户为何愿意使用咱们的软件,客户为何愿意为咱们的软件付费呢?那就是咱们的软件为客户提供价值,这个价值既能够是提升效率,也能够下降成本,也能够是增长收入等等。这就是精益理论的一个核心思想,是企业敏捷的一个重要思想。编程

互联网企业或者软件企业的传统的产品导入方式如图1所示。微信

enter image description here

图1 传统新产品导入模式


初看上去,这个新产品导入模式彷佛对企业研发新产品特有帮助,有利无害。它说明了怎么一步步把新产品交付到客户手中的。业务部门或企业创始人(小企业或初创企业产品概念通常由老板提出,大型企业才会有业务部门提出)造成企业商业模式概念,并根据该概念和愿景来构想所须要的产品。对于互联网企业或软件企业来讲就是造成对一个网站或应用的想法。想法描述给研发人员或部门就开始规划产品,网站应用建设和软件应用开发是一个系统化的工程,通过需求收集、需求分析、概要设计、详细设计、开发编码、单元测试、集成测试、用户验收测试(请见图2)。对于企业级的应用工做量可不小,完成网站或应用建设时间跨度小的几个季度,大的若干年。我曾经历过一家大型国企的金融核心系统开发长达3年之久。若是您是这个产品的负责人,当您的产品通过这么长时间的开发首次准备上线交付给客户时,忽然发现没有客户群体!产品特征不是用户想要的!竞争对手在您这么长的开发周期当中已经有2.0产品了又有了巨量的用户群!此时您的感受如何?如何面对投资人?情何以堪!?app

enter image description here

图2 瀑布模型产品开发


束手无策以后,给你们介绍一个理论和模式——愿景驱动开发(Vision Driven Development,简称 VDD),它以精益思想和敏捷理论进行客户开发、应用(Application)研发和部署运维。我们要讲的敏捷测试就是愿景驱动开发的大开发环中应用研发环(这里应用能够是网站、软件、APP 等等)中的测试环。请见图3愿景驱动开发环。框架

enter image description here

图3 愿景驱动开发环


因为本达人课的主体是敏捷测试,对于客户开发、敏捷开发和部署运维的 DevOps 不详细讲解,只简单介绍以避免有的童鞋有点生疏。对这些话题感兴趣的童鞋能够关注后续推迟的相关课程。我们争取把整个愿景开发知识体系和实践讲完。运维

客户开发

客户开发总共包括四个步骤,它们是客户探索、客户验证、客户生成和企业建设(对于已成立企业也能够是产品推广)。ide

第一步,客户探索。把创始人(产品负责人)的愿景转化为一系列商业模式假设,开发一套测试客户反应的方案。例如低保真最小可行产品(Low-fidelity),这须要研发、测试童鞋用尽可能短的周期提交出演示或试用产品。工具

第二步,客户验证:将在客户探索阶段产生的最小可行产品演示给客户,或将使用结果进行总结和分析,看看创始人(产品负责人)提出的商业模式是否具有可重复性和可升级性。若是不能够就返回客户探索阶段从新开始。单元测试

第三步,客户生成:这个步骤负责创建最终的用户需求(搞明白用户需求),导入销售渠道,实现企业或产品的扩张。学习

第四步,企业建设。这个阶段标志着企业或产品的商业模式已经通过验证,能够按照探索出来的商业模式来建设企业或运营产品了。

敏捷研发

敏捷研发理论有不少,愿景驱动开发框架下推荐的是 Scrum 敏捷研发管理,Scrum 敏捷研发管理方式采用短时间冲刺按期验收演示的方式快速造成最小可行产品。敏捷研发过程里面我们测试的同窗就要上阵了,要和开发同窗一块儿把产品作得快又好,就要作好测试管理、测试规划设计、从单元测试、集成测试到 UI 端测试,尽可能采用自动化提升测试效率。

持续部署

应用开发(网站/软件/APP)开发完成、测试完成就要进行部署,传统部署方式动辄几天,使用 DevOps 方式能够分分秒秒完成,这才是愿景驱动开发的方式,软件部署以前要想保障软件的质量,固然要测试完成,少了测试童鞋的工做,有几个大拿敢说本身编写的软件能够直接部署生成环境不被用户骂个狗血淋头呢?再次强调了敏捷测试不能少哇!

敏捷测试该怎么作?提及来很简单,作起来不易。例如玩玩 BDD(行为驱动开发),玩玩 TDD(测试驱动开发)。前提是测试质量如何保证?测试童鞋该拥有什么样的技术才能作起来?需求老师(产品经理)、研发童鞋、测试童鞋该如何一块儿玩才能 Happy 的完成工做?

本文先给出个思路,接下来的课程内容将一步一步带领各位童鞋玩下去,在正式开始学习以前,先带你们总体看下本课程的总体思路与内容结构。

导读:敏捷测试价值

本部分主要对敏捷项目的管理过程和相关理论进行介绍,让学习相关课程的同窗对敏捷研发和测试的过程有总体了解。

第01课:管理篇——敏捷测试中的人、技术与过程管理

本部分主要对如何管理敏捷测试当中的要素:人、技术和过程进行介绍,让学习相关课程的同窗理解并初步学会如何进行敏捷测试管理。

第02课:设计篇——敏捷项目中用户故事分析与验收条件设计

本部分主要对敏捷项目的需求分析技术进行讲解,让学习相关课程的同窗学会如何对敏捷故事进行验收测试设计。

第03课:设计篇——验收测试设计及 UI 自动化测试

本部分主要对用户故事验收的自动化测试设计进行讲解,让学习相关课程的同窗学会对用户故事进行自动化测试验收,保证用户故事的验收测试范围和测试质量。

第04课:设计篇——接口测试设计及自动化测试

本部分主要对接口测试设计技术进行讲解,让学习相关课程的同窗学会以面向服务(SOA)的方法学会接口测试设计。

第05课:设计篇——单元测试设计及自动化测试 本部分主要对单元测试的覆盖和断言设计进行讲解,让学习相关课程的同窗理解高质量单元测试的方法。

第06课:设计篇——持续集成中的自动化测试

本部分主要对敏捷测试与持续集成(CI)相结合的方法进行说明,让敏捷测试真正提升效率。

第07课:技术篇——使用 Junit 实现单元测试

本部分主要对如何利用 Java 技术实现单元测试进行讲解,将涉及目前流行单元测试工具介绍和使用。

第08课:技术篇——WebService 接口测试

本部分主要对接口测试的经常使用规范和协议以及经常使用的接口测试框架和工具(如 SOAP UI、HttpClient 和 Rest-Assrued)进行讲解,让学习相关课程的同窗学会自动化接口测试。

第09课:技术篇——使用 Selenium 实现 UI 自动化测试

本部分主要对 UI 测试技术进行介绍,并举例说明如何利用 Selenium 实现自动化接口测试。

第10课:方法论篇——行为驱动开发

本部分主要对目前在敏捷测试领域比较流行的测试理论和方法进行介绍,让学习相关课程的同窗既了解该理论的特色也可以在具体实践中运用。

第11课:附录——自动化测试源代码

本部分将提供本课程中的所有自动化测试框架代码,让学习本课程的同窗能够立马动手实践,真正符合敏捷思想中的"Make your hands dirty"!

相信各位童鞋跟完本达人课都想跃跃欲试。若是有的童鞋所在公司或项目组没有玩敏捷开发和测试这个套路,也能够把学到的知识和技能用到传统的软件测试里面去。敏捷和传统不是水火不容,它们当中的不少技能是能够互通的,它们不是既生瑜何生亮哦。敏捷和瀑布只是指导思想和套路不同,学会了《易筋经》《九阳神功》,不管什么套路都是绝顶高手!

下面开始我们的套路:测试准备(作好管理规划),作好测试设计,设计用户验收测试、设计集成测试、设计单元测试,编写单元测试、编写集成测试、编写用户验收测试自动化代码,持续集成 & 部署玩起来就大功告成!


GiTBook:十招玩转敏捷测试


微信公众号:

qrcode_for_gh_2d53be29b2f6_258.jpg