![[��ǩ:����] [��ǩ:����]](https://www.xuefen.net//file/upload/img/7/478.jpg)
本文首发于网站【 林子的空间 】
大家可能关注到双态IT联盟前一阵发布了一个 测试敏捷化成熟度评估模型 ,不断有小伙伴问到我关于这个成熟度评估的问题,我发现大家很自然地把这个跟敏捷测试成熟度画上了等号,不过这不是Thoughtworks开发的,我也不是很清楚。为此,我特地进行了一番调研,希望我这篇文章的解读能解答大伙大部分的疑问。
我们先尝试从字面意思来理解一下,对于以下两个术语大家都比较熟悉:
这两个例子,相信大家都能理解没有问题。关于测试敏捷化,类似地,从字面意思可以这样理解:
那么,“敏捷的测试”是否等同于“敏捷测试”呢?从字面意思来看,似乎是等同的。但事实如何,需要对两者有深入的理解才可以下定论。
为了更好地解释,有必要先介绍什么是敏态与稳态。
在数字化转型时代,企业一方面需要适应数字化时代快速变化的市场需求,另一方面需要保持关键业务的安全可靠和稳定性,传统的IT需要同时适应这两种业务形态,面临很大的挑战。为了应对这种挑战,Gartner公司提出 双模IT(Bimodal IT) 的理念:
传统企业数字化转型的常规做法是可预见性的业务使用传统瀑布式开发,称之为 稳态 ;探索性的业务使用敏捷开发,称之为 敏态。Thoughtworks洞见安辉的文章 《敏捷转型中的敏态与稳态》 对此有比较详细的介绍。
当然,稳态和敏态的这种做法在业界也存在争议。Thoughtworks数字化专家肖然在文章 《数字化时代的科技双模,双模IT成为过去式》 中指出:
尽管如此,传统企业转型过程中,基本都会长期经历敏态和稳态共存的阶段,对转型有着积极的意义。从长远来看,最终还是需要转型到组织级的敏捷,实现真正的全流程端到端敏捷的。
关于敏捷测试,引用Wikipedia的两段话:
从Wikipedia的定义可以看到:
同时,Thoughtworks的资深QA们基于多年敏捷团队开发实践经验提炼出的 敏捷测试宣言 ,非常清晰的表述了敏捷测试的价值观:
敏捷测试是 基于敏捷价值观“快速高效地交付更大的价值”这个目标 ,所开展的所有质量相关活动,是从团队的角度去思考如何实现这个目标,而不再是以测试这个活动/角色的角度出发,不能简单地理解为“敏捷的测试”或“敏捷地测试”。
关于敏捷测试的更多详细内容,欢迎参考刘冉老师的 《Thoughtworks的敏捷测试》 文章和我的 《敏捷测试》系列 文章。
测试敏捷化这个概念来自于双态IT联盟发布的 《测试敏捷化白皮书》 (以下简称“白皮书”),这里直接引用该白皮书中的内容来解释测试敏捷化。
从前面引用的内容来看,测试敏捷化是将测试作为 独立主体 ,从测试的角度出发来考虑优化和改进。
基于白皮书的内容,双态IT联盟还发布了相应的成熟度评估模型,这个成熟度评估也是 基于测试的几个维度 进行的:
到此,我们可以比较清晰地看到测试敏捷化是围绕测试在解决问题,考虑的更多是测试价值的体现。
了解了概念,再来从背景、目标、主体、关注点和适用范围这几个维度集中对比一下测试敏捷化与敏捷测试:
从上表我们不难看出测试敏捷化与敏捷测试具备较大差异:
敏捷测试是产生于敏捷软件开发模式,在这种新型开发模式下需要考虑如何满足质量保障的需求,自然而然产生了敏捷测试。敏捷测试是遵循敏捷价值观的,其目标也是跟敏捷开发一致,那就是快速高效地交付更大的价值。
测试敏捷化则是在数字化转型过程中敏稳两态共存的情形下,传统IT稳态模式的测试团队面临转型挑战,旨在帮助测试团队实现转型。因此,测试敏捷化的目标主要是为了体现测试的价值,提升测试团队的敏捷能力。
为了实现目标,敏捷测试以全功能的敏捷开发团队为主体,关注软件开发全生命周期的质量相关活动。敏捷测试不再是以测试这个检验环节/活动为主,不会强调某个独立角色,而是要求团队整体为质量负责,实现测试左移、持续测试和测试右移,快速获取反馈,从而真正实现软件产品的质量内建。
而测试敏捷化是以测试作为独立主体,以测试的角度出发考虑优化改进,主要关注点包括测试需求、测试计划、测试设计、测试执行等测试过程,以及环境、数据、技术、工具等测试的支撑。
如上面数字化转型示意图所示:
敏捷测试产生于敏捷开发模式,必然适用于纯敏态的开发团队。同时,敏捷测试的一些方法和实践,也可以被稳态团队所借鉴并适当采用。
测试敏捷化由于背景、目标、主体和关注点都不同于敏捷测试,是不宜用于敏态开发环境的,只适用于稳态环境。
数字化转型的确给传统测试团队带来很大的挑战,一方面要配合敏态团队实现测试开发融合,另一方面还要面临稳态测试如何优化改进的问题。
测试敏捷化虽然在一定程度上帮助转型中的稳态测试团队,但是不能从根本上帮助转型的实现。另外,前面提到敏稳双态共存模式不过是转型中的一个过渡阶段,是否要为这种过渡时期的稳态模式投入较多精力,请深思而前行。
测试要实现转型以适应敏捷开发模式,不能只是测试人员的转型、也不能只是测试工作方式的转型,只有改变文化理念和认知方式、调整组织架构和沟通方式、优化流程和策略、采用有利于快速反馈的工具与实践,按照由内而外的“道”->“法”->“术”->“器”方向实现彻底的转型,才有可能实现真正的敏捷测试。这个内容我在文章 《数字化转型背景下的测试转型》 里有非常详细的介绍,请移步阅读。
敏捷测试不是“敏捷的测试”,也不是“敏捷地测试”,而测试敏捷化是“敏捷地测试”,两者不等同。
由于测试敏捷化的背景、目标、主体和关注点都不同于敏捷测试,是不宜用于敏捷开发模式的,只适用于传统企业的稳态模式,也不能帮助稳态团队实现敏捷转型。而敏态、稳态共存本身就是数字化转型的过渡阶段的产物,因此在稳态测试团队采用也需要谨慎前行。
传统测试的真正敏捷转型需要遵循“道”->“法”->“术”->“器”方向、实现由内而外的转变才能实现。
1.需求分析:依据需求文档提取测试点
通过分析需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容,并分析各个功能模块之间的业务顺序,和各个功能之间的传递信息和数据,对存在功能交互的功能项,给出对应的验证内容(功能交互测试)。同时需要考虑到需求的完整性,要充分覆盖软件需求的各种特征,包含隐形需求的验证,比如界面的验证,账号唯一性验证(界面、易用性、兼容性、安全性、性能压力)。
2.编写测试计划和测试用例
为项目需求而编制的一组测试步骤,测试数据以及预期结果,以便测试某个程序是否满足客户需求,测试用例需关联到对应的issue或者story,测试计划的内容包含迭代内的全部开发任务。
3.用例评审:确认用例是否覆盖到各个场景,以及用例是否符合需求
用例评审主要是产品、开发和测试人员,针对测试用例能否用于项目的测试而做的工作。主要是为了减少测试人员执行阶段做无效工作(提交无效问题等),以避免三方需求理解不一致。评审按用例的优先级,功能的复杂程度进行;先对优先级高,功能复杂,疑问多的用例进行评审,再评审功能简单,优先级低的功能点。评审过程中尽量做到思路清晰,用最简洁的语言阐述每一个功能点。对于评审过程中,超过5分钟无法确定结果的问题,可以记录下来,作为会后讨论跟进的重点。
4.测试执行
测试执行是执行所有或部分选定的测试用例,并对结果进行分析的过程。测试执行活动是整个测试过程的核心环节,所有测试分析、测试设计、测试计划的结果将在测试执行中得到最终的检验。
5.转化测试后的bug
将执行完的有bug的测试用例关联敏捷协作中的缺陷。在敏捷协作中一个缺陷可以快速定位到测试用例,帮助开发者快速获取测试结果,实现测试闭环。
6.回归bug测试
通过敏捷中的迭代规划,制定团队的回归方案,积极跟开发人员沟通问题原因、修复的方案和影响。整体的回归bug测试进度计划中需要包含所有回归测试和自动化回归测试时间,同时预估好每天的工作量,与实际完成的工作量进行对比,尽早知道测试进度是正常还是延期,提早控制好风险,从而达到团队能更好地交付价值的目的。
上述内容就是小编整理的什么是敏捷软件测试相关信息。关注学分高考了解更多相关知识!(本文共7932字)

微信扫码关注公众号
获取更多考试热门资料