近期面试过程中,经常被问到的问题,是通过什么手段去确保版本质量。 可能自身缺乏一定的基础积累,只能从有限的项目经验作答,个人感觉主要通过版本管理与一定的技术手段来保证: 一、版本管理
严格规范项目流程,每个迭代大概分以下几步:需求评审,设计复审,测试计划,测试案例评审,代码review,测试(冒烟、单元、集成、系统、性能、安全),回归测试,版本评审。 严格按照规范化的项目流程走,可以有条不紊地安排开发、测试计划,合理分配开发/测试人力、时间,是版本质量的制度保障二、技术手段 不同阶段可通过不同的技术手段来保障版本质量: 1)需求评审:并不是所有的业务需求都是合理的,都应该或适合你所在项目组来做。所以需要对业务、各个项目组的架构都有一定了解的基础上,提出合理意见。 2)设计复审:开发同事在深入理解业务背景、所要实现功能的前提下,需要考虑该功能上线的影响点、风险点,并考虑异常场景下的逻辑处理,提前考虑应急预案,通过开关、灰度发布等手段规避风险。 3)测试计划:针对风险点,对业务的理解,制定完善的测试计划,需要涵盖基本功能、前后端异常场景、性能、安全等多个维度。 4)灰度发布:新版本上线前,通过灰度发布的方式,提前生产验证。灰度环境同时可以作为线上环境的备用系统,当新版本一场,通过开关等手段无法降级、规避异常的情况下,在评估关联系统影响后,可考虑采用灰度布老代码、修改后的代码来解决问题。 5)容灾演练:通过不定期的容灾演练,检测系统架构的健壮性。检测系统在数据库连接异常、关联核心系统异常的情况下,系统基本功能的情况,来设计更合理的系统架构。
以上均本人拙见,期望大家不吝赐教,共同学习进步。 谢谢!
|