我在前面两篇文章中对缺陷管理的流程,缺陷的处理的优先级做了介绍:
《从0到1创建高效的产品缺陷管理流程(1):缺陷是什么? 如何建立缺陷管理流程?》
《从0到1创建高效的产品缺陷管理流程(2):如何设置合理的Bug处理优先级》
之前的两篇文章更多是在理论层面进行比较多的探讨。 在第三篇文章中,我要介绍如何选择一款Bug管理工具。Bug管理工具可以说是将之前的管理策略与流程结合在日常工作中的一套系统,缺陷管理团队每天会有相当的一部分时间花费在此套系统中。
一. 常见的Bug管理工具类型
1. Office系列办公软件
10多年前,国内还没有较为专业的bug管理工具之前。好一点的团队会用excel或者word文档来记录和管理缺陷问题。当然,现在依然有团队还在使用这些工具进行bug管理。用excel或者word文档来进行管理的好处是上手容易,因为大部分成员都已经会使用。另外就是本地操作,速度快,便捷。
但是Office系列办公软件在做Bug管理时有很多严重的不足:
无法协同管理:Office本地文件是无法多人操作的,也就造成一个团队成员修改了缺陷的处理状态和信息,其他成员难以获得信息同步。当然,现在的office 365已经可以进行在线协作,对这个问题有了一定的弥补。但是在字段权限,协同信息通知和操作记录上还是比较弱,不太适合多人团队共同使用管理缺陷流程。
缺乏流程管理:无法在office系列软件中设置处理流程,可能导致缺陷的处理操作与企业流程不符,造成管理问题。
本地服务器部署的Bug管理工具
Jira, Bugzilla等是比较有代表的本地化部署的Bug管理工具,这些软件存在的历史比较久远,经过了很多迭代目前来说功能是比较齐全的,另外本地化部署也适合那些对于数据安全级别较高的企业。但本地化部署的工具软件有一些通病。
安装比较麻烦:当然,这个因人而异。需要找服务器,执行安装命令和系统配置。但考虑安全问题,还要做SSL, 定期备份/漏洞修复等工作。
升级问题:本地服务器部署的软件在升级时经常出现问题,可能是自定义文件,服务器配置等。很多团队觉得升级麻烦,干脆不升级,导致系统版本过来,新功能和优化无法使用,以及出现安全漏洞问题。
2. 云服务器SaaS版本
随着云服务器的普及,SaaS云端版本的缺陷管理工具越来越多。其最大的优点就是无需部署,注册后就可以使用了。无需维护,自动使用最新的版本。云端版的Bug管理工具优点很多,但是很多企业有顾虑,并不愿意使用SaaS版本的软件。
我的团队曾开发了一款免费的云端版本的缺陷管理软件Bugout (bugout2.testin.cn), 在推广之前认为云端无需安装,注册即可使用是产品的一个优势。但是,在与许多用户沟通之后,发现其实国内的企业对于把数据(还不是什么关键数据)放在别的企业的服务器中有很多顾虑。后来也就不再特别宣传什么无需安装,云端这样的卖点了。
二. Bug管理工具的核心功能点
在考虑完哪种类型的Bug管理工具适合, 下面需要考虑团队的需求,以及功能点与团队的需求是否符合。由于本人带团队开发Bugout这款产品,因此在开发和迭代的过程中对比的国内外竞品有20多家。产品上线后2个月内, 自己回访了大概100多位用户。对于Bug管理的核心功能,大致可以分为以下三类:
1. Bug问题收集
如果您的团队只处理来自内部成员上报的缺陷问题,那么可以不用太多考虑这个功能点,因为随便一个Bug管理工具都有新建Bug这种功能。但是,如果您的团队希望快速收集到来自外部用户的bug问题,那么这个功能点会直接影响到Bug处理流程的效率。
(1)主动收集来自外部用户的反馈问题
允许外部用户主动上报问题反馈到Bug管理工具中,例如通过反馈按钮,表单,邮件,手机摇一摇,App截屏等尽可能多的方式反馈。让用户反馈问题更方便。
(2)自动收集来自外部用户的反馈问题
在用户使用产品的过程中出现问题后自动反馈到Bug管理中,例如网站文件报错,App崩溃/闪退,App卡顿/无响应等。
支持多种不同设备与系统是否收集不同设备和系统的缺陷问题,比如是否能够支持App,web/H5网站,微信小程序等;
收集设备信息和错误代码在上报问题是能够上报用户的设备信息,浏览器版本,屏幕尺寸,错误代码,日志,堆栈信息,错误步骤等信息,将大大提升测试与开发成员复现问题,定位问题原因,提升工作效率。
2. Bug分配与跟进功能
将Bug问题快速合理的分配给指定团队成员进行处理,并且跟进Bug问题直至完全解决,是一款Bug工具中必不可少的流程环节。在这个环节中,需要考虑的功能点包括:
团队成员角色与权限设置:团队管理员的权限,测试人员的权限,开发人员的权限,团队外部成员的权限。谁可以创建bug, 谁可以将bug删除,谁有权限将确认Bug已完成等等。
Bug管理的相关字段一款Bug管理工具应该设置有符合一般Bug管理流程的字段,例如:创建人,跟进人,负责人,出现bug的产品模块,子模块等,我在《从0到1创建高效的产品缺陷管理流程(1):缺陷是什么? 如何建立缺陷管理流程?》中有罗列一些字段可供参考。
灵活的自定义设置:大多数情况下,每个公司或者团队都有一些自己额外的自定义设置,比如设置一个字段,设置测试版本。灵活的自定义设置让工具更符合团队的使用需要。
Bug处理流程设置:一款好的Bug管理工具应该符合团队的Bug处理流程,并保障Bug工具的操作者可以按照制定的流程进行操作。 比如Bug状态的流程设置:如果当前一个Bug的状态如果是“等待验收”,则操作者在修改Bug状态是只能选择“验收完毕等待上线” 或者 “验收失败重新开启”,而不能选择“新建”,“开启”等不符合处理流程的Bug状态。这个功能很多Bug工具都忽略掉了,但是对于团队来说却是十分重要的,比较人工操作错误是难以避免的。我们在设计Bugout这款缺陷管理工具时,特别设置一个“自动化流程”功能,通过字段条件自动执行流程,以减少人工操作带来的错误。
Bug跟进提醒提醒功能在任务分配给成员后提醒成员,也可以提醒任务的关注者,不错过重要的Bug跟进信息。也可以在不符合正常操作的时候发送提醒给管理团队,及时纠正错误问题。
Bug变更记录
变更记录也是一条Bug的全部处理记录,因为Bug的处理可能经过多个成员操作,通过变更记录可以让成员之间了解的Bug状态的变化,减少沟通成本。
3. Bug问题定位与解决
比较常见的情况是Bug工具可能有测试团队或和开发团队共同操作,测试团队收集,复现,定位Bug,而开发团队则负责解决Bug并反馈给测试成员处理进度,等待测试团队测试验收,最后上线。因此好的Bug管理工具应该符合这两个团队的需求:
Bug复现与定位:通过收集到错误代码,设备信息等数据可以帮助测试团队复现和定位问题。但是,有时测试团队需要使用一些浏览器或者手机设备才能够模拟用户的使用环境。因此,在设计Bugout产品时,我们设置一个独特的功能点就是与Testin云测平台上数千款真机设备联通以解决此需求。
Bug解决:一般开发团队需要使用其他的开发工具来解决代码问题,比如Jira,Git等,因此一个好的Bug管理工具应该与开发者工具直接有较好的集成功能,以满足数据同步问题。4 数据报告功能
最终众多Bug处理完成后团队需要有数据支撑,以及时的发现问题,解决问题,改进Bug管理流程。同时,可以很好的衡量团队工作成果,工作进度,检测产品各个模块的缺陷变化趋势等。
因此,一款好的Bug管理工具应该有多种维度的数据报告,以满足团队的需要。
三. 结语
工具固然重要,如果团队不能养成使用工具的习惯,或者不能正确的使用工具,则会大大减低bug管理工具的价值。因此,不能只重视工具,而忽略使用工具的团队成员。团队的管理者应该不断的通过培训,总结,实例讲解,让团队成员提升使用工具的能力和知识,培养一种持续改进的团队文化。
相关阅读
从0到1创建高效的产品缺陷管理流程(1):缺陷是什么? 如何建立缺陷管理流程?
从0到1创建高效的产品缺陷管理流程(2):如何设置合理的Bug处理优先级