自动化测试概念及适用范围!

一,什么是自动化测试:

  • 首先自动化测试技术,是以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。把以人为驱动的测试转化为机器执行的一种过程。目的是为了节省人力,时间或硬件资源,提高测试效率。其次自动化测试涵盖各种各样的测试种类如:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,压力测试,GUI测试,安全性测试等...

二,自动化测试的优势:

  • 回归测试更方便,可靠:通常来说,这是自动化测试最主要的任务和特点,特别是在程序修改比较频繁时(新功能的不断加入,老功能逻辑不变或很少变的),效果是非常明显的。由于回归测试的业务流程操作和测试用例是预先完全设计好的,预期结果也是完全在项目人员掌握之中,将回归测试交给计算机自动运行,可以极大提高测试效率,缩短回归测试时间。

  • 可运行更多更繁琐的测试,且快速高效:自动化测试明显的一个好处就是可以在较少的时间内运行更多的测试,有很大一部分业务功能由于业务逻辑极其繁琐,使用手工测试的话要耗费很多时间,测试次数不是太多的话还可以接受,但是要求测试次数多了的话手工测试人员会没有耐心,而自动化测试的耐心是无限大的,并且计算机的执行速度远比人工快。

  • 可执行相对于手工来说相当困难或跟本做不到的测试:比如对于大量用户的并发测试,不可能让足够多的测试人员同时进行,但是可以通过自动化测试模拟很多用户同时并发点击某一功能,从而达到测试的目的,再例如人工不可能二十四小时不休息的进行测试,但是计算机则不用休息....等。
  • 更好的利用资源,使资源的使用更有价值:将更繁琐的任务自动化,以及提高准确性和测试人员的积极性,将测试人员解脱出来投入更多的精力设计更好的测试用例,有些测试不适合自动化测试,手工测试人员可专注于手工测试部分,或将测试人员精力投入新功能或者测试更深的业务逻辑中去争取发现更深层次的缺陷。
  • 具有一致性和可重复性:由于机器是自动执行的,每次测试的内容与操作的一致可以得到保障,从而达到测试可重复的效果 ,机器可以按照相同的轨迹不断的执行测试并不会发生差错,而手动测试很难或者不可能做到这一点。
  • 自动化脚本完全具有复用性:由于自动化测试通常以脚本的方式来实现,这样在不同的版本之间,就有可能只需要做少量的维护甚至不用做任何修改,实现在不同版本中使用相同的测试脚本执行相同的测试用例。
  • 使软件更有信任度:由于测试是由计算机代劳的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量,一旦软件通过了具有说服力的自化测试后,软件的信任度会大大增加。
  • 多环境下测试:一个系统往往会被要求能支持各种不同的环境并稳定运行,但是这么多不同的环境如常用的浏览器:IE6,IE7,IE8,FireFox等,系统有:windows2003,windowsXP,windows Vista,windows7等,甚至还有杀毒软件 ,那么多环境组合,如果每一种环境组合都来人力完成,那么研发周期得成倍增加,而自动化可以发挥其优势与作用,由计算机代劳,在不同的环境组合中运行。

 

三,自动化测试的劣势:

  • 永远不可能代替手工测试:自动化脚本无法做到手工测试的覆盖率,不是每个测试用例都适合转换成自动化测试用例。复杂性极强的操作也只能通过手工测试来完成,如果写成代码的话会是件大麻烦事,得不偿失。比如验证当前页面的布局是否正确。
  • 无法完全保证测试的正确性:自动化测试是由脚本组成的,它的核心任然是代码。简单来说,自动化测试就是程序测试程序,是程序就会有缺陷,所以不能保证测试工程师开发的脚本就一定没有缺陷,如果代码有 一个小小的逻辑错误,哪怕是一个条件判断的误写也会导致测试结果完全出错,当然对于自动化测试工程师来说,大多数的错误还是会在脚本调试中避免的。
  • 手工测试发现的缺陷远比自动化测试的多:自动化测试几乎是无法发现新缺陷,大多是用来发现曾经发现过的缺陷在每个新版本下有没有重新出现。自动化测试更适合缺陷预防,而不是发现更多缺陷,自动化测试最大的用途就是回归。
  • 对测试质量的依赖性极大:自动化测试的运行,首先是建立在手工测试质量稳定的大条件下,如果当前版本测试的质量不够稳定,运行自动化测试会非常不顺利,几乎是一种无用功白白浪费时间的行为。
  • 测试自动化可能会制约软件发展:由于自动化测试比手工测试更脆弱,以及脚本维护受到限制,从而制约软件的开发。
  • 自动化工具死板问题:自动化测试无法做到像人类一样随心所欲的创造,自动化测试好坏完全取决于测试负责人和测试开发工程师的思想与技术,和自动化测试工具没有任何关系,所有程序都是依靠输入代码的方式来告诉工具该怎么做。
  • 成本投入高,风险大:自动化测试需要很大的成本投入,并且没有良好的成本分析与控制手段以及自动化测试计划,与执行过程控制,那么往往会导致自动化测试项目失败。白白浪费人力物力,还得不到任何回报。
  • 自动化测试要求相对较高:自动化测试工程师要有一定的开发背景,开发技术越高,脚本质量也就越高,越具有想象力。

四,自动化测试适用范围:

  • 软件需求变动不频繁:测试脚本的稳定性决定了自动化测试脚本的维护性。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发过程,需要修改,调试,必要的时候还要修改自动化框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。项目中某些模块相对稳定,而某些模块需求性很大。我们便可以对相对稳定的模块进行自动化测试,而变动较大的用手工测试。
  • 项目周期较长:由于自动化测试需求的确定,自动化框架的设计,测试脚本的编写与调试均需要相当长的时间来完成,这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成,如果项目周期比较短,没有足够的时间支持这样一个过程,那么自动化测试便不可能实现。
  • 自动化测试脚本可重复使用:自动化测试脚本的重复使用要从三方面来考量,一方面所测试的项目之间是否存在很大的差异性(如B/S系统和C/S系统的差异);所选的测试工具是否适应这种差异;最后,测试人员是否有能力开发出适应这种差异的自动化测试框架。 

猜你喜欢

转载自www.cnblogs.com/shiweijiang/p/9814848.html