作为一个软件测试工程师,对缺陷管理工具(缺陷:Bug)的认识和准确操作是有所必要的,缺陷管理工具现在行业中有很多:禅道、QC、Clear Quest、TestLink、Bugfree、Bugzilla、Jira等。本文选择根据禅道带大家认识Bug处理流程以及Bug的相关属性:Bug标题、重现步骤、Bug类型、Bug严重程度、Bug优先级、Bug来源、Bug根因等重大属性。
打开缺陷管理工具——禅道,软件测试工程师选择在“测试”视图页,选择好测试项目后,点击“Bug”,会看到测试流程状态:指派给我、由我创建、由我解决、未指派、未解决、未关闭、久未处理、被延期、需求变动等。
针对测试工程师的Bug状态:激活中、已解决、已关闭等。
针对开发工程师的Bug解决方案:已解决、延期处理、重复Bug、外部原因、无法重现、不予解决、设计如此等。
根据状态,我们来熟悉下Bug处理流程(即:缺陷生命周期)。
Bug处理流程(Bug的生命周期):
在Bug处理过程中,项目中不同的角色应该关注的相应状态与处理态度不一样。
针对开发工程师,应关注测试工程师所置状态:new、reopen、closed。new:开发工程师要对激活状态的Bug进行处理,根据处理过程,将其状态置为rejected、open、fixed以及“已解决”、“延期处理”、“重复Bug”、“外部原因”、“无法重现”、“不予解决”、“设计如此”等;reopen:重新打开的Bug是经过处理修改后的Bug通过测试工程师返测后表明没有修改正常,进而需要继续做相应的修改;closed:表明修改Bug成功,无缺陷。
针对测试工程师,应关注开发工程师所置状态:rejected、open、fixed以及“已解决”、“延期处理”、“重复Bug”、“无法重现”、“外部原因”、“不予解决”、“设计如此”等,根据不同状态做出响应反馈操作。特别说明下,对于开发工程师说明由于外部原因、设计如此,甚至不予解决的Bug,要及时决策通知到项目经理那里,由项目经理来决定修改与否。
禅道缺陷管理工具中,从测试人员界面可以很清楚的知道Bug的相关属性:产品模块、所属项目、影响版本、当前指派、Bug标题、重现步骤、相关需求、相关任务、缺陷类型、缺陷严重程度、缺陷优先级、缺陷来源、缺陷根因、系统/浏览器、抄送、关键词、附件。
测试出的Bug所在的系统模块,如:职工管理系统 — 系统设置。
测试的软件产品所属的项目名称。
当前的测试版本。如:Trunk。
当清楚该产品模块是哪个开发人员的情况下,直接指派到相应的开发人员;不清楚时,则直接指派给开发经理,由开发经理进一步分配指派。
Bug标题的确定,以产品模块 + 问题的简要描述。如:职工登录界面——登录出现问题,错误账号或密码也能登录。
从重现操作步骤、操作结果以及预期期望等3个方面去重现Bug。部分Bug能够容易的重现,但部分Bug则需要通过截图、打断点、日志、抓取网络包等去捕获有助于重现Bug的信息,尽可能的为Bug所属产品模块的开发工程师提供有效信息。在重现Bug描述过程中,应该精准定位Bug、准确列出操作的所有步骤、准确解释必须条件,甚至列举出示例。
尽量排除无效的Bug,避免误报Bug。考虑Bug是不是程序所引起的?Bug征兆是不是假象?是不是网络问题导致数据不能连接?是不是应用软件的配置错误而导致数据不能连接?是不是外部特殊原因引起的问题?等方面去考虑,尽可能缩小出错的范围。
根据测试的Bug,明确其类型,便于问题类型的统计、项目的总结。点击禅道的“缺陷类型”下拉菜单,可以列举出以下的缺陷类型:
不同的公司划分的缺陷严重程度不同,大致划分为3-5个级别,具体的等级划分可灵活调整。现在按照个人所处的环境进行5类划分,大致如下:
严重级别:轻微 |
---|
增加用户使用体验的建议性问题 |
风格不统一,例如:相近流程的页面布局不统一、相同问题点的提示信息不一致,但对用户的操作习惯或操作方法不会造成影响 |
对齐方式不一致,例如:文字对齐以及页面挂列项不一致 |
界面错误,例如:显示格式不规范、页面描述显示错误、字体错误等 |
长时间操作的功能未给用户进度提示 |
按钮或标签上有拼写错误的字符,例如:汉字、单词、字母等错误拼写 |
错误定位及信息提示不准确,例如:出错后前台后台的信息提示错误、错误判断的顺序、错误出现的光标定位等 |
严重级别:一般 |
---|
业务流程对应的功能未实现,但在不影响实际使用的前提下有替代方法解决 |
简单业务的功能实现错误,例如:默认显示内容的错误、辅助说明描述不清楚、查询匹配的错误、查询列表初始查询条件的错误等 |
页面输入限制错误,例如:文本框输入长度以及字符的限制错误、文件图片上传格式大小的限制错误,以及特殊输入要求判断的错误等 |
日期和时间初始值错误,以及业务操作流程先后时间判断的错误 |
严重级别:严重 |
---|
业务流程的功能未实现,但不影响到系统稳定性 |
操作正确性不受影响,但影响到系统性能和响应时间 |
功能实现与需求不一致,但影响流程中其他模块 |
数据库建库或升级的脚本错误,丢失相关表或字段,影响系统正常运行 |
存储过程不能正常执行对应的设计功能 |
性能测试过程中,大数据量和并发压力大时,系统处理缓慢、网络异常以及少量数据丢失(低于0.5%)等情况 |
严重级别:非常严重 |
---|
系统中未实现相应需求,以及密码明文显示 |
业务流程对应的功能未实现,且无任何替代方法 |
数据连接未释放,以及与其它模块接口的调用错误 |
产生错误的结果,进而致使系统不稳定 |
页面出现编译错误,甚至404页面 |
性能测试过程中,大数据量和并发压力大时,系统停止处理,甚至大量数据丢失(大于0.5%)等情况 |
严重级别:致命 |
---|
功能设计与需求设计严重不符 |
主流程无法跑通,系统无法正常运行 |
正常的用户操作流程,导致系统崩溃或者严重资源不足 |
内存泄漏,数据泄漏的安全性问题 |
应用模块无法启动或者非法退出 |
致使通讯中断 |
循环报错,使得无法正常退出 |
缺陷严重程度和缺陷优先级是2个含义不同但又密切联系的概念,分别从不同方面去描述软件缺陷对软件质量和最终用户的影响程序和处理方式。缺陷的严重程度与缺陷优先级不一定是一一对等。
有需求、设计、编码、测试、集成、用户、其他等7个方面。
有需求、设计、编码等3个方面。
操作系统(OS,Operating System),基本上是所有软件产品必须依赖的。软件所需求的操作可能存在差异,则需要针对性的设计开发。有如下操作系统:Windows、Linux、Unix、MAC、CentOS linux以及相应的不同版本。
B/S(Browser/Server,浏览器/服务器结构),在互联网产品中,浏览器的兼容性显得十分重要,不同浏览器之间(IE、Firefox、Chrome、Opera、Safari等以及相应不同的版本)都可能存在兼容性问题,所以浏览器环境也是Bug重现的前提条件之一。
根据项目情况,选择抄送。
提炼出该Bug的几个重要关键词,以便后期查询、验证。
重要的日志、文件、截图包等选择性的以附件提交,有助于开发工程师重现Bug。