软件测试及Bug管理经验谈
 

2009-02-26 来源:网络

 

1、写在前面的话

本人从事软件工作多年,对如何作测试、如何管理Bug上有一些体会和想法;正好看到网上关于这方面的讨论较多,不妨简单地写出来。本文就测试工作的组织及工具的选用介绍一下主要的思路,供大家参考。

2、如何作好软件测试

(1)清晰的质量概念

常言道没有规矩不成方圆,产品交到您手上,各方面质量标准您要心中有数。安装卸装、功能性能、用户界面、出错与恢复......等等,您可列出大纲式的CheckList,不一定很详细但一定要全。

不同的开发队伍,规范化水平不同,他们不一定能提交完善的规格书、品质书,如果您自己也没有这个概念,测试中就容易疏漏很多东西。比如,界面上的Button大小、用词、字体、颜色等有规范吗?页面响应时间呢?总之,您要让人家明白,您对这些方面是有要求的。

(2)善作计划

按照CheckList,要测试的东西真的是很多,但人力、时间等资源是有限的,您需要考虑重要性、优先级等因素,作一个测试计划。确定测试内容是重要的,确定哪些不测或暂缓测试、同样也是重要的。针对需要测的内容,安排测试环境、人员、时间等,这些大的方面要与上司、相关人员讨论清楚,获得他们的支持。接下来再细化大的Check点,形成详细的测试方案。

(3)明确进入退出标准

需要明确进行测试所必须具备的条件,如:测试环境、送测产品的媒介形式、文档等。如果达不到基本要求可明确地提出来,暂时退出直到问题得到解决,否则很浪费大家时间的。如:环境不具备、根本就安装不上、有大量严重错误等。

(4)对测试人员的要求

逻辑思维要强,说到底,测试就是一种逻辑覆盖,要用尽量少的测试实例覆盖尽量多的逻辑,这就是效率。细心很重要,在每一个测试点,您需要静下来好好想想,还有哪些可能的情况?细心一定会给您带来高产量的Bug的。

(5)关于自动测试工具

任何工具都是在人的安排下发挥作用,您自己如何测永远是第一位的。一般说来,自动测试工具只能在压力、容量等某些性能领域发挥作用,其他绝大部分需要的是勤奋和智慧。

(6)不断积累、持续改善

您无论多么出色还是会漏掉Bug,您需要有一个方法能够不断地、持续地改善。分析总结原因、不断完善测试计划、测试方法等,并用文档整理出来,您的基础就会越垫越厚,工作越来越有效。

(7)明确自己的责任

作为测试人员,您的任务就是找出缺陷、及时清晰的汇报给相关人员,让管理者清楚产品的质量状况。有时,您测出的问题他们决定不改,或者您认为没达到Release标准他们决定Release,这是可能的。影响一个决定的因素是多方面的,有经费、市场、策略、质量等,虽然测试通常是产品开发的最后一关,但我还没有见过测试人员决定一切的。

3、Bug管理的作用层次

软件开发的重点已经从技术转到管理与质量控制上了,如何按时做出符合质量的产品是我们最大的挑战,测试工作在开发过程中占据相当大的份额,Bug管理的作用可想而知。其作用基本上分以下几个层次。

(1)备忘与沟通

备忘是一个Bug管理系统最朴素、最基本的作用,好记性不如烂笔头,道理就这么简单。您什么时候测出了Bug、怎么测的、当时环境怎样,开发人员解决了没有、什么时候解决的、如何解决的,需要及时记录下来;问题一多,您靠记忆是记不住的。没有遗漏地记下所有问题点并确保适当地处理掉,是Bug管理的基本要求。

Bug的产生、变更需及时通知相关人员,他们也应能随时查询不同状况的Bug 数据,良好的沟通才能保证有效的协作。

(2)监控

作为项目管理者,您需要及时全面了解目前的项目状况,有些Bug是影响全局的严重错误,需要立即做出处理、决策;有些Bug需要决定改还是不改,或是放入以后版本、分配给其他人等等。所以项目管理者应该能够监控Bug状况。

(3)定量分析

对Bug数据作定量的统计分析是更进一步的需求,如:bug数量随时间变化的趋势图、从测试者、责任人、缺陷级别、缺陷原因等不同角度统计缺陷数量等等。

(4)环境集成

更高一级的需求是与需求、测试方案、SourceCode、自动测试工具等关联起来。

