自动化用例的精准测试探索在当前web系统或app后端服务测试过程中,黑盒测试占据了大部分的测试,即便是接口测试,也是基于场景的用例设计,这种测试方法完全依赖于测试人员的能力,经验和业务熟悉度,而互联网行业的一大特点就是人员流动性高,这使得线上质量经常是“靠天吃饭”
基于黑盒的测试使的项目测试在测试过程中存在以下几个问题:(1)黑盒测试受主观人为因素影响太大:黑盒测试完全依赖测试人员的个人能力,经验和业务熟悉度,受主观因素影响太大,不确定性太多,这是产生漏测的根本原因
(2)测试覆盖面无客观数据可衡量:测试对代码覆盖程度,质量高低,没有客观数据可衡量,完全靠人为主观介定
虽然我们可以拿到全量或增量代码覆盖率数据(增量覆盖率一般需要运行2次全量用例),但对增量代码具体路径是否有覆盖,只能靠人工分析全量覆率报告,且无法区分哪些是原有代码,哪些是diff代码,在代码量稍微大点的项目中,测试排期基本上不允许这种测试方式,从而把测试人员推向黑盒测试,由于没有代码分析支撑,黑盒测试覆盖率随着时间和用例增多,便会触达覆盖率的天花板,更多的是重复的无效测试
(3)自动化用例作用无发有效发挥:对于web/api或app后端服务系统,测试人员对除手工测试外,尝试最多的测试手段改进就是接口自动化建设,但自动化建设很少有公司在这个方向做的特别好,投放产出比(ROI)特别高的,其根本原因就是自动化的一个核心指标:稳定性太差,随着项目的迭代,自动化用例积累越来越多,从几百到几千,想要这些自动化用例以CI级别触发(代码提交一次即触发一次),用例全部通过稳定在80%以上,几乎都是不太可能做到的事情
自动化用例稳定性太差,不能产生收益不说,反而会成为QA的包袱,使他们把大量的时间花在自动化用例失败排查上面,疲于应付,又不能发现有效的bug,久而久之,便对自动化失去信任,甚至废弃
问题分析与思路产品线后端服务是