简单说,左移软件测试就是将开发周期看作从左到右的一条直线。在旧模式中,测试仅在这条直线的最右边发挥作用。认识到这一瓶颈,我们现在希望将测试的开始位置尽量左移。左移是在软件交付过程中尽早发现和防止缺陷的一种实践方法,目的是尽量在软件开发生命周期中尽早将测试任务左移,以提高产品质量。左移测试意味着在软件开发过程的早期阶段进行测试。
测试左移理论上的优点:
测试左移理论上的缺点:
局部的测试左移:
事中
事后
通过事前、事中、事后的方式,显著的提升确定性、提高质量,同时也能减少测试左移,研发的体感,避免工作量的转移
测试左移一定需要具有强大的自动化用例,通过稳定、准确、覆盖率高的自动化测试用例提高整体线下质量。这里涉及到服务端测试用例与客户端测试用例,目前根据业界自动化成熟度在服务端自动化要求会更加高,需要涉及绝大部分场景,客户端这块主要用于稳定性自动化与核心用例回归兜底
目前从行业内技术发展看,服务端的自动化技术已经较成熟,不管是接口测试还是引流自动化,服务端自动化具有几个优点
首先是服务端测试用例的提升,平台这块主要希望服用gotest接口测试平台,核心2个关键次:稳定、覆盖率高
最终期望 3分:服务端线下接口覆盖率达到95%,CI用例通过率95%;代码覆盖率:50% 5分:服务端线下接口覆盖率达到99%,CI用例通过率99%;代码覆盖率:60%;
服务端自动化长远方案:加强引流平台的建设,通过线上流量录制回放,并做好线上流量的用例、场景管理,进一步减少自动化用例成本
目前从行业内技术发展看,客户端的自动化技术相对还需要突破,行业内经常听说某团队维护几万的服务端自动化脚本,但是很少听说某团队维护超过1000以上的客户端脚本,客户端自动化具有以下特点:
客户端中短期方案:
瀑布流场景:
瀑布流场景用户操作简单,核心功能主要为上滑与下滑,自动化运行简单,可以通过UI自动化执行上滑下滑,然后通过截图,图像对比进行校验,成功率较高,即使是千人千面也可以通过mock规避相关个性化问题,因此后续涉及瀑布流场景建议UI自动化突破
自定义动态生成场景:
自定义动态下发场景,客户端最终的界面是通过服务端约定协议自动生成的,因此只要和客户端引擎、协议打通,最终的界面是确定的,UI自动化可以针对协议编写自动化脚本,稳定性方面可以极大的规避之前UI界面变动导致的成功率较低的问题
客户端是绝大部分功能上线交付消费者的中心节点,集中做好客户端的功能保障,在很大程度上能形成中心化的兜底,规避较多的重大问题。因此云音乐主要在测试用例三层兜底、版本流程发布管控上做了较大投入
云音乐客户端版本版本发布设定三层兜底,首先是P00用例,只出为最核心的关键用例集,只要在涉及到发布,包产物有变动,都需要执行一次关键核心用例集
然后是P0用例,大概1000条左右,按照正常冻结集成时间,一天内执行完,主要包含日常回归的主要用例,每个模块的主流程
最后是P1用例,大概3000条左右,主要包含每个模块其他额外的分支场景,该用例需要执行3天,且不需要考虑用户有修改代码,每次只执行一次
通过三层兜底,我们客户端实现了核心功能只要改动都做好了回归,分之场景一定周期也能做到全量回归,通过分级做到了成本与回归面的统一
通过版本发布的checklist流程化,保障每次包的发出,不会出现较大的问题,让每次包产物的变化得到性能、功能、埋点、稳定性等方面的验证
当前面所有的测试、兜底都完成后,还是会有问题泄漏,因此我们也需要有良好的问题发现能力,避免质量显著下降
我们希望重点项目上线前默认都是有监控的,带着监控上线的功能才更加具有确定性
服务端系统需要关注:
前端监控需要关注:
同时发布要分批次,并做好分批次监控观察
1、重点项目-关联标记(项目自定义标记,自定义流量标记x-proj-tag)
2、服务端链路监控告警区分:大前端请求API透传标记+网关请求流量打标+脚手架中间件透传标记+应用日志监控SDK上报流量标记+监控平台通过流量标记区分监控告警内容
3、客户端监控告警区分:大前端日志异常和崩溃上报带上业务自定义标记
监控的效果需要可被观测,因此分级的重要的报警都会被集中到中心化群里被所有人观测,提高处理者处理的压力和动力
以上就是我对测试左移的一些理解,也包含了挺多测试右移的思想。主要适用于风险适中的业务,对涉及资金类、电商核心流程等需要谨慎看待
更多岗位,可进入网易招聘官网查看 https://hr.163.com/