不知道从什么时候开始,软件测试行业就和“自动化”这个词联系在一起了,对于如今的测试人来说,几乎没有人不知道「自动化测试」,甚至查看各大招聘网站,你从任何一个招聘渠道来看最近两年对测试岗位的要求,几乎都要求会自动化测试。

而不少人一直认为手工测试才是王道:

工作中有的时候也用不到程序,干嘛在面试的时候要求写代码呢?

明明自己的测试能力不错,做了多年的功能测试,为什么面试的时候四处碰壁呢?

很是想不明白,难道业界最近几年有点儿盲目推崇自动化测试了吗?

虽然我不能说完全明白这些问题的产生的根源,不过以我这五六年的从事测试工作的经验来分析一下这些问题的来龙去脉,可能也不是十分准确,希望能给迷茫的同学带来一些思考。

什么是自动化测试?

什么是自动化测试呢?这个问题,可能没有准确的答案。普遍认为的是接口自动化测试,WebUI自动化测试,App自动化测试等被冠以自动化命名的测试方案。

其实不然,自动化测试是相对于手工而言的,用代码或是借助于第三方工具,把繁复的测试工作从手工转化为机器自动执行的测试方案,可以统称为自动化测试。

除了上面所说的三个方面的自动化测试,当然还包括日志过滤,日志回放,接口监控,服务监控等等,根据具体业务需求通过代码把人力从中解放出来的代码手段。

为什么要做自动化测试?

那企业或者是我们测试人员为什么要做自动化测试呢?

从工作角度来说,目前互联网需求迭代快,人员流动快,一个需求从提出到上线时间紧急,其影响的范围可能不太清楚,在上线之前必须对原有功能进行回归测试。不管是接口还是从客户端,都需要大量的测试工作,大数据时代,测试用例量非常庞大,如此繁复单调的工作让人工来测试的话,根本不能保证效率和质量,所以必须要借助于非人工手段来实现。

从个人发展方面来讲,时代在发展,对我们的要求也越来越高,所以我们要迎接变化,不断提升自己才行。虽然你可以坚持手工测试是基础,是王道,可是并没有企业愿意为你这个信念买单。除非你生活无忧无虑,可以坚持自己的信念,否则你就要尊重业界发展的规律,不断充电从而使自己更有价值。

如何实施自动化测试?

永远要记住一句话:“不要为了自动化测试而做自动化测试!” 不管你在测试工作中会采取什么测试方案,测试手段,这一切都是为了业务服务的,脱离了具体的业务,你的辅助手段再厉害也是无用的。

在实施自动化测试工作之前,你必须对要测试的业务非常熟悉,核心业务流程,具体的功能模块的实现,前后端如何交互,以及业务未来的发展与迭代频率等等。然后按以下思路来进行选择与实施你的自动化测试:

(1) 根据业务特点,选择自动化测试方案。 你的业务是前后端分离的吗?业务比较注重用户交互还是数据完整性?用户量有多大,有没有需要承担的压力等等,通过考虑业务的特点,才能选择比较合适的方案。

(2) 根据业务侧重点,确认自动化覆盖范围和粒度。 通过业务特点选择了自动化测试方案,然后根据业务侧重点来确认范围和粒度了。比如,你确定要进行Web UI自动化测试,不能看页面就去写自动化测试用例,要根据业务重点来确认。哪些业务流程是核心,必须覆盖?哪些功能暂时有技术难点,或是变化比较快,可以放为二期来实现。通过对手工用例的评审,来准确确定自动化测试的范围,实现用例的粒度。

(3) 根据自动化测试用例范围,选择实现框架和语言。 目前业务自动化测试工具,开源框架多如牛毛,让人无从选择,但是它们还是各用侧重点的。需要根据测试用例的范围和特点,参与人员的水平,用例的使用场景和未来计划来选择合适的框架。比如,我们要做接口自动化测试,而参与人员大部分不会代码 ,那选择Python+Unittest+HtmlTestRuner+Jenkins就比选择Java+Httpclient+TestNG+Jenkins实现起来成本更低。

