思考一下,如何保证或保障线上质量?
首先,线上质量是什么?我理解线上质量就是系统可用性以及系统性能。可用性表示系统的功能可用,性能主要指影响到用户的体验,比如响应时间,页面渲染时间,卡顿等。
怎么衡量?
监控指标(业务监控,机器监控,卡顿,崩溃,顺畅度。总之,关注什么就收集什么。),线上bugleakage,故障。
怎么保障?
首先,保障质量不是测试自己的事情,是每一种角色都应该承担的事情。包括开发,产品,运营等。
如何让这些角色保障质量?
1.首先要让每个角色有质量的意识,重视质量,并且参与到质量保障中,也就是测试左移。具体的方法就是,开发自测,产品自测,提测时不合格要被打回,并且发reject邮件,说明原因。三次reject,就需要review,看下问题在哪儿。项目结束后,统计千行bug率,超过2.5的要进行review。线上bugleakage review,故障review。
2.其次要有完善的流程来保证。流程的存在是为了让只要照着这个流程做的人,尽可能的避免一些问题的发生。比如流程有需求评审,code review,自测,code diff,bug记录与跟进,发布站会,发布验收。
3.再者,要提供各种工具,环境,方便人员来进行测试。比如自动化工具,下单工具,测试环境,灰度环境,仿线上环境,堡垒机等等。
4.提高测试人员的能力。包括业务能力,技术能力,沟通能力,管理能力。提高其在流程的各个环节中的能力,发现问题与解决问题的能力。方法有很多,比如业务分享,好的测试方法分享,代码串读分享,项目总结思考,承担项目技术负责人角色,值班等。
5.保证线上服务高可用。容灾,核心功能优先保证。容灾包括:应用容灾(多服务,多机房,异地多活),数据容灾(数据库集群,redis集群,redis双写集群)。核心功能优先保证包括:资源隔离(dubbo线程池独立,数据库连接池独立,mq优先级提高,uri独立,dubbo接口独立),快速恢复(应用保证快速恢复,数据保证快速恢复),降低依赖影响(减少不必要依赖,依赖出问题后熔断降级)。
5.线上问题及时发现与快速降级与处理。完善而合理的监控报警接入发布平台,监控和报警,崩溃监控,故障自动发现与定位,卡顿收集,值班人员,值班群,问题反馈群,运营问题反馈群,故障处理流程等。快速降级包括,限流,熔断等。