自动化测试在敏捷中应用

在现在互联网发展浪潮中,敏捷被应用于越来越多项目中,随之而来的“敏捷测试”与“自动化测试”也成为一个大家经常探讨的话题,那么在敏捷测试中,如何应用自动化测试?又如何去推行最有效的自动化测试呢?本文在此跟大家探讨一下自动化测试在敏捷中的应用。有不同意见欢迎私信。
在这里插入图片描述
首先,如何在敏捷应用自动化测试–其实最重要的是两个问题,要不要实行自动化,怎么样实行自动化。

在谈及这两个敏捷中的自动化测试问题时,都会不可避免涉及到敏捷中的测试四象限问题。我们可以根据敏捷测试四象限,来看测试应用场景。

在这里插入图片描述
在2009年出版的 Crispin & Gregory 的著作Agile Testing: A Practical Guide for Testers and Agile Teams 中第一次提出“敏捷测试四象限”,在敏捷测试四象限中,根据自动化和手工测试应用场景归纳为如下图:它是一个自动化测试的整体策略的描述,这个图可以帮助我们很好理解:

  1. 哪些测试更适合自动化测试?
  2. 哪些测试更适合手工测试?
  3. 哪些测试需要手工测试和自动化测试结合起来?
  4. 测试工具在哪些测试中发挥主导作用?

在确定可应用场景后,是否需要自动化测试,我们则可以通过计算ROI,工具使用对比(例如: API功能测试:Fitness Web服务测试:soapUI,GUI测试工具:录制回话Watair,selenium,性能测试工具LR,Jemter等等)等各方面手段来评估是否需要自动化。

同时提及一点,而在自动化测试中,根据投入产出比,从单元测试依次增加。在GUI测试中需要投入最多而产出可能最小。
在这里插入图片描述
在确定自动化测试策略以后,谈及如何在敏捷中实行有效的自动化测试,我们先来看敏捷项目中对测试的要求和传统项目中对测试要求的部分区别:

在这里插入图片描述
敏捷测试VS传统项目对比中,我们可以看到,对于敏捷测试,无论是手工测试,亦或是自动化测试,快速响应,恰当的适合的计划,贯穿整个迭代是对敏捷测试的一个基本要求。

当项目实行自动化测试时,实施自动化策略时,我们完全可以根据敏捷模式来递交自动化测试,以期望达到快速响应,适当计划的要求。

首先我们来看敏捷迭代计划:
在这里插入图片描述
在敏捷流程中,当经过前期的准备以后,进入迭代。主要为需求,计划,设计开发,执行,发布为主流程。在这个迭代流程中,如何有效完成自动化呢?

1、需求分析,计划。需求通常在一个迭代周期的开始,此时QA需要频繁与跟PO沟通当前需求情况。比如:当确定本次迭代自动化测试范围后,分析需求或者了解测试用例。同时还可以为自动化做技术准备,例如在某个迭代的自动化测试当中会需要将页面Table值大批量的和CSV文件值做对比。那么作为自动化测试人员就应该在项目初期的时候就开始研究相关技术,准备相应测试技术。如有必要,可以适当准备一个的Demo(同时可以将Demo的自动化测试结果分发给相应队员做review以便于及时得到反馈为后续做准备)。

2、设计开发,开发自动化测试脚本。及时沟通需求细化需求,完成相应的代码。在这个阶段,有些项目组特别是UI自动化测试项目组,可以通过落后于当前开发迭代功能来实行自动化。这样的情况下UI自动化可以完全不受阻碍的开发。如果实行TDD模式,可以用mock形式来实行自动化。当然也可以帮助开发写单元测试用例,并且实施自动化测试(主要是单元测试)。这个完成形式取决于项目。在完成过程中,如果项目刚开始,那么初期的框架搭建也是需要提前准备。

3、测试执行,当完成这个自动化测试迭代后,将测试应用于真实项目中。搭建真实测试环境,搭建自动化测试环境,运行自动化测试脚本。根据结果更新代码。这个时候很有可能出现几个情况,1.开发时候代码放到真实环境时会大面积失败。需要测试人员分析相关问题。2.优化改进代码,做代码评审。当自动化测试用例不间断放到真实环境中跑的时候,除了真正的defect以及代码问题,还会有一些性能,环境设置冲突问题,都需要我们一一解决。也会遗留一些不能完成的测试用例等等,需要跟手工测试人员或者PO沟通解决。

4、发布,将已完成的用例放入回归库做长期测试。回顾代码,查看是否有部分功能可以被整个项目重用等。

基于以上的迭代,可以看到自动化测试从初期既可以介入:
在这里插入图片描述
以上算是一个迭代周期里面的一些具体的工作,宏观上说还需要做点什么事情呢?

敏捷中很突出的特点,就是产品快速交付,为了这个目的,QA团队就是要在保持测试质量得到保证的前提下,尽可能地缩减测试所需要的时间,使得产品按时按质交付。在产品开发的前期,自动化测试人员应该尽可能地想办法搭建一个自动化回归测试的框架,这个框架的特点有:1. 能快速完成回归测试; 2.容易上手;3.能够随着产品的演化而不断改进(可拓展);4.维护的成本要低(在一个迭代周期里面如果自动化测试需求有变化,不应该需要超过迭代的四分之一的时间才能改好,当然大的变化除外)

综上所述,在敏捷开发里面的自动化测试是有2条路线,并且这2条路是并行的,缺一不可。

1、至少一个自动化回归测试框架,保证迭代前能够对产品进行覆盖较为全面的回归测试

2、工作中需要不断地完善自动化测试工具,提高自己的生产率**

自动化测试其实是测试一个手段,其目的很简单,就是要在保持产品质量处于一个较高水平的情况下,帮助公司尽可能地快速交付新版本的产品。

- End -

有兴趣一起学习交流的小伙伴也可以加群:903217991,经常会有技术大牛分享知识心得,期待你的到来
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42596342/article/details/84582508