(4) 根据用例用途,选择执行策略。 根据自动化测试的用途,是做上线前回归,还是触发式回归?需不需要做监控?执行环境是什么?来去确认是否做持续化集成,是否发执行结果与错误预警,用例或是用例集管理方案,指定维护人员等等工作!

如何学习自动化测试?

既然自动化测试是手工测试提升的一个必经之路,虽然自动化测试没有那么高大上,但必不可少。那作为一个有理想的测试人,应该如何去学习自动化测试呢?

(1) 准确定位自己,明确目标

有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,乱找一气,最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?

这是因为你在学习自动化测试之前没有想明白几个问题:我的真实水平如何?如果学习一项新的技术或是语言,我愿意投入的精力是多少?从现在开始学习,三个月或是半年后应该达到什么目标?我了解现在业界的自动化测试类型或是体系吗?想好这些问题再去入手学习,必定事半功倍。

(2) 全面了解,选好切入点

目前自动化测试方向大概有以下几个:

A、辅助测试脚本方向: 以Shell,Python为主来简化重复的工作,过滤日志等;

B、接口自动化测试方向: Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;

C、页面自动化方向,主要有: Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;

D、App自动化测试方向: 以Robotium+Java+TestNG+Jenkins,  Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。

当然我说的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。

(3) 步步为营,不要贪多

在提升自己时,发现有好多东西需要学习,于是就很着急,想同时学习很多东西,其实这并不好。学的太多容易产生混淆,而且不容易消化,你仔细调研一下就会发现,很多东西都是互通的。代码架构,用例管理,执行策略,持续化集成思想都可以举一反三,关键是自己要动手真正实施起来,在公司现在的框架上写用例,不管你写多少,不了解整体结构都是没有用的。

(4) 抛弃工具,多用开源

业界好像从来不缺少自动化测试工具,QTP,Realobot Framework,LoadRunner等等,知名不知名的数不胜数。先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。所以刚刚学习自动化测试的时候,也不要依赖工具,使用开源的Webdriver, Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。

什么是自动化测试?

不管你对自动化测试是爱,是恨,它是从手工测试转为测试开发必经的阶段。可能你了解到自动测试没有用,实施起来维护成本高,执行效率低等负面信息,其实这不是自动化测试的问题。

要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。在12,13年的时候,用Jenkins做持续化集成比较热门,接下来几年好像没有那么火了,但是近两年docker技术的出现,又使CI,CD变得火热起来。我们是不是应该端正对自动化测试的态度,明确什么才是你想要的,找准方法,不断提升自己呢?

如果你也想进军中高级软件测试工程师,可以参考一下我的学习路径,我想也许会对你有所帮助(至少比网上搜索的要有用很多哈哈)。

我也曾在学习自动化的路上迷茫过,就和其他想从事Python自动化测试/测试开发的朋友一样,网上搜了很多资料,网盘里存了很多视频,还买了一堆书,但是对自动化测试还是略知皮毛。所以,我开始找寻新的进阶路线。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

