软件测试之缺陷

news2025/1/7 5:25:42

缺陷

1. 软件缺陷的概述

1.1 软件缺陷定义

  • 软件缺陷, 通常又被叫做bug或者defect, 即为软件或程序中存在的某种破坏正常运行能力的问题、错误,其存在会导致软件产品在某种程度上不能满足用户的需求.

  • 软件缺陷是指存在于软件(程序、数据、文档中的)那些不符合用户需求的问题.

1.2 软件缺陷的表现形式

主要表现为三种形式:“缺陷”、“故障”、 “失效”

缺陷: 存在于软件中的偏差,可被激活,以静态的形式存在于软件内部,相当于bug;

故障: 软件运行中出现的状态,可引起意外情况,若不加处理,可产生失效,是一个动态行为;

失效: 软件运行时产生的外部异常行为结果,表现与用户需求不一致,功能能力终止,用户无法完成所需要的应用。

缺陷不一定就会导致故障,只要缺陷没被触发; 同样,故障不一定就会导致失效,只要故障处理的得当.

2. 产生软件缺陷的原因

产生软件缺陷的原因很复杂,原因各种各样,:

  • 需求有缺陷
  • 系统架构设计阶段有缺陷
  • 程序设计阶段有缺陷
  • 程序研发阶段有缺陷
  • 测试阶段有缺陷
  • 硬件有缺陷

3.缺陷的信息

为了便于缺陷的定位、跟踪和修改,要对说发现的缺陷,按照缺陷的严重程度、优先级、发现阶段、修复阶段、缺陷的性质、所属功能模块、西庸环境等方面进行分类和统计,

在这里插入图片描述

3.1 状态

  • New:缺陷的初始状态;
  • Open:开发人员开始修改缺陷;
  • Fixed:开发人员修改缺陷完毕;
  • Closed:回归测试通过,关闭缺陷;
  • Reopen:回归测试失败,再次打开;
  • Postpone:推迟修改;
  • Rejected:开发人员认为不是程序问题,不用修改;
  • Duplicate:与已提交的Defect重复;
  • Abandon:被Reject和Duplicate的Defect,测试人员确认后的确不是问题,将Defect置为此状态。

3.2 缺陷处理流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-02ZOgJ4b-1677646047592)(/images/defect2.png)]

当我们提交的Defect与别人提交的相同时,缺陷就被置为Duplicate状态。

如果说开发人员觉得测试人员提交的不是问题,不用修改,可以将这个BUG置为Reject状态。

被Reject和Duplicate的Defect,我们最终要把它置为Abandon状态

3.3 缺陷的严重程度和优先级

缺陷的严重程度就是:站在用户的交付,bug出现之后对软件质量的破坏程度,也就是说这个软件缺陷的存在将对这个软件的功能和性能产生怎么样的影响。

1. 严重程度

一般来说,软件的严重程度分为五个等级:

(1) Fatal 致命的缺陷

造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题

(2) Critical 严重错误的软件缺陷

系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件。

(3) Major 一般的软件缺陷

次要功能没有完全实现但不影响使用。如:提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,

(4)Minor 较小的软件缺陷

较小错误的软件缺陷,使操作者不方便或遇到麻烦,但它不影响功能性的操作和执行,如错别字、界面不规范等

(5) Enhancemental 建议问题

由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。

2. 缺陷的优先级

由于缺陷的等级不一样,导致处理缺陷的先后顺序不一样,一般分为下面几种:

(1) P1 立即解决

缺陷导致系统几乎不能完全运行、使用,或严重妨碍测试的执行,需立即修正、尽快修正;

(2) P2 高级优先

缺陷严重,影响测试,需要优先考虑修正,如不超过24小时修正;

(3)P3 正常级别

缺陷需要修改,只要正常排队修复就可以

(4)P4 低优先级

缺陷可以在开发人员有时间的时间修复,若没时间可以不修正

4. 缺陷报告

