软件测试基础之软件缺陷处理

2023-11-17

一、什么是缺陷
不满足用户确定需求、影响软件功能实现的问题、故障
缺陷就是人们通常所说的bug。

ex.一下哪一种选项不属于软件缺陷___。
A.软件没有实现产品规格说明所要求的功能
B.软件中出现了产品规格说明不应该出现的功能
C.软件实现了产品规格说明没有提到的功能
D.软件实现了产品规格说明书所要求的功能但因受性能限制而未考虑可移植性问题

答案:D

二、缺陷的识别
缺陷的产生原因
人员(用户、设计、开发、测试、技术支持等)之间的沟通交流不够,交流上有误解或者根本不进行交流
文档不完善甚至没有文档(尤其是国内中小软件企业)
需求不断电变化
参与人员技术能力上的局限
程序设计本身有误
软件复杂度大,缺陷很难避免(例如Windows、Word)
工期短,任务重,时间压力大
软件开发工具与系统软硬件的支持有局限
判断缺陷的依据
通过参考文档来确认缺陷
需求规格说明书
概要设计、详细设计
用户手册
...
通过了解软件行业标准、行业背景(或参考同类典型软件)来发现缺陷
通过沟通来确认和识别缺陷(问开发人员、问需求人员、问用户... ...)
三、再现与优化缺陷
再现(又叫重现)与优化缺陷的必要性
优化缺陷并不是指优化缺陷本身,而是优化缺陷的再现步骤

为什么要再现与优化缺陷?
关于软件中“随机”出现的缺陷如何处理?

再现与优化缺陷的方法
深入熟悉需求,从需求本身出发
熟悉程序设计、从设计开发着手
熟悉常用测试方法、手段、典型套路
同一个缺陷用不同测试过程(含步骤、数据)多次验证,分析缺陷的现象与成因,找出规律和最简实现过程
查找依赖关系和竞争条件
不断积累处理缺陷的经验
四、怎样有效记录缺陷
保证重现缺陷
判断一个缺陷报告撰写好坏的简单方法:让非缺陷报告撰写者(技术人员)依据缺陷报告重现缺陷,如果能简单、迅速的重现缺陷,表明缺陷报告较好

分析故障——使用最少步骤重现缺陷
减少开发人员重复缺陷的时间
使开发人员更准确的定位缺陷

包含所有重现缺陷的必要步骤
测试人员假定常用的操作步骤开发人员不一定熟悉,省略了必要的步骤长处造成开发人员无法重现缺陷。

其他注意事项
方便阅读
举例:
概述:使用“记事本”仅保存“联通”二字后再打开该文件,出现乱码。
描述步骤:
1.点击“开始” → “程序” → “附件” → “记事本” 打开记事本软件;
2.仅输入“联通”二字,点击“文件” → 保存;
3.在打开的“另存为”对话框中保存文件后退出(文件名、保存位置任意);
4.打开保存的文件,出现乱码,不是“联通”二字。

注意自己的语气
举例:
概述:“记事本”中“另存为”对话框中默认文件后缀写成了“.txk”。
描述步骤:
1.点击“开始” → “程序” → “附件” → “记事本” 打开记事本软件;
2.仅输入“联通”二字,点击“文件” → 保存;
3.在打开的“另存为”对话框中,默认文件文件后缀应该是“.txt”,你们开发人员是不是用脚后跟考虑问题的,居然写成了“.txk”;

六、缺陷报告
缺陷报告是描述软件缺陷现象和重现步骤地集合。
软件缺陷报告Sottware Bug Report(SBR)或软件问题报告Software Problem Report(SPR)

缺陷报告的作用
1.缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值
2.缺陷报告可以把软件存在的缺陷准确描述出来,便于开发人员修正
3.缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控制
4.软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力

缺陷报告的“5C”原则
内容准确(Correct)
每个组成部分的描述正确,不会引起误解
步骤简洁(Concise)
只包含必不可少的信息,不包括任何多余的内容
内容清晰(Clear)
每个组成部分的描述清晰,易于理解
结构完整(Complete)
包含重现该缺陷的完整步骤和其他本质信息
风格一致(Consistent)
按照一致的格式书写全部缺陷报告
缺陷报告的内容
缺陷的标题
缺陷的的基本信息:
1.测试的软件和硬件环境
2.测试的软件版本
3.缺陷的类型
4.缺陷的严重程度
5.缺陷的处理优先级
复现缺陷的操作步骤
缺陷的实际结果描述
期望的正确结果描述
注释文字和截取的缺陷图像

