当前位置:网站首页>【软件测试】02 -- 软件缺陷管理
【软件测试】02 -- 软件缺陷管理
2022-07-05 06:39:00 【衍生星球】
软件缺陷管理
软件由于其自身的特点和目前的开发模式,隐藏在软件内部的缺陷无法根除。软件测试工作就是查找软件中存在的缺陷,反馈给开发人员使之修改,从而确保软件的质量,因此软件测试要求测试人员对软件缺陷有一个深入理解。本节将针对软件缺陷的相关知识进行详细讲解。
1.软件缺陷产生的原因
软件缺陷就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。IEEE(Institute of Electrical and Electronics Engineers,电气电子工程师协会)729—1983标准对软件缺陷有一个标准的定义:从产品内部看,缺陷是产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统运行过程中某种功能的失效或违背。软件缺陷的产生主要是由软件产品的特点和开发过程决定的,比如需求不清晰、需求频繁变更、开发人员水平有限等。归结起来,软件缺陷产生的原因主要有以下几点。
(1)需求不明确。软件需求不清晰或者开发人员对需求理解不明确,导致软件在设计时偏离客户的需求目标,造成软件功能或特征上的缺陷。此外,在开发过程中,客户频繁变更需求也会影响软件最终的质量。
(2)软件结构复杂。如果软件系统结构比较复杂,很难设计出一个具有很好层次结构或组件结构的框架,这就会导致软件在开发、扩充、系统维护上的困难。即使能够设计出一个很好的架构,复杂的系统在实现时也会隐藏着相互作用的难题,而导致隐藏的软件缺陷。
(3)编码问题。在软件开发过程中,程序员水平参差不齐,再加上开发过程中缺乏有效的沟通和监督,问题累积越来越多,如果不能逐一解决这些问题,会导致最终软件中存在很多缺陷。
(4)项目期限短。现在大部分软件产品开发周期都很短,开发团队要在有限的时间内完成软件产品的开发,压力非常大,因此开发人员往往是在疲劳、压力大、受到干扰的状态下开发软件,这样的状态下,开发人员对待软件问题的态度是“不严重就不解决”。
(5)使用新技术。现代社会,每种技术发展都日新月异。使用新技术进行软件开发时,如果新技术本身存在不足或开发人员对新技术掌握不精,也会影响软件产品的开发过程,导致软件存在缺陷。
2.软件缺陷的分类
软件缺陷有很多,从不同的角度可以将缺陷分为不同的种类。
按照测试种类可以将软件缺陷分为界面类、功能类、性能类、安全性类、兼容性类等。
按照缺陷的严重程度可以将缺陷划分为严重、一般、次要、建议。
按照缺陷的优先级不同可以将缺陷划分为立即解决、高优先级、正常排队、低优先级。
按照缺陷的发生阶段不同可以将缺陷划分为需求阶段缺陷、构架阶段缺陷、设计阶段缺陷、编码阶段缺陷、测试阶段缺陷。
按照不同标准将软件缺陷划分成不同的种类,具体如表1所示。
3.软件缺陷的处理流程
软件测试过程中,每个公司都制订了软件的缺陷处理流程,每个公司的软件缺陷处理流程不尽相同,但是它们遵循的最基本流程是一样的,都要经过提交、分配、确认、处理、复测、关闭等环节,如图2所示。
(1)提交:测试人员发现缺陷之后,将缺陷提交给测试组长。
(2)分配:测试组长接收到测试人员提交的缺陷之后,将其移交给开发人员。
(3)确认:开发人员接收到移交的缺陷之后,会与团队甚至测试人员一起商议,确定该缺陷是否是一个缺陷。
(4)拒绝/延期:如果经过商议之后,缺陷不是一个真正的缺陷则拒绝处理,关闭缺陷;如果经过商议之后,确定其是一个真正的缺陷,则可以根据缺陷的严重程度或优先级等选择立即处理或延期处理。
(5)处理:开发人员修改缺陷。
(6)复测:开发人员修改好缺陷之后,测试人员重新进行测试(复测),检测缺陷是否确实已经修改。如果未被正确修改,则重新提交缺陷。
(7)关闭:测试人员重新测试之后,如果缺陷已经被正确修改,则将缺陷关闭,整个缺陷处理完成。
4.软件缺陷报告
在实际软件测试过程中,测试人员在提交软件测试结果时都会按照公司规定的模板(Word、Excel、缺陷管理软件等)将缺陷的详细情况记录下来生成缺陷报告,每个公司的缺陷报告模板并不相同,但一般都会包括缺陷的编号、类型、严重程度、优先级、测试环境等,有时还会有测试人员的建议。
在编写缺陷报告时要注意以下事项。
(1)每个缺陷都有一个唯一的编号,这是缺陷的标识。
(2)缺陷要有重现步骤。
(3)一个缺陷生成一份报告。
(4)缺陷报告要整洁、完整。
5.常见的软件缺陷管理工具
软件缺陷管理是软件开发项目中一个很重要的环节,选择一个好的软件缺陷管理工具可以有效地提高软件项目的进展。软件缺陷管理工具有很多,免费的、收费的应有尽有,下面介绍几个比较常用的软件缺陷管理工具。
1.Bugzilla
Bugzilla是Mozilla公司提供的一款免费的软件缺陷管理工具。Bugzilla能够建立一个完整的缺陷跟踪体系,包括缺陷跟踪、记录、缺陷报告、处理解决情况等。使用Bugzilla管理软件缺陷时,测试人员可以在Bugzilla上提交缺陷报告,Bugzilla会将缺陷转给相应的开发者,开发者可以使用Bugzilla做一个工作表,标明要做的事情的优先级、时间安排和跟踪记录。
2.禅道
禅道是一款优秀的国产项目管理软件,它集产品管理、项目管理、质量管理、缺陷管理、文档管理、组织管理和事务管理于一体,是一款功能完备的项目管理软件,完美地覆盖了项目管理的核心流程。禅道分为专业和开源两个版本,专业版是收费软件,开源版是免费软件,对于日常的项目管理,开源版本已经足够使用。
3.Jira
Jira是Atlassian公司开发的项目与实务跟踪工具,被广泛用于缺陷跟踪、客户实务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。Jira配置灵活、功能全面、部署简单、扩展丰富、易用性好,是目前比较流行的基于Java架构的管理工具。
Jira软件有两个认可度很高的特色:第1个是Atlassian公司对该开源项目免费提供缺陷跟踪服务;第2个是用户在购买Jira软件时源代码也会被购置进来,方便做二次开发。
边栏推荐
猜你喜欢
cgroup_ memcg
1. Create Oracle database manually
Orin two brushing methods
Chinese remainder theorem acwing 204 Strange way of expressing integers
ROS2——安装ROS2(三)
Design specification for mobile folding screen
Pycahrm reports an error: indentation error: unindent does not match any outer indentation
MPLS experiment
7. Oracle table structure
Vant weave swipecell sets multiple buttons
随机推荐
vsCode创建自己的代码模板
Getting started with typescript
Vscode editor
Use ffmpeg to rotate, flip up and down, and flip horizontally
ROS2——node节点(七)
Dameng database all
Time is fast, please do more meaningful things
Game theory acwing 892 Steps Nim game
能量守恒和打造能量缺口
Relevant information of National Natural Science Foundation of China
小米笔试真题一
kata container
cgroup_ memcg
.net core踩坑实践
Vscode creates its own code template
ROS2——配置开发环境(五)
三体目标管理笔记
Knapsack problem acwing 9 Group knapsack problem
*P++, (*p) + +, * (p++) differences
Idea debug failed