4、Bug管理工具的选用

与选用任何一件商品一样,与您的需求、产品价格、服务等有关。

(1)需求

大部分开发机构对Bug工具的要求并不高,能记录问题点、能及时传达给相关人员,并监督他们都作了适当的处理,基本上就可以了。很多网友说某某系统怎么弄得这么复杂、这么贵,自己花一个星期就能做个可用的东西,说的就是这个意思。早期,市场上没有合适的Bug管理系统,我使用Excel作,说实在的也不错。当然啦,时代在进步,Bug管理系统可更好地实现这些需求。

稍微高一点的要求,可做定量的统计分析,挖掘信息潜在价值。

更高一级的需求,就是景上添花啦,可以与需求、测试方案、SourceCode、自动测试工具等环境集成。但事物总是两面性的,要真正发挥这些作用需要有完善的需求规格、测试方案,需要仔细规划自动化工具所产生数据的过滤、运用。一句话,对自身的规范化要求较高,否则这些功能听起来不错,实际利用不起来。

(2)服务与价格

从价格上说,有3类缺陷管理工具可供选用。

一是纯免费的,如Bugzilla、Mantis等。但免费的东西用户友好性差、安装难,您需要懂linux、perl、mySQL、apache之类的东西;而且没服务,出一点问题您就上Internet淘技术文章去吧,如何安装、使用这些免费软件简直是一门学问了。

二是价格较低的国产软件,基本满足备忘沟通和监控的需要。如华创BMS,做得比较灵活,字段、权限、email通知、数据字典等都可以定制,适应性较强,统计报表的定制性也较强,可以做一定的定量分析。一般开发单位使用这类系统基本够用。

三是价格中等或较高,如微创的BMS、MI的TestDirector、IBM Rational的ClearQuest等。可以做一定的环境集成,如TD,可以把Requirement、Testplan、Bug关联起来,微创BMS可以与MS Project、SourceSafe关联。价格稍高,几万到几十万之间,关键是这些高级功能您真的能利用上。

总的说来,适合您的、就是好的,微软内部的Bug管理界面也非常朴素,看上去有点像windows 95那个时代的小工具。另外服务是很重要的,问题解决不了耽误自己的时间不说,可别影响测试工作。

5、典型Bug管理工具比较

我经历过几个单位,如何管理Bug前后使用过Excel、自制的简易工具、Bugzilla、TD、华创BMS,再参考分析ClearQuest、微创BMS,分析比较如下:

功能特征\ 产品 Testdirector ClearQuest 微创BMS Bugzilla 华创BMS
构架模式 B/S C/S,B/S B/S B/S B/S
用户友好性 一般
流程定制 Y Y N Y Y
查询功能定制 Y Y Y Y Y
功能域定制 Y Y Y Y Y
附件支持 Y Y Y Y Y
用户权限分级管理 Y Y Y Y Y
Email通知 Y Y Y Y Y
批量修改 N N N Y Y
导出至外部文档 Word文档 N N N Excel,HTML
报表定制功能 Y 强,集成Crystal Report 有标准报表和高级报表,定制功能不够 Y 强,有标准报表,定制方便
数据更改历史 Y Y Y N Y
支持平台 Windows Windows, Unix Windows Linux,FreeBSD Windows
支持数据库 Oracle, M$ Access, SQL Server等 Oracle, M$ Access, SQL Server SQL Server等MSDE MySQL Access, SQL Server
安装配置的复杂度 简单 复杂 容易 有些复杂 简单
售后服务 国内有多家代理公司提供相关服务 在国内有分公司提供技术支持 技术支持和服务体系完备 有技术支持和服务,在线升级
与其他工具集成 本身又是测试需求、测试案例管理工具,与winRunner, LoadRunner集成,具有多种主流Case工具接口AddIn 与rational公司的其它产品无缝集成,特别与Clear Case配合以可实现UCM的配置管理体系 M$ VSS, Project 开源配置管理工具CVS
公司背景 世界主流测试软件提供商 已被IBM合并,世界著名软件公司 微软与上海市政府成立的 世界著名开源项目 国产软件
价格 几十万,昂贵 几十万,昂贵 几万,适中 免费 一二千
官方网址 http://www.mercuryinteractive.com http://www.rational.com http://www.wicresoft.com http://www.bugzilla.org http://www.hc-software.com

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织