软件测试 - 缺陷管理

1. 缺陷的定义

产品不满足用户的需求或者测试执行时实际结果和预期结果不一致都属于缺陷。

2. 缺陷的判定标准及产生原因

软件不满足下述任何一种都算作是软件的缺陷,缺陷的概念是包括bug概念的。

  • 未达到需求说明书指明的功能
  • 出现了需求说明书指明不应该出现的错误
  • 实现了需求说明书之外的功能
  • 未达到需求说明书虽未明确提及但是应该实现的目标(如:性能要求等)
  • 用户角度发现的各种问题与错误

缺陷产生的原因是多方面的,可以总结为以下几种:

  • 需求文档存在错误
  • 程序代码存在错误
  • 同一个项目组的成员信息不同步,比如需求发生变更,但是没有同步到项目组所有成员

3. 缺陷报告

测试人员发现缺陷之后,需要将缺陷同步给项目组的其他成员,为了让其他成员能够清晰的知道软件目前存在的缺陷,就需要对软件缺陷的描述进行规范化,通常来讲测试人员需要将发现的缺陷整理成缺陷报告然后通过一些平台比如禅道或者jira指定给项目组的指定成员,然后由他们进行解决。

缺陷报告首先必须有以下几个核心的内容:

  • 标题:描述缺陷的基本信息,如(输入密码长度为5时,注册成功。)
  • 前置条件:描述缺陷出现依赖的相关基础条件,如(未注册手机号)
  • 复现步骤:测试用例里面的执行步骤
  • 实际结果:执行被测试软件过程中,系统给出的结果
  • 预期结果:参照需求说明书,在测试用例中设计的预期结果
  • 附件:方便开发定位bug的关键信息,包含图片、日志log等

有了上述几个核心内容之后,开发人员基本上可以根据所给信息去定位缺陷,然后进行解决,当然缺陷报告还有一些其他的基本要素:

  • ID编号:缺陷的唯一编号

  • 模块:根据产品进行具体的划分,如登录、注册

  • 缺陷状态:表明缺陷处理进度,通常会使用禅道等工具进行管理,缺陷状态有以下几种

    • new:新建的缺陷
    • open:打开的缺陷
    • fix:已修复的缺陷
    • close:关闭的缺陷
    • reopen:重新打开
    • reject:被拒绝解决的缺陷
    • postpone:延期处理
  • 严重程度:从技术维度来衡量,bug的破坏力

  • 优先级:从业务的角度,决定bug修改的先后顺序

  • 缺陷类别:用于分类整理缺陷,通常缺陷类别可以从以下几个角度进行区分:

    • 功能性错误

    • 非功能性错误

      • 界面错误
      • 兼容性
      • 易用性
      • ...

缺陷报告非常重要,合格的缺陷报告可以帮助解决缺陷的开发人员更快的复现和定位缺陷,因此缺陷报告必须保证能够让开发人员复现缺陷。通常在编写缺陷报告时可以遵循以下书写规范:

  • 标题:应保持简短、准确,提供缺陷的本质信息
  • 复现步骤:应包含如何使别人能够很容易的复现该缺陷的完整步骤
  • 实际结果:是执行复现步骤后软件的现象和产生的行为
  • 预期结果:通常需要列出期望的结果是什么
  • 附件:对缺陷描述的补充说明

4. 缺陷跟踪流程

使用禅道或者jira进行缺陷跟踪时,根据不同的场景会产生不同的缺陷状态。下图是缺陷跟踪流程图,每一条流程表示一种场景。

场景1:确认BUG解决

  • 测试【new】》开发【open】》开发【fix】==》测试【close】
  • 场景2:验证未通过,缺陷仍存在

  • 测试【new】》开发【open】》开发【fix】==》测试【reopen】
  • 场景3:开发延期处理

  • 测试【new】》开发【open】》开发【postpone】
  • 场景4:拒绝处理

  • 测试【new】》开发【open】》开发【reject】

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python+Selenium入门级自动化测试脚本编写

