第一部分 软件测试基础
第 5 章 缺陷管理
本章要点:
● 了解Bug的分类,缺陷报告模板,以及提交缺陷的注意事项。
● 掌握缺陷的处理流程,常见的缺陷管理工具,Bugzilla的使用。
1. Bug的基本定义
软件的Bug指的是软件中(包括程序和文档)不符合用户需求的问题。判断一个Bug的唯一标准就是看其是否符合用户的需求。
2. Bug的分类:
2.1 按严重程度(Severity)划分
严重程度是指Bug对软件质量的破坏程度,即此Bug的存在将对软件的功能和性能产生怎样的影响。
可以分为5个等级:系统崩溃、严重、一般、次要、建议
可以分为3个等级:严重、一般、次要
2.2 按优先级(Priority)划分
优先级是表示处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先修正,那些缺陷可以稍后修正。
可以分为3个等级:高High,立即修复;中Middle,在产品发布之前修复;低Low,如果时间允许应该修复或可以暂时存在的Bug。
2.3 按测试种类划分
可以将Bug分为逻辑功能类(Function)、性能类(Performance)、界面类(UI)、易用性类(Usability)、兼容性类(Compatibility)。
有一种测试方法,就有一种对应的的Bug种类。按照测试种类划分Bug,可以使我们了解不同测试方法所能发现的Bug比例。
2.4 按功能模块划分
一般的软件产品都是分为若干功能模块的,测试的时候可以统计一下Bug主要集中在哪些模块里面,便于重点测试。
2.5 按Bug生命周期划分
Bug的生命周期:新建(New)、确认(Confirmed)、解决(Fixed)、关闭(Closed)、重新打开(Reopen)。
一个Bug由测试人员发现并提交——————————新建
开发人员接收了该Bug——————————————已分配(Assigned),表示确认
开发人员解决了该Bug——————————————解决
测试人员对该Bug进行回归测试,问题已解决————关闭
以前版本已经关闭的Bug在新版本中重新出现————重新打开
注1:Bug的严重程度和优先级从不同的侧面描述了软件缺陷对软件质量和最终用户的影响程度和处理方式。
注2:可以把2.3、2.4方法合在一起,把功能模块都作为逻辑功能类,对Bug的分类可以为:各种功能模块、性能类、界面类、易用性类、兼容性类。
3. 缺陷报告
在实际项目中,我们提交Bug时需要根据固定的模板,这个模板可以是Word、Excel或是缺陷管理工具自带的模板。
缺陷报告是测试人员的主要工作产品之一。缺陷报告的读者主要有两种,即开发人员和项目管理者。开发人员关注的是Bug的详细描述,即Bug的重现步骤;项目管理者主要关注Bug的概述和严重程度,关注整个系统中各种严重级别Bug的分布比例。
4. 提交缺陷报告的注意事项
4.1 确保重现Bug
对于严重程度较高的Bug,一般要重复测试两次以上;对于随机产生的Bug,要在其他机器上测试一下,看是否是自己机器的原因。
4.2 要用最少且必要的步骤描述Bug
使用最少且必要的步骤,是为了减少开发人员定位问题的时间。
4.3 简洁、准确、完整
测试人员在提交缺陷报告的时候,要站在开发人员的角度上思考问题,要确保开发人员拿到缺陷报告之后马上就能够定位问题,而不会产生理解上的歧义。以下是基本要求:
① 缺陷概述(Summary):简洁、准确、完整,揭示错误实质,最好使用陈述句,一般不超过15个字。
② 详细描述(Description):简洁、准确、完整,保证快速准确地重复错误,“简洁”即没有任何多余步骤,“准确”即步骤正确,“完整”即没有缺漏。
③ 尽量使用业界惯用的表达术语和表达方式(Term)。
④ 检查拼写错误和语法错误。
4.4 一个Bug一个报告
如果一个缺陷报告里面提交多个Bug,一不便于分配Bug,二不便于回归测试。
5. Bug的处理流程
6. 常见的缺陷管理工具
缺陷管理属于测试管理的范畴。测试管理工具一般都具备缺陷管理的功能,除此之外还有一种专门提供缺陷管理功能的工具。
具备缺陷管理的测试管理工具有:MI公司的TestDirector,IBM Rational公司的TestManager等。
专门提供缺陷管理功能的工具有:TrackRecord、Clearquest、Bugzilla、Mantis、JIRA等。
7. Bugzilla的介绍
Bugzilla是由Terry Weissman研制,用perl编写,后台数据库是MySQL,最初是用来在Netscape内部跟踪Bug的。
Bugzilla可以在Windows、MAC OS、Linux多种平台上运行。它的强大功能表现在以下几个方面:
① 强大的检索功能
② 用户可配置的通过Email公布Bug变更
③ 历史变更记录
④ 通过跟踪和描述处理Bug
⑤ 附件管理
⑥ 完备的产品分类方案和细致的安全策略
⑦ 安全的审核机制
⑧ 强大的后端数据库支持
⑨ Web、XML、Email和控制界面
⑩ 友好的网络用户界面
⑪ 丰富多样的配置设定
⑫ 版本间向下兼容