在这里插入图片描述

缺陷报告单是任何缺陷修改的一个起始,也就是我们测试人员在进行测试执行的时候,发现了一个缺陷,发现缺陷后,我们不要口头和开发人员交流,因为口头的交流不仅没有任何的约束力,而且有可能表达不清楚,所以我们要把缺陷落实在纸面上,也就是要测试人员填写缺陷报告单。

作用:

  1. 测试执行过程中,发现缺陷失效后(不一定是失效,也许是故障,一般来说这个缺陷在测试阶段被发现往往表现为产品失效),提出书面的报告,提供给开发人员作为定位缺陷的依据,也作为日后缺陷度量的数据依据,开发人员接到缺陷报告单后,他会根据缺陷报告单上描述的缺陷外在表现来重现这个问题,然后找出这个问题,也就是缺陷产生的根源。

  2. 缺陷报告还可以作为我们日后缺陷度量的数据依据,度量是对整个产品进行考核,比如说,我们的软件在什么时候可以发布,什么时候可以交付给客户等等问题,这个时候我们往往从缺陷度量的数据来看,比如我们子啊最后一轮进行测试的过程中,每千行代码只有0.1个缺陷,说明我们产品的质量已经非常高了,而且遗留的缺陷也就非常少了,这个时候就可以发布产品了,所以这个缺陷的统计数据时非常重要的,它可以作为缺陷度量的依据。

5. 缺陷管理目的

从上面我们学习软件缺陷相关知识,我们的主要目的是进行缺陷的管理来实现“对各个阶段测试发现的缺陷进行跟踪管理,以保证各级缺陷的修复率达到标准”, 主要实现以下目标:

  1. 保证信息的一致性;
  2. 保证缺陷得到有效的跟踪,缩短沟通时间,解决问题更高效;
  3. 收集缺陷数据并进行数据分析,作为缺陷度量的依据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 交叉编译工具链安装

Ubuntu 交叉编译工具链安装 1 交叉编译器安装 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,我们在第三章“Linux C 编程入门”里面已经讲解了如何在 Liux 进行 C 语言开发,里面使用 GCC 编译器进行代…

如何使用bomber扫描软件物料清单(SBOM)以查找安全漏洞

关于bomber bomber是一款针对软件物料清单(SBOM)的安全漏洞扫描工具,广大研究人员可以通过该工具扫描和检测软件物料清单(SBOM)。 当你向一家供应商索要了他们的一个封闭源代码产品的软件材料清单,而他们…

Spring6全面详解

Spring6全面详解 自2022年11月,Spring6正式发布。在Spring6中,对于JDK的要求最低为 17。(17 - 19) 部分文本摘抄于尚硅谷视频(bilibili)做了一定的排版和个人的理解。如果不是很熟悉,可以去看 …

ABAP 辨析 标准表|排序表|哈希表

1、文档介绍 本文档将介绍内表的区别和用法,涉及标准表、排序表、哈希表 2、用法与区别 2.1、内表种类 内表顶层为任意表,任意表分为索引表和哈希表,索引表又可分为标准表和排序表,结构如图: 2.2、内表用法 2.2.1…

GeoTools 存在 sql 注入漏洞

漏洞描述 GeoTools 是一个用于处理地理空间数据(如地理信息系统: GIS)的开源代码库,并且支持 OGC 过滤器表达式语言的解析和编码。PostGIS是PostgreSQL数据库的扩展程序,增加了数据库对地理对象的支持。PostGIS DataStore 为GeoT…

Android Framework-操作系统基础

最近在看《深入理解Android内核设计思想(第2版)》,个人感觉很不错,内容很多,现将书里个人认为比较重要的内容摘录一下,方便后期随时翻看。 计算机体系结构 硬件是软件的基石,所有的软件功能最…

【蓝桥杯嵌入式】点亮LED灯,流水灯的原理图解析与代码实现——STM32

🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…

不用PS,也能实现抠图的工具

