在软件缺陷的处理过程中,测试人员需要进行软件缺陷跟踪,这就要求测试人员掌握软件缺陷跟踪系统的使用和软件缺陷跟踪的方法,以及图表的制作方法。
软件缺陷跟踪管理是测试工作的一个重要部分。测试的目的是尽早发现软件系统中所存在的缺陷,而对软件缺陷进行跟踪管理的目的是确保每个被发现的缺陷都及时得到处理。软件测试是围绕缺陷进行的,对缺陷的跟踪管理一般需要达到以下目标。
(1)确保每个被发现的缺陷都能够被解决。“解决”的意思不一定是修正,也可能是其他处理方式(如延迟到下一个版本中修正或者由于技术原因不能被修正)。总之,对每个被发现的缺陷的处理方式必须能够在开发组织中达成一致。
(2)收集缺陷数据并根据缺陷趋势曲线识别测试所处阶段。
(3)决定测试过程是否可以结束。通过缺陷趋势曲线来确定测试过程是否可以结束是常用并且较为有效的一种方式。
(4)收集缺陷数据并对其进行数据分析,作为组织过程改进的财富。
上述的第(1)条容易受到重视,第(2)(3)(4)条目标却很容易被忽视。其实,在一个运行良好的组织中,缺陷数据的收集和分析是很重要的,从缺陷数据中可以得到很多与软件质量改进相关的数据。
软件缺陷跟踪系统
在实际软件测试中还需要用到软件缺陷跟踪管理系统,以便描述报告所发现的缺陷、处理软件缺陷、跟踪软件缺陷和生成软件缺陷跟踪图表等。建立一套软件缺陷跟踪系统的意义如下:
(1)软件缺陷跟踪系统中的软件缺陷跟踪数据库,不仅可以清楚地描述软件缺陷,还能提供统一的、标准化的软件缺陷报告,这样就可以使所有人员对软件缺陷的理解保持一致。
(2)缺陷跟踪数据库可以自动生成软件缺陷的编号,还有分析和统计的选项,这是手工方法无法实现的。
(3)在缺陷跟踪数据库的基础上,可快速生成必要的、满足查询条件的缺陷报表、曲线图等,测试小组、开发小组甚至公司的高层都可以随时掌握软件产品质量的整体状况或软件测试/开发的进度。
(4)缺陷跟踪数据库还提供了软件缺陷属性并允许开发小组的成员根据缺陷对项目的相对和绝对重要性来进行软件缺陷的修复。
(5)在软件缺陷生命周期中利用缺陷跟踪系统来管理软件缺陷,从最初的报告到最后的解决,确保了每一个缺陷都不会被忽视。同时,它还可以使测试人员的注意力集中在那些务必尽快修复的严重缺陷上。
(6)当软件缺陷在其生命周期中发生变化时,开发人员、测试人员以及管理人员必须迅速熟悉新的软件缺陷信息。一个良好的软件缺陷跟踪系统可以很快地获取历史记录,并在检查缺陷的状态时参考历史记录。
(7)在软件缺陷跟踪数据库中关闭任何一份软件缺陷报告,都可以被记录下来。当产品送出去时,每一份未关闭的软件缺陷报告都提供了有效的技术支持,并且证明测试人员找到了特殊领域突然出现的事件中的软件缺陷。
对于项目管理,缺陷跟踪是很重要的一个环节,它除了可以对需求的完成度进行控制,还可以对软件本身的质量进行控制,从而保证软件开发迭代的顺利进行。
以前软件项目开发中的缺陷跟踪都是通过Excel表格的形式来完成的,利用这种表格虽然也可以进行项目管理和项目执行度的交互,但效率与实时性不高,也不好维护和统计,因此就出现了缺陷跟踪系统,通过软件技术来解决软件项目的管理问题。
目前缺陷跟踪系统比较多,比较有名的如Mercury的TestDirector/QualityCenter、IBM的ClearQuest、Atlassian的Jira、易软开源小组的BugFree、Seapine的TestTrack以及本文将要重点介绍的Bugzilla和Mantis,如下图所示。
软件缺陷管理工具
1.Bugzilla缺陷跟踪系统
Bugzilla是Mozilla公司提供的一个开源软件测试缺陷管理工具,其主界面如下图所示。它具有完善的缺陷跟踪体系,包括报告缺陷、查询缺陷记录并产生报表、处理解决、管理员系统初始化和设置四部分。
Bugzilla系统主界面
(1)Bugzilla的特点
Bugzilla具有以下几个特点。
①基于Web方式,安装简单,运行方便快捷,管理安全。
②有利于缺陷的清楚传达。
③系统灵活,强大的可配置能力。
④自动发送E-mail,通知相关人员。
(2)Bugzilla新建账号
下面介绍如何新建一个Bugzilla账号。
①单击“NewAccount”链接,输入E-mail地址(如:×××
office)然后单击“CreateAccount”按钮。②稍后,该邮箱会收到一封邮件。邮件包含登录账号(与E-mail地址相同)和口令,这个口令是Bugzilla系统随机生成的,可以根据需要进行更改。
③在页面中单击“LogIn”链接,然后输入账号和口令。最后单击“Login”按钮。
(3)缺陷报告状态分类和缺陷处理意见
缺陷报告状态分类:待确认的(Unconfirmed)、新提交的(New)、未解决的(Reopened)、已解决的(Resolved)、已验证的(Verified)、已关闭的(Closed)。
缺陷处理意见:已修改(Fixed)、不是问题(Invalid)、不修改(Wontfix)、以后版本解决(Later)、保留(Remind)、重复(Duplicate)、需要更多信息(Worksforme)。缺陷的状态和处理意见如下表所示。
状态和处理意见
(4)填写项目
指定处理人(AssignedTo):可以指定一个人处理,如不指定处理人,系统就会默认管理员为处理人。
超链接(URL):输入超链接地址,引导处理人找到与软件缺陷报告相关联的信息。
概述(Summarize):应该保证处理人在阅读时能够明白提交者在进行何种操作时发现了什么样的问题。如果是通用组件部分的测试,则必须将这一通用组件对应的功能名称写入概述,从而方便日后的查询。
硬件平台和操作系统(PlatformandOS):测试所需要的硬件平台(一般会选择PC)和测试应用的操作系统。
版本(Version):产生缺陷的软件版本。
缺陷报告优先级(Priority):分四个等级,即P1—P4,P1的优先级别最高,然后逐级递减。
缺陷状态(Severity):Blocker,阻碍开发和/或测试工作;Critical,死机,丢失数据,内存溢出;Major,较大的功能缺陷;Normal,普通的功能缺陷;Minor,较轻的功能缺陷;Trivial,产品外观上的问题或一些不影响使用的小毛病,如菜单或对话框中的文字拼写或字体问题等;Enhancement,建议或意见。
报告人(Reporter):缺陷报告提交者的账号。
邮件抄送列表(CCList):缺陷报告抄送对象。此项可以不填写,如果需抄送多位收件人,可将收件人地址用“,”隔开。
从属关系(Affiliation):Bug“ID”dependson,如果某缺陷必须在其他缺陷修改之后才能进行修改,则在此项目后填写该缺陷的编号;Bug“ID”blocks,如果该缺陷的存在影响了其他缺陷的修改,则在此项目后填写被影响的缺陷的编号。
附加描述(AdditionalComments):在缺陷跟踪的过程中测试人员与开发人员通过附加描述进行沟通,开发人员可以在这里填写缺陷处理记录和缺陷处理意见,测试人员可以在此处填写返测意见以及对在返测的过程中发现的新问题的描述。
缺陷查找:可以通过页脚中的“Query”链接进入查找界面,根据查找的需求在界面中输入关键字或选择对象。查找功能可以进行字符、字符串的匹配查找,并且具有布尔逻辑的检索功能。
在一定的权限下,还可以通过在查找页面中选择“Rememberthisasmydefaultquery”对当前检索页面中设定的项目进行保存,以后就可以直接从页脚中的“Mybugs”中调用这个项目来进行检索。
还可以在“Rememberthisquery,andnameit:”后面输入字符,为当前检索页面中所设定的项目命名,同时选中“andputitinmypagefooter”,则以后这个被命名的检索就会出现在页脚中。
缺陷列表:如果运行了缺陷检索功能,系统则会根据需要列出相关的项目。可以通过列表页脚处的“ChangeColumns”设定在列表中显示的缺陷记录中的字段名称。如果拥有一定的权限,还可以通过“Changeseveralbugs”对列表中所列出的缺陷记录进行修改,例如,修改缺陷的所有者。
通过“Sendmailtobugowners”可以向列表中列出的缺陷记录的所有者发送信息。如果对查找出的结果并不满意,希望更改检索设定,可以通过“Editthisquery”完成。一般情况下,检索出的结果仅显示基本信息,可以通过“LongFormat”来查看更为详细的内容。
(5)用户属性设置
①账号设置(AccountSettings):可以变更自己账号的基本信息,如真实姓名、口令、E-mail地址。但为安全起见,在此页进行任何信息更改之前都必须输入当前的口令。当更改了E-mail地址,系统会给新旧E-mail地址分别发送一封E-mail地址更改确认邮件,用户必须到邮件中指定的地址对更改进行确认。
②E-mail设置(E-mailSettings):可以在此选择希望在什么条件下收到哪些与自己相关的邮件。
③页脚(PageFooter):设定“PresetQueries”是否在页脚中显示。
④用户权限(UserPermissions):可以查看自己账号当前所拥有的权限种类。
2.Mantis缺陷跟踪系统
Mantis缺陷跟踪系统是一个基于PHP技术的轻量级开源缺陷跟踪系统,在功能、实用性上可以满足中小型项目的管理及跟踪需求。
(1)Mantis的基本特性
Mantis具有以下基本特性。
①个人可定制E-mail通知功能。每个用户可依据自身的特点只订阅与自己相关的缺陷状态邮件。
②支持多项目、多语言。
③不同角色有不同权限,权限设置十分灵活。每个项目以及缺陷都可将权限设置为公开或私有,每个缺陷也可以在不同的项目之间进行移动。
④方便信息的传播。在主页可以发布与项目相关的新闻。
⑤具备缺陷关联功能。除重复缺陷外,每个缺陷都可以链接到与其相关的缺陷。
⑥缺陷报告可打印或输出为CSV格式,支持可定制的报表输出、用户输入域。
⑦提供各种缺陷的趋势图和柱状图,为项目状态分析提供重要依据。如果还是不能满足需求,还可以把数据输出到Excel中进行进一步的分析。
⑧流程定制十分方便并且符合标准,满足一般的缺陷跟踪需求。
(2)Mantis的安装步骤
安装之前需要下载安装包mantis0.19.2、mysql3.1.8、PHP5.0.3、apache2.0.52。Mantis系统主界面如下图所示。
Mantis系统主界面
安装下载的软件,假设各软件的安装目录为C:\mantis-0.19.2、C:\mysql-3.1.8、C:\php-5.0.3、C:\apache-2.0.52。
下载ZIP版的程序,直接解压到一个目录。如果没有ZIP版,下载WindowsInstaller版本。
①安装Apache。
运行安装程序,安装时选择安装给当前用户,采用端口,不必安装成服务。
假设在Windows下安装,运行C:\apache-2.0.52\bin\apache.exe,在IE地址栏输入