目录
敏捷测试是敏捷开发方法论中的一部分,它强调快速响应变化、持续交付价值以及通过迭代和增量的方式改进软件。敏捷测试不仅改变了传统的测试方式,而且对整个软件开发生命周期产生了积极的影响。它提高了效率,缩短了开发周期,并且更加注重实际用户体验和业务价值的实现。
敏捷测试的特点
一、更强的协作
在传统的开发模式中,大部分的沟通模式是"n"型模式。例如,开发人员有事情需要测试人员帮忙处理,他们不是第一时间找测试人员,而是先向自己的开发主管提出配合申请,再由开发主管与测试主管协调,测试主管再把事情传达给测试人员并指示配合,这种"n"型模式的沟通效率有多低可想而知。
当然,出现这种问题的根源是职能型组织架构不合理。而敏捷强调的是跨职能团队,团队内部既有开发人员,又有测试人员,他们在同一个团队中有更多的协作,工作也更加紧密,并且喜欢面对面沟通,而不是通过邮件文档反复沟通,所以效率自然就提高了。
二、更短的周期
在传统的开发模式中,一般测试阶段的周期都是按月计算并计划的,比如,系统测试2个月、用户验收测试1个月等。但是在敏捷中,需求验证或测试的周期不再按月计算,而是按天,甚至按小时计算。同时,用户验收测试也不在最后阶段才进行,而是在每次Sprint 的结尾都会进行。整个测试被分割成多个小的测试活动,并且分布在每一个 Sprint迭代周期中,而每个迭代周期中的测试就变得非常短。
三、更灵活的计划
敏捷宣言强调响应变化,敏捷测试同样也需要拥抱变化。测试计划不再像传统模式一样,有测试经理编写一份详细的测试文档,然后放入文档管理库中,最终变为"死文档",在敏捷测试中,测试计划在最初阶段以粗粒度的文档形式出现,因为敏捷项目在开始,项目的需求不怎么清晰,而需求不明白的情况下很难定制一份具体详细的测试计划,当然随着时间的推移,我们也需要不断的更新优化,根据业务价值交付顺序灵活调整计划。
四、更高效的自动化
相比传统测试,自动化在敏捷测试中扮演了极其重要的角色,是在实现快速交付的同时又能确保质量的一种非常有效的手段。传统测试由于测试的周期较长,测试的资源相对充足,所以通过大量的手工测试人员进行"人海战术"是可行的。
但在敏捷测试中,在短时间内仅依靠人工测试来保障产品质量,只会让测试人员疲于奔命,承担巨大的压力,最终带来质量风险和隐患。自动化通过机器代替人工执行操作过程,可以帮助测试人员减少人工操作,将其从重复烦琐、枯燥单调的测试操作中解放出来,让他们更专注于容易出错、存在质量盲区的地方,如通过探索式测试确保整个软件的质量。
五、更广泛的技能要求
在敏捷环境中,测试人员只执行测试是不够的,因为敏捷团队中的角色职责已经变得模糊。我们知道在开发团队中没有明确区分开发人员、测试人员等所以如果出现开发人员做测试、测试人员做开发的情景也不要觉得奇怪。敏捷环境要求具备复合型的跨领域测试专家,而对于复合型人才,目前听到比较多的称呼是"T"型人才,也就是说,除了纵向有一个钻研得比较深的主打领域,还要发展横向的跨领域技能。对于测试人员来说,除了测试领域,还可以发展如业务能力、开发能力或敏捷 DevOps 能力等,用一个词来形容就是"一专多能"。
六、自动化测试
为了支持快速迭代,敏捷团队会尽可能地将重复性的测试任务自动化,如单元测试、回归测试等。
七、协作性强
敏捷测试鼓励开发人员、测试人员和其他利益相关者之间的紧密合作,共同确保产品的质量。
八、适应性
敏捷测试不是固定不变的,而是根据项目的需要进行调整。测试计划和策略可以根据反馈灵活调整。
七、测试驱动开发(TDD)
先编写测试用例再编写实现代码,确保代码符合预期的功能需求。
敏捷测试的价值
一、加快上市时间,缩短价值交付周期
敏捷测试可以帮助加快上市时间(Time-to-Market),从而缩短价值交付的周期。首先,敏捷把产品开发划分为多次迭代,并且在每次迭代交付潜在可用的、有价值的产品给客户,没有经过测试的产品不能发布给客户。
敏捷测试确保每次迭代都有测试活动,从而保证每次迭代的有价值输出都是经过测试的,以便尽早达到发布条件,让最终用户尽快得到最小可行产品(Minimum Viable Product,MVP),尽快获取业务价值。
其次,捷测试对自动化的要求更迫切,可以通过全栈式的自动化测试提高测试效率,从而缩短测试周期。
最后,更早、更频繁地测试,及时修复缺陷,避免所有的问题都堆积在最后的测试阶段,造成"大爆炸"(Big-Bang)式的灾难性后果,同时降低整体返工的可能,避免在缺陷修复循环中打转,缩短价值交付周期。
二、质量有团队保障,提高整体产品质量
质量是构建出来的,不是测试出来的。敏捷测试强调,质量是团队所有人的责任,除了测试人员以外,还有产品人员,开发人员等项目中所有成员都有义务对产品的质量负责,这样才能确保产品的整体质量。
三、化繁为简,节约成本
首先,敏捷测试不要求详细的测试计划和测试文档,也没有定义繁琐的测试流程和缺陷管理流程,在测试管理方面完全遵循敏捷思想中的轻量级管理模式,从而为测试人员减少不必要的负担,节省了工作量及成本。其次,敏捷测试提倡尽早测试,越早发现缺陷,修复的代价越低,以此有效降低了不良质量成本。最后,敏捷测试分小批量迭代执行,可以有效地应对变更带来的影响,减少变更造成的浪费,从而节省变更成本。
四、增强客户满意度
敏捷测试确保了每次迭代都可以向客户提供可用的产品版本,从而更容易获得及时的用户反馈,进而做出相应调整。
五、降低风险
持续的测试和改进可以帮助识别潜在的风险,使团队可以在早期阶段解决问题,避免后期成本高昂的修改。
六、促进团队学习
敏捷测试过程中的跨职能协作促进了知识共享和技术交流,有助于团队成员的成长和发展。
阅读后若有收获,不吝关注,分享,在看!!!!