Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

6.2. 自动化测试如何破局?

最近面试软件自动化测试工程师,感想颇多。

面试者都来自大厂或大厂外包,华为,oppo,顺丰,沃尔玛,百丽,腾讯,字节…… 开始以为捡到宝了,即使没吃过猪肉也见过猪跑吧,起码参与过自动化测试,面试后大失所望。

面试了很多工作十年的测试工程师仍然在做功能测试,或是功能测试为主,自动化测试打酱油。

什么是打酱油?我们有自动化测试,我们做了。但是自动化对工作的贡献微乎其微,也就是说自动化测试并没有真正为企业带来价值,最后自动化测试脚本不在有人维护,被人遗忘。

问及为什呢自动化测试流于形式? 实施自动化测试最终摆脱不了失败厄运,会不了了之。每个人都给出无数理由,在我看来是无数借口。

十年前我曾经写过关于自动化测试为什么难以普及的文章,时隔十年,都2021年了,自动化软件测试普及程度跟10几年前情况差不错。究竟问题出在哪里呢?

如果你是管理层,你会发现,自动化测试工程师人在招聘,事在做,钱在花,但是没有成绩。仍然人工测试为主,自动化辅助。

难道无法实现自动化为主,人工为辅吗?此前我在一直在外企工作,为什么外企能做到自动化为主的测试呢? 我认为有一下几点:

  1. 认知的问题
  2. 生态问题
  3. 技术问题
  4. 能力问题
  5. 氛围问题

6.2.1. 认知问题

你问测试人员我们有没有做自动化,答案是:

认为自动化测试替代不了人工测试

这话没毛病,确实不能100%替代,但是自动化测试可以干80%的活。剩下20%人来干。

需求迭代快不适合做自动化,迭代快常常导致自动化脚本跑不通

我不这么认为,我们通过持续集成运行自动化测试脚本,一旦发现流水线测试失败就会立即修复自动化测试脚本。只要紧跟开发,开发动,我就动,联动开发,就可以解决这种问题。写测试脚本的工作量远没有开发的工作量和强度大。更多时候只是修改定位元素标签而已。

人工测试前首先要通过自动化测试,这样可以避免盲目测试。 也就是人工测试走了大部份流程后才发现往下走不通了,此时已经浪费了时间,为什么不让自动化程序去发现问题呢?

6.2.2. 生态的问题

在国内包括大厂,软件自动化测试处于很低的水平,测试人员水平也相对低于其他团队,例如开发和运维。为什么 DevOps(运维自动化)在国内能风生水起?因为DevOps 在为企业创造价值。DevOps 降低了IT成本,解决企业面临的众多IT痛点。但是你可能不知道,DevOps 思想刚刚进入国内的时候,很多运维人员是抵触的,他们不相信自动化,他们不敢在生产环境实施自动化,在相当长的几年中,DevOps 也是打酱油的状态,只在开发环境中部署。

管理层重视程度,管理层能力,管理层认知都决定最终结果。

管理层重视自动化测试,但是能力又无法推动。 招聘也存在问题,管理层的认知天花板决定他招聘进来的员工天花板。

即一流人才做面试官,只能招聘到二流人才,二流面试官,只能招聘来三流人才,以此类推。 最终一个乌合之众的测试团队被攒出来。

6.2.3. 技术的问题

互联网技术越来越复杂,HTML 4.0 的时候只有 form 表单提交,那时做自动化测试畅通无阻,非常顺利,后来有了ajax 和复杂UI,导致自动化测试难以进行。

很多测试工程师的开发水平仅限于测试,没有从事过前后端开发,遇到问题被卡住,解决不了,就放弃了自动化测试。

6.2.4. 能力问题

测试团队能力不足是最大问题,多数测试人员的职业生涯规划是失败的,从功能测试走到自动化测试的人非常少。

成为自动化测试工程师,需要三个因素:

  1. 自驱力
  2. 外驱力
  3. 环境因素

自驱力是自我学习的动力,外驱力是外部施压强制员工学习,以满足岗位需要,两种力都具备后还需要有环境,包括学习环境(氛围)应用环境(学以致用),实战机会等等。

6.2.5. 氛围问题

很多公司的想法是招聘一两个自动化测试人员,更多配置是功能测试。

这个想法就是错误的,从一开始就注定了要以功能测试为主。尤其是当测试组的leader是功能测试者后,他会更坚信自动化测试替代不了人工测试,在自动化测试短期没有成绩的时候,他会本能否定自动化测试,最终将会从自动化专人工。

由于自动化测试人员少,就会有孤独感,遇到问题解决不了,没有人沟通,工作容易被卡住。

所以氛围很重要,要打造学习型团队。提供分工,教练,合作,咨询,培训, 提升团队整体素质。

6.2.6. 最后

老生常谈,测试部门负责人的认知和格局天花板决定了测试团队的天花板,以及在自动化测试领域能走多远。