一、什么是敏捷测试?
敏捷测试是遵循敏捷软件开发原则的软件测试实践。敏捷测试涉及跨职能敏捷团队的所有成员,测试人员提供专门的专业知识,以确保以可持续的速度频繁地交付客户所期望的业务价值。“需求实例化”用于捕获期望和不期望行为的实例,并用来指导代码开发。(来源:敏捷测试-维基百科)
我喜欢来自“Global App Testing”的关于敏捷测试的定义:“敏捷测试的理念是,和编码一样,测试是开发的一个关键部分。在敏捷中,测试被直接集成到软件开发过程中,以便尽早、频繁地发现bug。因此,测试人员可以在开发过程的每一个节点上发现问题,从而使产品快速走向发布。”
为了更深入地了解敏捷测试的概念,让我们先回顾一下传统测试和敏捷测试之间的区别。
二、传统测试 vs. 敏捷测试
首先,我们需要了解传统软件开发方法和敏捷软件开发方法的主要区别。传统的软件开发通常被称为瀑布式开发,被称为线性顺序生命周期模型,而敏捷是一种迭代的、增量的软件开发方法。
以下是传统测试和敏捷测试的不同点:
传统测试 | 敏捷测试 |
---|---|
在软件开发结束时开始测试 | 持续测试/和开发同时进行 |
质量是测试人员的责任 | 团队对质量负责 |
有专门的测试人员或测试部门 | 所有团队成员参与测试 |
基于脚本进行测试 | 探索式测试 |
有需求文档作为参考 | 用户故事和用户需求作为参考 |
攻破软件的思维 | 开发出最好的软件的思维 |
测试介入晚,对产品质量反馈晚 | 测试更早的介入并提供持续反馈 |
发现缺陷 | 预防缺陷 |
(来源:The differences Between Testing in Traditional and Agile Approaches - Medium.com)
三、敏捷测试人员需要遵守的10项原则
如上所述,在敏捷开发中,测试是整个敏捷团队的事情。我们可能都知道敏捷团队中没有一个角色叫做Tester,所有团队成员都是开发人员。因此,当我们使用术语“敏捷测试人员”时,指的是主要活动与测试和质量保证相关的团队成员。
我对敏捷测试人员的10条原则很感兴趣,这在《测试人员和敏捷团队实用指南》一书中经常提到。它们源于敏捷软件开发的宣言和原则,不仅对测试人员有用,而且对所有团队成员都有用。现在让我们来探索它们是什么。
3.1 提供持续的质量反馈
敏捷测试人员不仅持续进行测试,而且还定期向团队和客户提供有价值的质量反馈。这样可以帮助Product owner和客户通过样品和测试来澄清需求。
测试人员还需要与团队紧密合作,并在开发过程中提供质量反馈,以确保团队在业务逻辑和软件行为方面处于正确的轨道。
3.2 为客户交付价值
这是最重要的一条原则,因为软件开发的最终目标,特别是敏捷团队的最终目标是为客户交付最好的软件。
3.3 面对面交流
正如敏捷的第六条原则所说,“向开发团队传递信息和在开发团队内部传递信息的最有效方法是面对面交谈”。不仅让开发人员之间直接沟通,而且让客户直接与开发人员进行沟通,这会有效减少混乱和各环节的错误。
3.4 具有勇气
勇气是每个敏捷团队成员必须具备的品质之一。敏捷的测试人员需要勇气去承担任何任务来完成工作;勇于学习新技能,帮助项目向前推进,确保软件质量;我们还应该具备寻求帮助的勇气,特别是当提供帮助的人看起来很忙,压力很大时;我们也需要勇气允许别人犯错误,因为这是唯一能吸取教训的方法。
3.5 保持简单
我的客户经常说“先简单一点”。我喜欢这样。作为测试人员,我们需要与客户合作,使业务规则、测试用例和记录的bug尽可能简单明了。测试人员和团队面临的挑战不仅是提供尽可能简单的软件实现,而且还要采取简单的方法来确保软件满足客户的期望。
不管怎样,我们需要让事情尽可能简单。下面的名言激励我们这样做:
“简单就是终极的复杂”(莱昂纳多·达·芬奇)
和“如果你不能简单地解释它,你就不可能很好地理解它”(阿尔伯特·爱因斯坦)
3.6 实践持续改进
通过寻找工具,学习更多的技能让工作做得更好,并从客户投资中获得更好的回报,这是敏捷团队的关键价值。作为敏捷测试人员,我们需要找到一种方法让重复的任务通过自动化来完成,这样我们就有更多的时间做更有价值的工作。
3.7 应对变化
在很多情况下,团队从零开始开发一个新特性,信息很少,在开发过程中会有很多变化。作为敏捷测试人员,我们需要与团队合作来适应变化。
3.8 自组织
敏捷团队需要意识到,所有团队成员都负责测试和对软件质量负责。当团队出现问题的时候,是每个人的问题。
3.9 关注人
敏捷团队的一个关键价值是建立一个每个人都有机会贡献和发展技能的环境。测试人员需要学习更多的技能为团队贡献更多的价值。通过这样做,我们将消除测试是低技能工作或测试人员是二等公民的错误想法。敏捷团队的所有成员都是同等重要的。
3.10 享受工作
你有没有问过自己这样的问题:是什么让你喜欢软件研发工作?对我来说,与团队一起交付软件,帮助用户更好地完成工作,为客户带来价值,这让我很高兴。在敏捷开发中,我们可以通过自己的想法和技能为团队创造价值。
四、结论
在我看来,敏捷哲学使所有团队成员都能够贡献自己的价值,为客户提供最好的软件。我相信,作为测试人员,如果我们能够实践以上10项敏捷测试原则,并且渴望通过每天学习更多的技能让自己不断成长,我们就能为团队创造更多的价值。