缺陷的二八定理
在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的缺陷,而系统测试又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用户大范围、长时间使用后才会暴露出来。

七、记录缺陷与缺陷报告
使用较少的、必要的操作步骤确保缺陷能够重现
记录缺陷时要使用专业术语、注意书写格式
缺陷要言简意赅、尽量一个缺陷一个报告
对于实在不可重现的缺陷也需要报告,并且尽快报告
不能夸大缺陷的数量和缺陷的级别
及时记录缺陷
八、缺陷的分类
按照严重程度分类、缺陷的优先级、缺陷的类型以及功能模块等进行分类

按严重程度
致命错误:如数据丢失、死机、系统崩溃
严重错误:如功能未完成,功能完成不正确
一般错误:如功能不完善,界面问题等
建议(轻微):测试人员认为怎么处理更好一些的问题

按照修改优先级
立即修改
在本版本修改
在产品发发布前修改
在发布版本中可以存在的问题

按照缺陷类型
功能、压力/负载、界面、兼容、易用、安装/卸载、安全

按照功能模块
功能模块1
功能模块2
功能模块3
功能模块4
......

缺陷报告的处理流程
 

 

文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试基础之软件缺陷处理 的相关文章

  • 如何修复 python 请求中的 错误?

    我正在使用一个 API 它接收 pdf 文件并进行一些分析 但我总是收到 Response 500 最初使用 Postman 进行测试 请求通过 收到带有相应 JSON 信息的响应 200 应关闭 SSL 安全性 但是 当我尝试通过 Pyt
  • JSON 解析错误:无法从字符串反序列化“java.time.LocalDateTime”类型的值

    我正在向具有 updateDate 属性的外部服务发送请求 UpdateTimestamp Column name updated date private LocalDateTime updatedDate 当我在 DTO 中收到响应时
  • 如何使用邮递员测试获得代码覆盖率

    我们在 RestEasy 中创建了 REST 服务 并在 Wildfly 服务器中运行 我们正在运行 Postman 测试用例来测试 Rest URL 当我们执行邮递员测试套件时 有没有办法获得服务的代码覆盖率 我们使用SonarQube来
  • 在 POST 负载中使用环境变量

    我可以在我发布的有效负载中使用先前测试中设置的环境变量吗 eg POST list some key environment saved value 是的 你可以这么做 你这样发送 some key environment variable
  • Postman - 使用密钥文件进行 JWT 身份验证

    我正在尝试使用 Postman 来测试在 Google Cloud Platform 上开发的 API API 端点后面的 App Engine 我有 JSON 格式的密钥文件 type service account project id
  • Postman请求带body表单数据转json

    我和邮递员有问题 For one side I can make this request with the body in form data 但是 当我尝试使用 raw json 中的正文发送相同的请求时 我得到了 我正在尝试通过 An
  • 如何使用 Postman Collection 生成代码

    我知道可以从单个 Postman 请求生成代码片段 但我找不到整个集合的类似功能 我还知道有类似的工具newman https www npmjs com package newman用于运行 Postman Collection 2 1
  • Spring boot oauth:不支持的授予类型

    请帮助我 不受支持的拨款类型让我发疯 我的春季启动设置如下所示 Configuration EnableAuthorizationServer public class AuthServerConfig extends Authorizat
  • 304 If-None-Match有效时未修改

    我正在优化 Express JSON API 以供 iOS 和 Android 应用程序使用 当应用程序在 If None Match 标头中指定 etag 时 似乎无法让 Express 使用正确的 304 标头进行响应 我不需要设置 E
  • 将 csv 文件添加到 HTTP POST

    我想发送一个邮递员 HTTP POST 在此请求中 对于关键 fisier 我想附加一个 csv 文件 如何做到这一点 https i stack imgur com Pnkii png https i stack imgur com Pn
  • 邮递员 - 为每个请求覆盖用户代理

    我有一个网站 只有在基本身份验证登录后才能访问 您可以使用特定的用户代理绕过它 有没有办法始终将新请求的用户代理设置为某个值 目前它被硬编码为PostmanRuntime 7 29 0 目前 我总是为每个请求手动设置它 但这会减慢工作流程
  • 使用POSTMAN时不会出现CORS问题

    我已经使用 POSTMAN 发送一段时间了HTTP requests like GET POST PUT用于 RESTful Web 服务 最近遇到一种情况 当通过浏览器向我的 REST API 发送请求时 我收到一条消息 请求的资源上不存
  • 更改 PostMan 中的响应

    我正在使用开放 API 但我只使用了 API 提供的响应中的一小部分数据 当我使用具有不同参数的 API 进行测试以查看响应时 我不想每次发送请求时都看到整个 API 响应 我只想查看我感兴趣的数据 例如 响应有 3 个对象 Status
  • 帖子中的 req.body 为空

    突然之间 我的所有项目都发生了这种情况 每当我使用express和body parser在nodejs中发帖时req body是一个空对象 var express require express var bodyParser require
  • 如何使用邮递员查看返回的 html 呈现为网页

    我正在与邮递员一起测试 Flask 应用程序 我注意到 如屏幕截图所示 我收到了返回的 HTML 我知道过去我能够看到返回的 HTML 呈现为网页 但现在我不能 尽管单击各种按钮 如何将返回的 html 作为网页查看 In order to
  • Postman:如何在运行时删除/清除postman环境变量

    有没有办法在运行时使用函数删除 清除邮递员环境变量 我可以设置为空白或一些特殊值 但是有通用的处理方法吗 沙盒APIpm environment unset variableName 也允许这样做 如果您想立即清除所有环境变量 您可能需要执
  • 使用 Postman 获取并存储 cookie 的值 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要获取 cookie 的值 该值仅在我在邮递员中发送请求时创建 我已经尝试了一切 但我不知道如何实现这一目标 我还需要存储该值以便在我的
  • php 解码 JSON 获取值

    我正在尝试解码 JSON 格式 我要发送的是 id 123 name John surname Smith department 3 我正在通过 Postman 发送带有数据的 POST 如图所示 所以 这是我想要解码的数据 data se
  • 如何禁用 Postman 应用程序的自动更新

    有没有办法禁用 Postman 中的更新 7 26 对我来说有问题 它会在 nresponses 上冻结较大的调试数据 但 7 23 运行得很好 但即使我将 自动下载主要更新 设置为禁用 也没有帮助 因为这是一个次要更新并会自动应用 有没有
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的