35+老测试员生涯回顾,揭秘无力吐槽的自动化真相…相关推荐

  1. 为什么企业宁愿花 15K 重新招人,也不愿意花 10K 留住老测试员?

    2021即将进入尾声,大家逐渐收敛了跳槽涨薪的想法,准备收收心等待过年.不置可否,年后必定又是一波跳槽季,通过跳槽才能涨薪已经成为了不少求职者内心默认的定理. 不知道什么时候开始,公司不能满足加薪的要 ...

  2. 在美团呆了7年的测试老鸟,写给 3-5 年测试员的几点建议.....

    从 13年毕业到现在也从业八年了,普通本科毕业,现在一家互联网公司做测试开发,摸爬打滚,坑坑洼洼也经历了不少.思绪很久决定还是写下这篇,希望对后进的小伙子少走一点弯路. 很多人把职场想得太美好,其实不 ...

  3. 隔壁,阿里18k老测试员常用的 软件测试工具大全

    1.UI 自动化 2.接口自动化 3.单元测试 4.性能测试 5.安全测试 6.其他测试工具 7.一些优秀的测试管理平台 8.总结 8.1.关于 UI 自动化 有需要相关资料帮助的可以查看文末明信片 ...

  4. 33岁,工作10年的老测试员被裁,所谓经验根本不值钱

  5. 用我这些年的经历告诉你无力吐槽的自动化现状……

    从2017年6月开始接触自动化至今,已经有2年多了,从17年接触UI自动化(unittest+selenium)到18年接触接口自动化(unittest+requests)再到18年自己编写自动化平台 ...

  6. 测试员35岁以后找不到工作?问完了几千人后,我们得到了答案......

    上段时间,笔者偶然间看到一个帖子,帖子名为"关于35+程序员失业后该做什么",帖子很热,网友纷纷开发脑洞,就"35岁被动退休的退路"展开了亲切友好的交流. &q ...

  7. 什么样的测试员在35岁以后依然被公司抢着要?打破测试员“中年危机”

    测试员圈子里一直流传着一个魔咒:35 岁的中年危机. 他们说,35 岁测试员的精力和体力会无法避免地下降; 他们说,35 岁测试员的丰富经验没有年轻员工的创新活力吃香; 他们说,35 岁测试员会面临越 ...

  8. 一个老程序员的30年生涯回顾(译文)

    前几天,我读到一篇文章[1],一个60多岁老程序员回顾自己的人生. 读完以后,我很受触动,觉得对于软件行业的很多看法,我也有同感.下面就是这篇文章的翻译. 一个老程序员的30年生涯回顾(译文) 原文网 ...

  9. 转载-一个老程序员的30年生涯回顾

    本文转自阮一峰的博客网站<一个老程序员的30年生涯回顾(译文)> 一个老程序员的30年生涯回顾(译文) 作者: 阮一峰 日期: 2019年12月19日 前几天,我读到一篇文章,一个60多岁 ...

最新文章

  1. Java单例模式双重检查锁定中volatile关键字的作用
  2. mysql 分库分表的方法
  3. nginx正确服务react-router应用
  4. C/C++之strcpy功能实现
  5. 【每日算法Day 86】面试经典题:把数字翻译成字符串
  6. hibernate数据类型之间的映射关系
  7. c语言关于函数的程序源代码,c语言库函数源代码
  8. python入门学习—集合(FishC)
  9. dmg文件 linux,Linux挂载Mac系统下的dmg文件
  10. 热门文献|陈国生:实证化中医基础理论依据及应用
  11. 黄色一般表示碳膜电阻,蓝色金属膜,灰色保险电阻
  12. three tables described the hot movie information in recent years
  13. 新东方雅思词汇(List 21~ List 25)
  14. Java身份证校验算法
  15. 谷歌高级软件工程师的一天
  16. 网络在线电视专家 v7.27 怎么用
  17. 哈哈哈哈,16 岁高中生开发「粤语编程」项目,在 GitHub 火了!
  18. 咖啡每天最多能喝几杯
  19. Day16-01 P71 面向对象12什么是多态 P72 对象13:instanceof和类型转换 P73 static关键字详解 P74 抽象类 P75 接口的定义与实现 P76N种内部类
  20. 折叠目录html,在WEB页中实现折叠式动态目录结构

热门文章

  1. selenium源码通读·4 |webdriver/common分析
  2. 微信扫码支付:此公众号并没有这些scope的权限,错误码:10005
  3. [Hadoop基础]-- Hadoop namenode的HA搭建
  4. 单片机要直接烧录程序,要如何做?
  5. 11个开源测试自动化框架,如何选?
  6. poll, ppoll
  7. 网络原理IP协议/以太网
  8. 入门推荐系统,你不应该错过的知识清单
  9. Qt之调用FFTW3实现音频频谱(实现)
  10. php 判断不同分辨率,关于不同分辨率手机显示有区别的解决办法