自动化测试如何破局?

2022-03-14 10:00:00
netkiller
转贴:
知乎
2566
摘要:十年前我曾经写过关于自动化测试为什么难以普及的文章,时隔十年,都2021年了,自动化软件测试普及程度跟10几年前情况差不错。究竟问题出在哪里呢?

自动化测试如何破局?

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

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

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

问及为什呢自动化测试流于形式?实施自动化测试最终摆脱不了失败厄运,会不了了之。

每个人都给出无数理由,在我看来是无数借口。

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

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

难道无法实现自动化为主,人工为辅吗?

此前我在一直在外企工作, 为什么外企能做到自动化为主的测试呢? 我认为有一下几点:

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

认知问题

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

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

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

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

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

人工测试前首先要通过自动化测试,这样可以避免盲目测试。

也就是人工测试走了大部份流程后才发现往下走不通了,此时已经浪费了时间,为什么不让自动化程序去发现问题呢?

生态的问题

在国内包括大厂,软件自动化测试处于很低的水平,测试人员水平也相对低于其他团队,例如开发和运维。为什么 DevOps(运维自动化)在国内能风生水起?因为DevOps 在为企业创造价值。

DevOps 降低了IT成本,解决企业面临的众多IT痛点。 管理层重视程度,管理层能力,管理层认知都决定最终结果。

管理层重视自动化测试,但是能力又无法推动。

招聘也存在问题,管理层的认知天花板决定他招聘进来的员工天花板。

即一流人才做面试官,只能招聘到二流人才,二流面试官,只能招聘来三流人才,以此类推。

最终一个乌合之众的测试团队被攒出来。

技术的问题

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

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

能力问题

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

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

自驱力,外驱力,环境因素。

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

氛围问题

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

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

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

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

老生常谈

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

发表评论
评论通过审核后显示。
联系我们
  • 联系人:阿道
  • 联系方式: 17762006160
  • 地址:青岛市黄岛区长江西路118号青铁广场18楼