一、安装Selenium 安装selenium有三种方式,主要有python下的pip命令安装或者是直接下载安装包进行安装本地文件夹以及直接用pycharm直接安装相应的selenium版本。推荐使用pycharm直接配置安装相应selenium版本(此办法比pip更好用,且不用担心报…

8分钟的面试,我直呼太变态了......

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…

【Linux】Job for network.service failed(网卡启动报错)

上图是Linux网卡启动报错的情况 这是由于cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址和ifconfig中的MAC地址不一样,或者缺少cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址 1.查看ifconfig中的MAC地址 图中00:0c…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里? 版权声明: 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容,不得删减、修改、演绎相关学习资源见文末 一些人…

谈谈几种分布式锁实现

大家好,我是易安!今天我们呢谈一谈常见的分布式锁的几种实现方式。 什么是分布式锁 在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块…

Java 基础进阶篇(十二)—— Stream 流常用方法总结

文章目录 一、Stream流概述二、获取Stream流2.1 集合获取 Stream 流2.2 数组获取 Stream 流 三、中间方法四、终结方法五、Stream流的综合应用六、收集Stream流 一、Stream流概述 Stream 流是在 Java8 中,得益于 Lambda 所带来的函数式编程, 引入了一个…

使用【SD-WEBUI】插件生成单张图包含多个人物:分区域的提示词

文章目录 (零)前言(一)潜变量成对(Latent Couple)(1.1)可自组LoRA(Composable LoRA) (二)分区扩散(Multi Diffusion&#…

深入理解二分类和多分类CrossEntropy Loss和Focal Loss

深入理解二分类和多分类CrossEntropy Loss和Focal Loss 二分类交叉熵 在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为 p p p和 1 − p 1-p 1−p,此时表达式为( 的 log ⁡ \log log底数…

Osek网络管理及ETAS实现

OSEK/VDX(Offene Systeme und deren Schnittstellen fr die Elektronik in Kraftfahrzeugen / Vehicle Distributed eXecutive)是一种用于嵌入式系统(尤其是汽车电子控制单元)的开放标准。它旨在提供一种统一、可互操作的软件架构…

Origin如何绘制三维图形?

文章目录 0.引言1.使用矩阵簿窗口2.三维数据转换3.三维绘图4.三维曲面图5.三维XYY图6.三维符号、条状、矢量图7.等高线图 0.引言 因科研等多场景需要,绘制专业的图表,笔者对Origin进行了学习,本文通过《Origin 2022科学绘图与数据》及其配套素…

三分钟教你如何定义自己的ChatGPT

三分钟教你如何定义自己的ChatGPT 成品预览材料准备MyChatGPT自定义AI 成品预览 材料准备 总共有两种方式: 一种是使用自己的OpenAI账号,这种方式是可控性比较强,同时也会有很多问题,比如你需要准备国外的手机号和Visa卡&#x…

Java 动态原理详解

Java 动态代理是一种非常重要的编程技术,它在很多场景下都有着广泛的应用。本文将介绍 Java 动态代理的实现原理,并附上相应的源码,以帮助读者更好地理解和应用这一技术。 一、什么是 Java 动态代理? Java 动态代理是一种在运行时…

在docker上安装运行Python文件

目录 一、在docker中安装python 1.1 输入镜像拉取命令 1.2 查看镜像 1.3 运行 1.4 查看是否成功 1.5 查看python版本 二、运行py文件 2.1准备运行所需文件 2.2 准备文件夹 2.3 大概是这幅模样 2.4 打包上传到服务器上 2.5 构建镜像示例 2.6 查看镜像 2.7 优化镜像的…

Spring MVC自定义拦截器--Spring MVC异常处理

目录 自定义拦截器 什么是拦截器 ● 说明 自定义拦截器执行流程分析图 ● 自定义拦截器执行流程说明 自定义拦截器应用实例 ● 应用实例需求 创建MyInterceptor01 创建FurnHandler类 在 springDispatcherServlet-servlet.xml 配置拦截器 第一种配置方式 第二种配置方…

【Linux】网络---->套接字编程(TCP)

套接字编程TCP TCP的编程流程TCP的接口TCP的代码(单线程、多进程、多线程代码)单线程多进程多线程 TCP的编程流程 TCP的编程流程:大致可以分为五个过程,分别是准备过程、连接建立过程、获取新连接过程、消息收发过程和断开过程。 …

《花雕学AI》ChatGPT 的 Prompt 用法,不是随便写就行的,这 13 种才是最有效的

ChatGPT 是一款基于 GPT-3 模型的人工智能写作工具,它可以根据用户的输入和要求,生成各种类型和风格的文本内容,比如文章、故事、诗歌、对话、摘要等。ChatGPT 的强大之处在于它可以灵活地适应不同的写作场景和目的,只要用户给出合…

MySQL多表查询之连接查询

0. 数据源 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80016Source Host : localhost:3306Source Schema : tempdbTarget Server Type : MySQLTarget Server Version…

两小时让你全方位的认识文件(一)

想必友友们在生活中经常会使用到各种各样的文件,那么我们是否了解它其中的奥秘呢,今天阿博就带领友友们深入地走入文件🛩️🛩️🛩️ 文章目录 一.为什么使用文件二.什么是文件三.文件的打开和关闭四.文件的顺序读写 一…

时间复杂度

学习《代码随想录》 时间复杂度为什么要引入时间复杂度和空间复杂度?什么是时间复杂度?这个O是什么意思?时间复杂度越低越好? 内存管理什么是内存空间?(C为例)为什么总说C/C更偏向底层&#xff…

T-SQL游标的使用

一.建表 INSERT INTO cloud VALUES( 你 ) INSERT INTO cloud VALUES( 一会看我 ) INSERT INTO cloud VALUES( 一会看云 ) INSERT INTO cloud VALUES( 我觉得 ) INSERT INTO cloud VALUES( 你看我时很远 ) INSERT INTO cloud VALUES( 你看云时很近 ) 二.建立游标 1.游标的一般格…