前段时间看到,阿里的一篇关于团队质量体系建设的文章。
有人认为质量是测试需要保证的,需要测试同学进行兜底,这种想法是错误的。质量不是测试的问题,是整个产品研发中的问题。必须在研发流程阶段遵守质量规范,在需求评审,方案设计,研发,自测环节上都要有质量意识,严格执行质量规范。
质量的标准化
通过标准化各条业务线的研发流程,规范出一套标准化的项目流程,适用于所有业务线,从而使各条业务线都能够高质量的交付
质量体系的建设先要团队达成共识
1、“质量既是设计出来的,也是测试出来的,还是被逼出来的”,但质量一定不只是测出来的,质量保障不只是测试一种角色的责任,是贯穿研发流程各个角色共同的责任。
2、越早发现问题,项目的成本越低
3、研发要进行自测
4、测试方案需要取舍时间成本和质量结果,测试数据输入都是无法穷举的,因此测试是不能被穷举的。在有效的时间进行有效的测试。
详细的实施过程分为两种流程:
测试介入的项目环节如下:
需求评审->资源投入评估->技术方案设计评审->开发&联调&自测->测试方案评审 -> 功能预演->测试->发布计划评审-> 灰度-> 全量
开发自测的项目环节如下:
需求评审->资源投入评估->技术方案设计评审->开发&联调>自测-> 灰度-> 全量
以下详细阐述各个环节中的规范和要求:
1、需求阶段,在研发阶段常遇到的问题是,需求评审的时候忽略掉了需求点。如果实现需求,造成项目延期。
解决方案:1、不影响主流程的,下期优化 2、对主流程有影响的,重新设计评审
2、资源投入的评估
需求评审后,开发和测试需要进行投入资源的评估,包括开发时间、联调时间、测试时间、上线时间。开发成员、测试成员。
评估项目是开发自测,还是项目需要测试介入
衡量标准:提测的准确率;提测通过率;发布准点率
3、系统分析阶段,开发前需要技术设计方案的评审,架构师和leader必须参加,做好设计评审,是后续的工作开展事半功倍。技术设计方案只有通过后才能进入开发。
技术设计方案包含以下内容:
1、目标和背景
2、开发时间
3、系统间的交互时序图
4、数据库设计
5、接口设计
6、性能评估
7、兼容评估
8、灰度方案
9、系统监控
4、测试分析阶段,详细的测试方案和测试用例
一来可以让测试同学对本次需求的改动和风险了然于胸,
二来可以帮助开发梳理功能点和影响范围,
三来可以正式拉通三方(测试、开发、产品)对本次交付功能点的共识
测试方案设计要包含以下内容:
1、冒烟用例提供给开发
2、本需求的覆盖用例和功能点
3、关联服务的测试方案和时间节点
4、接口性能的分析
5、发布方案分析
6、用例的维护
5、开发&联调&自测
1、项目进入联调阶段后要有日报同步
2、联调前完成自测
3、遇到阻塞问题,及时预警
4、按照测试提供的冒烟用例,自测通过后提测
5、发布上线前,单元测试覆盖率60%以上,通过率100%
衡量标准:提测的准点率;提测通过率;自测bug率
6、功能预演阶段,提测前开发需要进行功能预演,保障主流程是通常的,测试有更多的精力在反向流程中。
1、预演前完成联调和开发自测
2、预演通过后,测试介入
3、预演出现的BUG,开发推动解决
7、测试阶段
1、每天的测试日报,日报内容:
下个里程碑
主要进度和问题
风险点
明日计划
8、发布计划评审
多场景在预发验收的时候没有问题,一发到线上发现这些场景就走不通了,经过一番排查发现原因是:topic 没有配置、配置开关没有打开、定时任务没有配置等。大项目发布前要进行发布计划方案评审。
主要包含以下内容:
1、发布范围,应用的范围;上线的顺序
2、资源梳理,数据库资源、接口资源、消息队列、任务调度、配置资源等
3、灰度计划
4、回归计划
5、线上监控计划
6、风险点和注意事项
9、项目回归,组织项目复盘,不断的改进机制和改善研发流程,解决当下的问题