热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件测试管理方法(五)——软件缺陷管理

0.软件缺陷的产生软件缺陷-SoftwareDefect-Bug;缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。IEEE729-1983对缺陷的标准定义:从产品内部看,缺

0.软件缺陷的产生

软件缺陷 - Software Defect - Bug;缺陷的存在会导致软件产品在某种程度上不能满足用户的需要IEEE729-1983对缺陷的标准定义:产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题产品外部看,缺陷是系统所需要实现的某种功能的失效或违背

在软件的开发测试过程中项目组会特别关注软件缺陷的状况,这是因为一方面软件缺陷状况是项目质量和状态的重要指示数据,另一方面越到软件生命周期的后期修复软件缺陷的成本越高。

1.常见的缺陷

功能没有实现或与需求规格说明不一致;界面、消息、提示、帮助不够准确或误导用户;屏幕显示、打印结果不正确;软件无故退出或没有反应;边界条件未做处理,输入错误数据没有提示和说明;运行速度慢或占用资源过多;与常用的交互软件不兼容;有时把尚未完成的小功能也归属于软件缺陷

2.产生原因

在软件开发的过程中,软件缺陷的产生是不可避免的,零缺陷是软件产品很难达到一个状态。导致软件缺陷产生的原因也是多种多样的,软件工程过程中的人、过程、工具都有可能导致产生软件缺陷,过程中的每一个环节都有可能产生缺陷,概括来说这些原因可以归结为四大类。

软件测试管理方法(五)——软件缺陷管理

软件本身的复杂性和抽象性:在产品真正完成之前,每个人对软件的理解都不完全相同,这种复杂和抽象使得软件容易出现缺陷

软件技术在某些领域应用不成熟,使得某些功能或性能无法达到应用要求,也会导致软件缺陷的产生

如果软件开发流程不完善,存在太多的随机性,缺乏严谨的评审机制,则容易产生软件缺陷。目前软件行业对项目管理和软件过程的研究实践已经有很多成果,比如全流程质量管理、CMMI模型等软件工程方法。

软件团队的成员能力水平不足也会引起软件缺陷的产生。比如编码人员能力不足,会产生很多算法错误和语法错误导致软件不能正常工作或者性能低下

3.缺陷属性

为了方便引用、理解、解决、测试、回归,跟踪、分析软件缺陷,软件缺陷有很多属性,比如编号ID,解决人,测试人、状态、所属功能模块、严重程度等等。这些属性并不是在缺陷录入的时候就全部指定的,而是随着软件缺陷的流转根据需要不断完善的。一个完整的缺陷报告应该清楚的描述BUG的症状和其他基本信息。不同的团队根据缺陷管理的需要使用的缺陷属性不同。

优先级是处理和修正软件缺陷的先后顺序的指标,即哪些缺陷需要优先修正,哪些缺陷可以稍后修正。

理论上来说,确定软件缺陷优先级,更多的是站在软件开发工程师的角度考虑问题,因为缺陷的修复是个复杂的过程,有些不是纯粹技术问题,而且开发人员更熟悉软件代码,能够比测试工程师更清楚修复缺陷的难度和风险

但是实际上,企业在确定缺陷优先级并不只站在开发工程师角度,而是对解决的难度、缺陷对产品销售的影响、客户的重要性等方面综合考虑确定的。

严重性(Severity)是软件缺陷对软件质量的破坏程度,即此软件缺陷的存在将对软件的功能和性能产生怎样的影响。在软件测试中,软件缺陷的严重性的判断应该从软件最终用户的观点做出判断,即判断缺陷的严重性要为用户考虑,考虑缺陷对用户造成的后果的严重性。

团队在开展测试工作时会根据团队管理和产品的实际需要定义缺陷的字段,少则六七个字段,多则可达十几二十个。

4.统计度量

软件缺陷作为软件质量的重要指标变量,对其进行统计分析以明确项目质量情况,帮助管理者进一步做决策意义重大。

缺陷密度DdDd=缺陷数量/代码行或功能点的数量,其单位为每千行代码的缺陷数(Defects/KLOC)

遗留缺陷密度:遗留缺陷数/代码行或功能点数

缺陷探测率DDP:发布前发现的缺陷数/缺陷总数

缺陷趋势分析统计

缺陷分布分析统计

缺陷根源分析统计

5.管理工具

软件缺陷管理指南、软件缺陷报告录入模板和指南、软件缺陷管理系统、

(0)分类

软件缺陷管理系统分类:1.自主开发、购买、开源   2.单独的缺陷管理工具、集成在研发管理系统

典型的软件缺陷管理系统:1.Bugzilla:https://www.bugzilla.org/ 2.禅道项目管理软件中的缺陷管理子系统 3.JIRA:https://www.atlassian.com/software/jira 4.ALM中的缺陷管理子系统

(1)功能

 

工具是理论的载体,理解了理论才能灵活运用工具,一般的缺陷管理系统有如下功能:字段配置、缺陷跟踪、添加缺陷、修改缺陷、关联缺陷和测试用例、统计分析功能


推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了数模国赛的报名参加方法,包括学校报名和自己报名的途径。同时给出了建模竞赛的建议,重在历练的同时掌握方法以及弥补自己的短板。此外,还分享了论文的结构和模型求解部分的注意事项,包括数学命题的表述规范和计算方法的原理等。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
爱旅游的星琴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有