1、为什么做自动化测试?
①为了保证质量吗?但是发现的BUG非常少
②为了提升效率吗?实际上每天的自动化用例会有很多误报,也许是环境问题、框架问题、数据问题、或者用例本身的原因;把问题排查重新运行起来很耗时,没起到提效的效果。
回到为什么做自动化的问题,大部分都是随大溜别人都做我也要做,另外汇报时自动化测试也成为体现技术含量的手段。自动化测试陷入为了做自动化而做自动化。
2、怎样保证自动化结果是全面的?
先有预期,自动化跑完了应该就不会有太大问题
回归测试跑完之后,上线应该是一个可以接受的状态
① 通过覆盖率度量,将测试结果量化,根据染色数据补充自动化case。
(染色:用例走过的代码是绿色,没有走过的代码是红色)
② 通过精准化测试衡量对下游的影响。
3、多版本测试问题
需要保证当前版本、低版本,如何搭建环境?
400多个微服务,低版本、当前版本、高版本都要支持,需要搭3套吗?
微服务虽然简洁高效,但随着微服务的逐渐庞大,很少有人能把所有服务都梳理清楚。
③灰度发布
灰度发布:灰度只部署需要的某几个微服务,需要做染色(给特殊的数据做标记)
④泳道
通过泳道技术解决多版本时的环境问题
泳道技术是一种用于管理多版本测试环境的有效方法。它的原理类似游泳时的泳道,将不同版本或功能的测试环境相互隔离,从而避免相互干扰。
通常有一个主泳道和多条次泳道。主泳道作为稳定的泳道,可以访问其他泳道的服务,而其他泳道相对不稳定。这样的结构有助于保证测试环境的整体稳定性。
4、如何快速定位线上问题?
由于服务太多,报错后无法知道是哪个服务/环节引起的,因此需要通过traceID将从上到下的请求串起来,找到报错的上游日志。
5、UI自动化
UI自动化不关注后端,仅关注前端页面显示是否正常。
①维护成本高
②兼容性测试难题
怎样保证在不同机型上页面显示是对的?缺少很好的图像对比技术。比如有一点显示不全、或者某个地方变大了,如何识别出来?无法解决。
6、测试中的阻碍有哪些?
① 环境问题、数据问题、联调/mock问题、自动化测试问题
2018年之后很少再提环境搭建问题,因为都在走Devops,自动构建环境。
② 需求变更、提测质量差、修改后引发新的问题,工作一年就会遇到的问题
7、引入质量保障体系
提效保量,保证下限、提高上限,提升研发效率、降低问题响应效率