软件缺陷管理
软件缺陷管理
软件测试的工作就是查找软件中存在的缺陷,反馈给开发人员使之修改,从而确保软件的质量,因此软件测试要求测试人员对软件有一个深入理解。
1、软件缺陷产生的原因
软件缺陷就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。IEEE(Institute of Electrical and Electronics Engineers,电子电子工程师协会)729-1983标准对软件缺陷有一个标准的定义:从产品内部看,缺陷是产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统运行过程中某种功能的失效或违背。
软件缺陷的产生主要是由软件产品的特点和开发过程决定的,比如需求不清晰、需求频繁变更、开发人员水平有限等。归结起来,缺陷产生的原因主要有以下几点。
(1)需求不明确。软件需求不清晰或者开发人员对需求理解不明确,导致软件在设计时偏离客户的需求目标,造成软件功能或特征上的缺陷。此外,在开发过程中,客户频繁变更需求也会影响软件最终的质量。
(2)软件结构复杂。如果软件系统结构比较复杂,很难设计出一个具有很好层次结构或组件结构的框架,这就会导致软件在开发、扩充、系统维护上的困难。即使能够设计出一个很好的架构,复杂的系统在实现时也会隐藏着相互作用的难题,而导致隐藏的软件缺陷。
(3)编码问题。在软件开发过程中,程序员水平参差补齐,再加上开发过程中缺乏有效的沟通和监督,问题累积越来越多,如果不能逐一解决这些问题,会导致最终软件中存在很多缺陷。
(4)项目期限短。现在大部分软件产品开发周期都很短,开发团队要在有限的时间内完成软件产品的开发,压力非常大,因此开发人员往往是在疲劳、压力大、受到干扰的状态下开发软件,这样的状态下,开发人员对待软件问题的态度是【不严重就不解决】。
(5)使用新技术。现代社会,每种技术发展都日新月异。使用新技术进行然间开发时,如果新技术本身存在不足或开发人员对新技术掌握不精,也会影响软件产品的开发过程,导致软件存在缺陷。
2、软件缺陷的分类
软件缺陷有很多,从不同的角度可以讲缺陷分为不同的种类。
按照测试种类可以讲软件缺陷分为界面类、功能类、性能类、安全性类、兼容性类等。
按照缺陷的严重程度可以讲缺陷划分为严重、一般、次要、建议。
按照缺陷的优先级不同可以讲缺陷划分为立即解决、高优先级、正确排队、低优先级。
按照缺陷发生的阶段不同可以讲缺陷划分为需求阶段缺陷、架构阶段缺陷、设计阶段缺陷、编码阶段缺陷、测试阶段缺陷。
按照不同标准讲软件缺陷划分成不同的种类,具体如表1-1所示。
3、软件缺陷的处理流程
软件测试过程中,每个公司都制定了软件的缺陷处理流程,每个公司的软件处理流程不尽相同,但是它们遵循的最基本流程是一样的,都要经过提交,分配,确认,处理,复测,关闭等环节,如图所示
关于上图所示的软件缺陷处理环节的具体讲解如下所示:
(1)提交:测试人员发现缺陷之后,将缺陷提交给测试组长
(2)分配:测试组长接收到测试人员提交的缺陷之后,将其移交给开发人员。
(3)确认:开发人员接收到移交的缺陷之后,会与团队甚至测试人员一起商议,确定该缺陷是否是ig缺陷。
(4)拒绝/延期:如果经过商之后,缺陷不是一个真正的缺陷则拒绝处理,关闭缺陷;
经过商议之后,确定其是一个真正的缺陷,则可以根据缺陷的严重程度或优先级等选择利己处理或延期处理。
(5)处理:开发人员修改缺陷。
(6)复测:开发人员修改好缺陷之后,测试人员重新进行测试(复测),检测缺陷是否确实已经修改。如果未被正确修改,则重新提交缺陷。
(7)关闭:测试人员重新测试之后,如果缺陷已经被正确修改,则将缺陷关闭,整个缺陷处理完成。
4、常见的软件缺陷管理工具
软件缺陷管理是软件开发项目中一个很重要的环节,选择一个好的缺陷管理工具可以有效的提高软件项目的进展。软件缺陷管理工具有很多,免费的,收费的应有尽有,可以介绍几个比较常用的软件缺陷管理工具。
1、Bugzilla
Bugzilla是Mozilla公司提供的一款免费的软件缺陷管理工具。
Bugzilla能够建立一个完整的缺陷跟踪体系,包括缺陷跟踪、记录、缺陷报告、处理解决情况等。
使用Bugzilla管理软件缺陷时,测试人员可以在Bugzilla上提交缺陷报告,Bugzilla会将缺陷转给相应的开发者,开发者可以使用Bugzilla做一个工作表,表明要做的事情的优先级、时间安排和跟踪记录。
2、禅道
禅道是一款优秀的国产项目管理软件,它集产品管理、项目管理、质量管理、缺陷管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。
禅道分为专业和开源两个版本,专业版是收费软件,开源版是免费软件,对于日常的项目管理,开源版本已经足够使用。
3、Jira
Jira是Atlassina公司开发的项目于实务跟踪工具,被广泛用于缺陷跟踪、客户实务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。Jira配置灵活、功能全面、部署简单、扩展丰富、易用性好,是目前比较流行的基于Java架构的管理工具。
Jira软件有两个认可度很高的特色:第1个是Atlassian公司对该开源项目免费提供缺陷跟踪服务;第2个是用户在购买Jira软件时源代码也会被购置进来,方便做二次开发。