随机推荐

  • Android自定义导览地图组件(一)

    丨版权说明 Android自定义导览地图组件 一 于当前CSDN博客和乘月网属同一原创 转载请说明出处 谢谢 鉴于Android关于自定义导览地图的相关资料以及开源项目贫乏 应Android同行几位小伙伴们的建议 决定写下这篇文章分享给大家
  • 团队管理的一些总结

    这将近三年 我在公司经历了很多事情 在学习中成长 很多时候我都在总结每个步骤和过程我取得的成绩和失败 如果说我们需要一个有效性高的团队 需要一个能够创造奇迹的团队 那么我觉得如下这些就是我经历了这么多得到的启示 1 必须明确目标 当然这个目
  • CANopen基本概念学习笔记

    参考文献 Kinco FD CD3系列伺服驱动器使用手册20210125 CANopen协议讲解课件 信捷 CANopen 通讯用户手册 基于CANopen协议的网络主控制器的设计 前置文章 CAN总线技术基本概念简述 0 CANopen简
  • 【分布式ID】理解Snowflake算法的实现原理

    1 概述 转载 冷饭新炒 理解Snowflake算法的实现原理 我上次也看了一个视频讲解 分布式ID 键高并发 分布式 全局唯一 ID 雪花算法 snowflake 2 前提 Snowflake 雪花 是Twitter开源的高性能ID生成算
  • idea 的使用与快捷键

    前面写过一篇IDEA的入门级文章 但是只学会了那些配置啊什么的并不能提高我们的开发效率 事实上 如果你IDEA用的足够熟练 就可以把鼠标扔了 附入门级教程传送门 http blog csdn net qq 31655965 article
  • 使用两个栈(stack)实现一个队列(queue)

    题目 已知下面Stack类及其3个方法Push Pop和Count 请用2个Stack实现Queue类的入队 Enqueue 出队 Dequeue 方法 class Stack public void Push int x Push an
  • C# Revit二次开发基础/核心编程--- 元素Element(基础、编辑)

    一 本节课程 C Revit二次开发基础 核心编程 元素Element 基础 编辑 二 本节要讲解的知识点 元素Element的基础概念 如何编辑元素 具体内容 元素Element基础 元素在Revit里面尤其重要 用户能看见的大多数对象都
  • gsoap工具生成wsdl接口 注意事项

    wsdl是通过wsdl文件作为不同应用的通信接口 所以如何生成wsdl语言很重要 但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2 exe从头文件中无法正常生成对应的wsdl语言 几经寻找 终于发现 通过对应头文件 h
  • 使GDAL库支持中文路径或中文文件名的处理方法

    之前生成的gdal 2 1 1动态库 在通过命令行执行时 遇到有中文路径或中文图像名时 GDALOpen函数不能正确的被调用 如下图 解决方法 1 在所有使用GDALAllRegister 语句后面加上一句CPLSetConfigOptio
  • 万万没想到,曾经以为的 VSCode 专属代码工具,竟然可以这样…

    如果你知道 VSCode 一说起它 你可能第一个想到的就是把它当做一个代码编辑器 而它的界面应该可能大概率是这样的 如果你恰好又是个程序员 那你可能经常会用到它 不管是 Python JS 还是 C 等各种语言对应的文件 都可以用它来进行简
  • Java中使用MultipartFile 接受图片或者文件超过2MB就会出现异常MultipartFile类型不能接受

    解决方法 在配置文件中写入这个配置 然后就可以根据业务在进行限制了
  • 混淆保护需正确命名!看.NET Core代码保护工具.NET Reactor如何规定

    NET Reactor是一个功能强大的代码保护和软件许可系统 适用于为 NET Framework编写的软件 并支持生成 NET程序集的所有语言 NET Reactor迎来了久违的版本更新 进入v6 3 0 0全新时代 支持Blazor保护
  • 大端对齐 和小端对齐

    大端对齐 高内存地址放整数高位 低内存地址放整数低位 例如x86 arm都是采用大端对齐 小端对其 高内存地址放整数低位 低内存地址放整数高位 例如unix大型服务器 转载于 https www cnblogs com Json28 p 1
  • Linux内核文件系统知识大总结

    1 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • crash 工具使用

    1 rd 命令 用法 读取内核虚地址或者内核符号值 默认16进制显示 类型为unsigned long 并且会将值对应的ascii码显示出来 rd lt 内核地址 gt 或 rd lt 内核符号 gt 如果不需要将右边的ascii码显示出来
  • 【AIX 命令学习】lspv -M hdisk1

    lspv M hdisk1查看 hdisk1物理分区与逻辑分区的对应关系 pvname PP PP LVname LP COPY PVname 系统指定的物理卷名称 PP物理卷上的物理分区编号 如果一段连续的物理分区是空闲的 则使用一段PP
  • 计算机网络之7层协议

    7层协议图解 通俗的理解 1 首先物理层解决两个硬件之间怎么通信 具体就是一台发些比特流 然后另一台能收到 物理层的作用 主要定义物理设备标准 如网线的接口类型 光纤的接口类型 各种传输介质的传输速率等 它的主要作用是传输比特流 就是由1
  • el-tabs中使用Echarts警告。Can‘t get DOM width or height. Please check dom.clientWidth and dom.clientHeight

    具体警告 Can t get DOM width or height Please check dom clientWidth and dom clientHeight They should not be 0 For example yo
  • SnowFlake 雪花算法实现以及详解

    背景简介 现在的服务基本是分布式 微服务形式的 而且大数据量也导致分库分表的产生 对于水平分表就需要保证表中 id 的全局唯一性 对于 MySQL 而言 一个表中的主键 id 一般使用自增的方式 但是如果进行水平分表之后 多个表中会生成重复
  • 软件测试基础之软件缺陷处理

    一 什么是缺陷 不满足用户确定需求 影响软件功能实现的问题 故障 缺陷就是人们通常所说的bug ex 一下哪一种选项不属于软件缺陷 A 软件没有实现产品规格说明所要求的功能 B 软件中出现了产品规格说明不应该出现的功能 C 软件实现了产品规