大叔大婶带你走一条接地气的测试进阶之路

《测试路上你问我答》(100)自动化测试的意义到底在哪里?

上一篇 / 下一篇  2017-11-08 19:49:13 / 个人分类:自动化测试

【背景】

最近有同事在面试的时候被问及一个问题,其实也是近些时候,网络上讨论也比较多的一个话题,自动化测试的意义到底在哪里?

【你问】

自动化测试的意义到底在哪里?

【我答】

每样事物的产生都是因为需求的产生,我个人对于自动化测试的产生原因的理解,跟工厂里的质检应该类似,当软件测试工程师这个职业刚刚产生的时候,就像工厂里的质检员,都是通过手工和感官去检查产品的质量,慢慢地,随着产品的生产规模扩大和速度的加快,这种纯手工的测试和质检就暴露出来一些问题:

  • 人力成本的增加,因为需要更多的质检员和测试工程师
  • 效率的瓶颈,因为生产速度远远超过手工质检和测试的速度
  • 人为错误率的上升,因为工作量的增加和持续时间的增加,导致人员疲劳或惯性思维,也包括投机取巧的一些行为

而自动化测试,也就像工厂里的自动化质检一样,在这个时候应运而生了,它们的产生就是为了解决上述三个主要问题的:

  • 当检测任务增加的时候,人力不可能一直连轴转,所以就需要增加人力来三班倒,但自动化系统却可以不停地运行
  • 自动化系统的执行效率远超手工效率
  • 系统不会因为连续地运行而疲劳,所以也就不会疲劳而犯错,更不会有什么惯性思维和偷懒的行为

现如今,自动化测试工具和框架多的让你都能挑花了眼,测试开发工程师或自动化测试工程师的岗位需求也比前些年多了很多,不管你是在做什么类型的产品测试,如果没用过几种自动化测试框架或工具,是不是感觉都不好意思开口?那为什么现在反而越来越多的人又开始讨论自动化存在的意义了呢?

我的理解是虽然自动化测试这个概念被热炒了很多年,可是真正能把自动化测试真正融合到软件研发体系里的公司,并没有太多,我觉得导致这种结果的原因其实可以说就一个:投入产出比太低

我大概从2005年开始第一次接触到自动化测试的概念,那时候还是 Selenium 1.0,虽然我没有主攻自动化测试这个方向,但是因为很多原因,也参与了自动化测试在项目中的试点,在公司的实施和推行,一直以来也不断地在看项目里和项目外的人将很多新的自动化测试工具带进来又带出去。

有的是管理层看不到最终会带来多大的效率提升和回报,所以前期就不想投入相应的人力和物力。

有的是管理层其实也支持,但迫于项目工期或产品发布等更为重要的目标,导致不能投入百分之百的人力去开发,所以导致迟迟不能落地,最终也就不了了之。

还有部分公司就是为了自动化而自动化,并不清楚自己到底需不需要自动化,或者什么地方最需要自动化,就是觉得,既然其他公司都搞自动化了,那我们也必须要启动自动化计划。

我还见过因为自动化测试框架因为版本的升级,导致几千个脚本被废弃,导致几十个测试工程师半年多的辛勤劳动成果被浪费,导致公司的测试工程师一度极其抵触自动化测试的任何任务。

还有很多其他的场景,日积月累地,让很多公司和很多人慢慢地对自动化产生了疲劳感,自然也就有了质疑的声音和迷惑的问题。

我个人的观点是,要想明白自动化测试的意义,你得先把测试两个字拿掉,再来看自动化的意义在哪里?

我们要将自动化的应用领域扩展到我们整个产品研发流程,或者说发散到你的整个工作范围,将其中手工重复度较高的、人为容易犯错的、较为机械化的工作事项,都给自动化了,将执行这类工作的人力释放出来,去做有创造性的、复杂度高的、有成长性的工作。这就是我认为的自动化的意义。

就拿我们接触较多的互联网产品的团队,不要再局限于什么 Android 自动化测试、iOS 自动化测试、接口自动化测试这些范畴了,而应该多去研究一下,开发过程中哪些环节可以被自动化,比如单元测试、构建版本包、发布包部署、错误日志检查、异常预警、现网运营配置的检查、运维数据的纠错等等,这些都是可以用自动化工具、脚本或框架来解决的,这些都是有意义的研究范围。

最后,再说个更生活化的例子,就像我现在在写这篇文章,我会在简书写好,发布出去,然后,我会同步在去大鱼号、微信订阅号等自媒体平台发布一下,其实这个发布过程就是一个我每天都要重复去做的事情,如果我能将这件事情给自动化了,那每天是不是又给自己节省了将近20分钟的时间呢?你说这有没有意义呢?


TAG: 软件测试 测试 问答

 

评分:0

我来说两句

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 72437
  • 日志数: 82
  • 建立时间: 2017-09-03
  • 更新时间: 2018-01-11

RSS订阅

Open Toolbar