一、背景
bug是开发和测试质量的重要指标,从bug数量、严重性等可以看出RD的开发质量,从发现问题的阶段可以看出QA的测试意识和测试质量,从问题分类、问题来源等可以看出产品开发、测试质量的一些固有模式,帮助RD和QA提升开发和测试质量。总之窥一斑而见全豹,因此统计和分析bug十分有必要。
各端都将bug管理工作迁移到效率云,正好可以在客户端各端建立统一的规则,既便于各端的质量分析,又便于横向对比。
二、bug规范
Bug记录包含内容和tag两部分。
2.1 内容模板
bug描述——bug的直观简短的描述
登录信息——如果需要登录才能复现的bug,提供登录的账号和密码,可缺省
bug复现步骤——对于操作步长超过3的,且RD难以理解怎么复现的问题,提供复现问题的步骤。
预期结果——描述需求预期的结果,必要时辅以截图说明
实际结果——描述RD实现后的实际结果,必要时辅以截图说明
2.2 tag
tag部分包括以下几项(必填):
优先级——需要RD修复的紧急程度,是问题严重性和对测试block程度的综合考虑
严重级别——问题严重程度,可理解为被用户接受的程度
问题分类——描述问题本身的属性,是最直接、最直观的一个分类方式
问题发现阶段——描述QA发现问题的阶段,是评估QA测试质量的重要指标
问题引入方式——评估RD开发质量的重要指标
问题来源——比较粗放的一种分类方式,作一个大体的分类
解决结果——描述bug修复情况
发现版本——发现问题的版本,统一为x.x.x
修复版本——修复问题的版本,统一为x.x.x
2.3 重要说明
关于问题分类、问题发现阶段、问题引入方式、问题来源的设计思路,做如下说明:
问题分类,描述问题本身的属性,是最直接、最直观的一个分类方式,也是我们关注最多的一种分类方式,可选项如下:
序号 | 名称 | 描述 |
1 | NA逻辑实现问题 | NA逻辑实现错误 |
2 | Server逻辑实现问题 | Server逻辑实现错误 |
3 | NA和Server接口联调问题 | 接口名称、接口字段错误 |
4 | NA兼容性问题 | 与机型、系统有关的兼容问题 |
5 | 视觉和体验问题 | 文案、样式、交互细节问题 |
6 | 需求问题 | 需求不明确、临时需求撤换、变更 |
7 | 性能问题 | NA在流量、内存、CPU、电量等方面的问题 |
8 | 其他 | 不能归类为以上问题的问题 |
1-4一定是问题,是RD不能和QA argue的问题;
5,7是协商考虑是否接受和解决的问题(性能问题严重的不能接受);
6是在流程上要充分沟通和确认的问题,这部分容易引起RD的argue,会认为不是bug。
问题发现阶段描述QA发现问题的阶段,是评估QA测试质量的重要指标。可选项如下:
序号 | 名称 | 描述 |
1 | 新功能测试阶段 | 新功能测试阶段 |
2 | 集成测试阶段 | 新功能测试已完成,进入集成测试阶段 |
3 | 上线前冒烟测试阶段 | 新功能和系统集成测试已完成,进入 上线前的checklist检查的阶段 |
4 | 已上线阶段 | 已上线阶段 |
这里整体分为4个阶段,没有做更细的区分,是为了各端上都能统一,因为一些兼容性测试、回归测试等各端是灵活进行的。对QA而言,越早发现bug越好,最好95%的bug都在新功能测试阶段,而3在上线前的冒烟测试阶段发现问题则是比较危险的,这意味着很可能带着未知的bug上线,而4已上线阶段发现bug则是QA应该尽量避免的。
问题引入方式是评估RD开发质量的一个指标,可选项如下:
序号 | 名称 | 描述 |
1 | 历史遗留 | 历史遗留问题,在之前的版本中未解决 |
2 | 新功能导致老功能出问题 | 新老功能存在耦合,导致老功能出问题 |
3 | 修复bug引起问题 | 修复bug引起的问题 |
4 | 新功能出问题 | 新开发的功能本身有问题 |
5 | 重构与优化引起问题 | 重构或优化已有功能、模块引起问题 |
1越多,说明在之前的版本中开发和测试质量都不过关;2,3,5都考察RD在开发过程中对整体工程的把握,对代码之间耦合的理解。
问题来源是一个比较粗放的分类,可选项如下:
序号 | 名称 | 描述 |
1 | 脏数据问题 | 因为脏数据导致的问题 |
2 | 代码提交问题 | 代码提交不全、代码合并导致的问题 |
3 | 代码配置问题 | 配置错误、线上线下配置错乱等 |
4 | 逻辑实现问题 | 代码逻辑实现不到位 |
5 | 第三方问题 | 第三方库、资源、sdk等引起的问题,通常不可控 |
6 | 需求问题 | 需求理解、沟通不一致引起的问题 |
1-3是开发测试中应该尽量避免的问题,需要QA和RD做好几时的沟通,避免因为这类问题降低测试效率和测试质量。对于1-3类问题的界定,可以考虑由RD提供;5作为低频的、难以控制的问题,可以作为bad case积累;6是应该充分沟通,降低出现频率的问题。
解决结果描述bug的修复情况,可选项如下:
序号 | 名称 | 描述 |
1 | 已修复 | 问题已修复 |
2 | 不是Bug | 因为QA的理解错误,界定为bug,实际上不是bug |
3 | 以后修复 | 因为排期、优先级或者技术实现不可达,后续再修复 |
4 | 重复 | QA提了重复的bug |
5 | 无法复现 | bug真实存在过,但是难以复现 |
6 | 设计如此 | 虽然与需求不一致,但是PM认可这种实现,定义为设计如此 |
2,4是QA需要尽量避免的,这会给RD或PM质疑QA测试的专业性;对于5,QA应该在测试中关注并找到