对于非设计专业的同学来说,专门下载 PS 抠图有点大材小用,而且运用 PS 对电脑配置一定要求。不过现在有了更多选择,市面上出现了越来越多的抠图软件,不过越多的抠图软件选择也意味着需要花费时间试错因此本文将给大家推荐 3 款非常…

递归算法(recursion algorithm)

递归算法 什么是递归算法 在过程或者函数里调用自身的算法; 递归算法(recursion algorithm),通过重复将问题分解为同类的子问题而解决问题的方法, Java中函数可以通过调用自身来进行递归,大多数编程语句…

jQuery 属性操作

jQuery 属性操作 Date: February 28, 2023 Sum: jQuery属性操作、文本属性值、元素操作、尺寸、位置操作 jQuery 属性操作 设置或获取元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属性,比如 元素里面的 href ,比如 元素里面的 type。 …

以太网调试经验总结

1.MDC时钟捕获 在bringup时,首先需要确认MDC/MDIO控制通道是否正常,通过捕获MDC时钟以确认MDC/MDIO的工作状态是否正常,MDC时钟频率由具体的PHY芯片决定,不同的PHY芯片支持的MDC时钟频率范围不通。 注意1:MDC时钟频率不…

【3.1】MySQL锁、动态规划、Redis缓存,过期删除与淘汰策略

5.4 MySQL死锁了,怎么办? RR隔离级别下,会存在幻读的问题,InnoDB为了解决RR隔离级别下的幻读问题,就引出了next-key 锁,是记录锁和间隙锁的组合。 Record Lock,记录锁,锁的是记录本身…

常用的“小脚本“-json数据处理

小背景: 我们公司项目中的小脚本是一些工具类,比如常用的是MapUtil工具类的一些方法 写公司的MapUtil工具类的方法要注意,方法名的命名,因为方法名,在公司的项目的某个业务流程有对方法名的进行String截取开头字符串然…

考研机试 | C++ | 王道复试班 | map专场

目录关于map查找学生信息(清华上机)题目代码:魔咒词典(浙大机试)题目:代码英语复试常用话题关于map map的一些基本操作: 判空 :map.empty()键值对的个数: map.size()插入…

进程、线程、协程详解

目录 前言: 一、进程 进程的概念 进程内存空间 二、线程 线程的定义 内核线程 用户线程 内核线程和用户线程的比较 线程的状态 三、协程 协程的定义 协程序相对于线程优势 运用场景 四、线程、协程、进程切换比较 前言: 有时候无法…

JPA之实体之间的关系

JPA之实体之间的关系 10.1.1实体类创建 注解的应用 Table,Entity IdGeneratedValue指定主键,Column P174 实体类编写规范 Table(name "t_user") Entity(name "User") public class User implements Serializable {IdGeneratedVa…

王道操作系统课代表 - 考研计算机 第二章 进程与线程 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “进程与线程” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全…

机器学习——线性学习

提及线性学习,我们首先会想到线性回归。回归跟分类的区别在于要预测的目标函数是连续值线性回归假定输入空间到输出空间的函数映射成线性关系,但现实应用中,很多问题都是非线性的。为拓展其应用场景,我们可以将线性回归的预测值做…

SQL的优化【面试工作】

SQL的优化 最近看到群友在讨论这块的优化,感觉不管工作和面试,都是用上的,记录下吧!(不然又记不住) 优化点: 处理和优化复杂的 SQL 查询可以有以下几个方向: 1.优化查询语句本身 首先,可以优化 SQL 查询语句本身,尽量让其更加简洁、高效。 …

Go程序当父进程被kill,子进程也自动退出的问题记录

平常我们启动一个后台进程,会通过nouhp &的方式启动,这样可以在退出终端会话的时候,进程仍然可以继续在后台执行(进程的父进程id会从原来的bash进程变成1) 在go程序中,通过nouhp &的方式启动子进程,预期是即使…