当前位置: 首页 > news >正文

【软件测试】Bug 篇

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ  

今天给大家带来的是 【软件测试】Bug 篇首先了解, 什么是Bug如何定义一个Bug, 如何描述一个 Bug, Bug的级别, 和 Bug 的生命周期, 以及测试人员跟开发人员产生争执如何处理,.等问题. 一起来看看叭~


本期收录于博主的专栏: 软件测试_保护小周ღ的博客-CSDN博客

适用于编程初学者,感兴趣的朋友们可以订阅,查看其它 “软件测试内容”。

更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* ‘


一、Bug 的定义

  1. 当且仅当产品规格说明书存在且正确时, 程序的实现与规格说明书要求不匹配的时候, 就是软件错误. 简单说就是程序的功能实现与需求说明书不符合, 即可认定为 Bug.

  2. 当产品规格说明书没有提到的功能时, 以用户为准, 当程序没有实现其用户合理预期 (测试人员需具备良好的产品思维) 的要求时, 就是软件错误.

1.1 如何描述Bug

描述一个 Bug 的要素:

  1. 标题:简洁明了地概括问题

  2. 问题出现的版本: 浏览器、应用版本等相关信息

  3. 问题出现的环境: 操作系统, 设备等

  4. 出现步骤: 详细描述重现Bug的操作步骤

  5. 预期结果: 说明在正常情况下应该出现的结果。

  6. 实际结果: 描述实际遇到的错误或问题q

提 Bug : 博主网站登录界面,图形验证码,输入大写验证码, 导致验证码校验错误。

针对上述问题描述一个 Bug:

标题

登录时,进行图形验证码的校验,输入大写字母,导致验证码校验不通过, 进而用户无法登陆成功.

问题出现的版本:

Microsoft Edge版本 128.0.2739.9 (正式版本) stable应用,beta频道 (64 位)

出现问题的环境:

Windows 11 家庭中文版

问题出现的步骤:

  1. 启动 Microsoft Edge 浏览器, 地址栏输入 : http://127.0.0.1:18080(博主自己启动的程序)

  2. 页面自动跳转至登录界面, 输入用户名, 密码, 输入图形化验证码与之对应的文本 - YT65.

  3. 点击登录

  4. 提示验证码输入错误

预期结果: 验证码登录成功, 登录成功

实际结果: 验证码输入错误

Bug 归属: 后端问题 (我知道的) Bug 等级: (后面再详细讲解, 根据每个公司的设定来)

在测试的过程中: 如果我们测试的产品有很多版本, 只需要关注用户使用较多的版本(通常企业都会有数据健康后台, 能够监控到使用当前产品的用户所使用到的版本 / 环境), 我们的设备信息在http/ https 请求头中有所表现.


二、Bug 的级别

bug的定义每个公司都不一致,在定义级别之前需要查看公司规范。 以下为样例:

  1. 崩溃(Blocker):严重影响系统的主要功能,导致应用崩溃或无法运行, 阻碍开发或测试工作的问题. 例如 : 造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等.

  2. 严重(Critical):影响主要功能,但可以通过某些方式绕过或暂时解决. 例如 : 系统主要功能部分丧失、数据库保存调用错误、用户数据丢失. 功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。

  3. 一般(Major):对功能有一定影响,但不会严重阻碍使用,可能需要修复但不是紧急的. 例如:操作时间长、查询时间长、格式错误、边界条件错误等.

  4. 次要(Minor):影响较小的功能或用户体验,不会影响主要功能的使用,通常作为未来版本的改进点处理. 例如 : 界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等 .

在实际的工作中, 崩溃, 严重的bug 并不常见, 公司针对于不同的 Bug 等级, 对相关人员的惩罚机制也不一样, 同时 bug 的产生/等级也跟开发人员的技术水平有关.

如果程序有明显的/ 主功能问题, 或者主流程走不通, 测试人员进行项目打回, 开发人员应在提交代码前进行充分的单元测试, 集成测试等, 检查项目是否具备可测性.


三、Bug 的生命周期

同样, 每一个公司对于 bug 的生命周期的定义是不一致的.

测试人员在执行测试的过程中, 如果发现有 bug , 需要在对应的 bug 管理平台来创建 bug -- bug 的生命起源.

以下是常见的例子:

Bug 状态变更流程每个项目团队的实际做法可能不大一样。并且需要结合实际的开发流程和协作流程来 使用。 例如,测试人员新发现的Bug,由测试组长评审后才决定是否Open并分派给开发人员。测试人员 Open的Bug可以直接分派给Bug对应的程序模块的负责人,也可以要求都先统一提交给开发主管,由开 发主管审核后再决定是否分派给开发人员进行修改。 Bug的跟踪以及状态变更应该遵循一些基本原则: 测试人员对每一个缺陷的修改必须重新对一个包含更改后的代码的新版本进行回归测试,确保相同 的问题不再出现,才能关闭缺陷。 对于拒绝修改和延迟修改 Bug,需要经过包含测试人员代表和开发人员代表、用户方面的代表 (或代表用户角度的人)的评审。


3.1 测试的执行和BUG管理

  1. 打开待测试的系统

  2. 打开测试管理工具用例模

  3. 发现bug!进行复现并确认

  4. 记录bug

  5. 与开发人员沟通bug

  6. 验证修复后的bug

  7. 确认本次测试完成

  8. 编写测试报告


四、测试人员跟开发人员产生争执如何处理

软件测试的目的, 为了保障产品的质量, 但有些时候, 在开发人员眼中, 你就像是故意挑他刺, 开发人员直接否定三连: 这不是问题, 我没错, 不是我写的~

遇到争执不要怕,记住批判性思维:清楚--准确、切题--深刻,有意义,有逻辑性--公正、全面

  1. 检查自身:在报告 bug 时,要确保描述清楚,多反思自己,是不是 Bug 创建的时候描述不太清楚。如果发现描述不足或难以表达,立即找相关开发人员解释,避免等待他们主动联系你。

  2. 站在用户角度:让开发人员理解 bug 对用户的影响,增加解决问题的紧迫感。可以问:“如果你是用户,你能接受吗?”

  3. 合理定级:确定 bug 级别时 ,不仅要看 bug 的严重性,还要考虑其对用户流程的影响。站在用户角度来定级。

  4. 提升技术水平:除了提出问题,还能提出解决方案,这样更具说服力。资深测试工程师通常会提供解决思路,增加权威性。

  5. 处理拒绝:如果开发人员拒绝接受 bug,可以发起 bug 评审,避免争吵,寻找更客观的解决方式。


好了,到这里, 【软件测试】Bug 篇 博主已经分享完了,这只是简单的概念性的理解,希望对大家有所帮助,如有不妥之处欢迎批评指正。 

感谢每一位观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* 

遇见你,所有的星星都落在我的头上……

相关文章:

【软件测试】Bug 篇

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 今天给大家带来的是 【软件测试】Bug 篇,首先了解, 什么是Bug, 如何定义一个Bug, 如何描述一个 Bug, Bug的级别, 和 Bug 的生命周期, 以及测试人员跟开发人员产生争执如何处理,…...

oracle 多表查询

3.6多表查询 当查询的数据并不是来源一个表时,需要使用多表连接操作完成查询。多表连接查询通过表之间的关联字段,一次查询出多个表的数据。 3.6.1等值连接 等值连接也称为简单连接(Simple Joins)或者内连接(Inner Join)。通过等号来判断连接条件中的数据…...

layui 可以使点击图片放大

layui可以使图片点击放大&#xff0c;不用在写jquyery了真是很方便。 操作示例 引入 <link rel"stylesheet" href"https://cdn.jsdelivr.net/npm/layui-layer3.1.1/dist/layui.css" /> <script src"https://cdn.bootcdn.net/ajax/libs/jqu…...

制作网上3D展馆需要什么技术并投入多少费用?

制作网上3D展览馆项目&#xff0c;需要考虑以下技术和预算方面的信息&#xff1a; 技术需求&#xff1a; 1、三维建模技术&#xff1a;利用3D软件&#xff08;3ds max、maya、blender、c4d等&#xff09;制作展馆和展品的3D模型 2、Web3D技术&#xff1a;如WebGL&#xff0c…...

C++标准库容器类——string类

引言 在c中&#xff0c;string类的引用极大地简化了字符串的操作和管理&#xff0c;相比 C 风格字符串&#xff08;char*或cahr[]&#xff09;&#xff0c;std::string 提供了更高效和更安全的字符串操作。接下来让我们一起来深入学习string类吧&#xff01; 1.string 的构造…...

Qt --- 常用控件的介绍 --- 其他控件

一、QPushButton QWidget中设计到的各种属性/函数/使用方法&#xff0c;针对接下来要介绍的Qt的各种控件都是有效的。 使用QPushButton表示一个按钮&#xff0c;这也是当前我们最熟悉的一个控件了。这个类继承了QAbstractButton&#xff0c;这个类是一个抽象类&#xff0c;是…...

spark读取数据性能提升

1. 背景 spark默认的jdbc只会用单task读取数据&#xff0c;读取大数据量时&#xff0c;效率低。 2. 解决方案 根据分区字段&#xff0c;如日期进行划分&#xff0c;增加task数量提升效率。 /*** 返回每个task按时间段划分的过滤语句* param startDate* param endDate* param …...

一次使用threading.Thread来实现Pytorch多个模型并发运行的失败案例

文章目录 背景我的做法&#xff08;但证明不起效果&#xff09; 背景 我有多个pytorch GPU模型&#xff0c;他们有不同的参数&#xff08;也就是说不是共享的&#xff09;&#xff0c;但是相同的数据输入&#xff0c;想要并发运行。 不并发运行&#xff0c;当然就是循环喽。 …...

HashMap源码

简介 HashMap 是一种基于哈希表的 Map 接口实现&#xff0c;它存储键值对&#xff08;key-value pairs&#xff09;&#xff0c;并允许使用键来快速检索值。在 Java 中&#xff0c;HashMap 是 java.util 包的一部分&#xff0c;它不是同步的&#xff0c;这意味着它不是线程安全…...

探索 Web Speech API:实现浏览器语音识别与合成

引言 Web Speech API 是一项由 W3C 开发的 Web 标准&#xff0c;为开发者提供了在 Web 应用程序中实现语音识别和语音合成的能力。通过 Web Speech API&#xff0c;我们可以让网页与用户进行语音交互&#xff0c;实现更加智能化和便捷的用户体验。本文将深入探讨 Web Speech A…...

python基础题练习

1.可否定义一个sum函数呢&#xff1f;返回指定区间的值的和&#xff1f;例如&#xff0c;区间[1,4]的和为123410返回指定区间值的平方的和呢&#xff1f;立方呢&#xff1f; 代码&#xff1a; # 计算从start到end&#xff08;包括end&#xff09;的所有整数的和。 def sum_ra…...

工业交换机如何保证数据的访问安全

在现代工业自动化环境中&#xff0c;工业交换机作为关键的网络设备&#xff0c;扮演着数据传输和信息交互的重要角色。为了确保数据的访问安全&#xff0c;工业交换机不仅具备高效的转发性能&#xff0c;还集成了多层次的安全防护机制&#xff0c;以抵御各种潜在的网络威胁。 首…...

jmeter得到的文档数据处理

通过前面jmeter得到的输出文档&#xff0c;这里是txt文档&#xff0c;里面包含了很多条数据&#xff0c;每条数据的结构如下&#xff1a; 【request】 uuid&#xff1a;xxxxxxx timestamp&#xff1a;xxxxxxxx No.x question&#xff1a;xxxxxxx 【response】 code&#…...

12- 【JavaWeb】校园快递管理系统-数据库建设

项目概述 开发一个Javaweb校园快递管理系统&#xff0c;包含以下功能&#xff1a; 数据库设计 首先,我们需要设计数据库的表结构。主要包括以下表: 学生表: 存储学生的基本信息&#xff0c;姓名、手机号。快递表: 存储快递的信息&#xff0c;快递单号、收件人、收件人手机号、…...

Windows本地连接远程服务器并创建新用户详细记录

前提可知&#xff1a; &#xff08;1&#xff09;服务器IP地址&#xff1a;x.x.x.x &#xff08;2&#xff09;服务器名称&#xff1a;root&#xff08;一般默认为root&#xff0c;当然也有别的名称&#xff09; &#xff08;3&#xff09;服务器登陆密码&#xff1a;**** 一、…...

【kaggle竞赛】毒蘑菇的二元预测题目相关信息和思路求解代码

毒蘑菇的二元预测 您提供了很多关于不同二元分类任务的资源和链接&#xff0c;看起来这些都是Kaggle竞赛中的参考资料和高分解决方案。为了帮助您更好地利用这些资源&#xff0c;这里是一些关键点的总结&#xff1a; Playground Season 4 Episode 8 主要关注的竞赛: 使用银行…...

Pytest-allure如何在测试完成后自动生成完整报告?

一、完整步骤 常规allure报告的生成方法是在pytest全部用例执行完成后&#xff0c;手动在命令行执行如 allure generate ./temps -o ./report --clean每次用例执行完成后都要重复如此的操作&#xff0c;十分繁琐。 可以使用如下方式让用例执行完成后自动生成报告到当前目录下…...

数据结构-树(基础,分类,遍历)

数据结构-树 1.什么是树&#xff1f; 在计算机科学中&#xff0c;树是一种常用的非线性数据结构&#xff0c;用于表示具有层次关系的数据。与线性数据结构&#xff08;如数组和链表&#xff09;不同&#xff0c;树结构以节点&#xff08;Nodes&#xff09;和边&#xff08;Ed…...

CodeGeeX4:程序员的高效助手,多语言代码生成神器!

你是否曾在编写代码时&#xff0c;为复杂的语法、逻辑错误而绞尽脑汁&#xff1f;或是在面对多个编程语言的切换时&#xff0c;感觉脑子快要爆炸&#xff1f;别担心&#xff01;一款全新的多语言代码生成神器——CodeGeeX4&#xff0c;正悄然成为程序员们的“救命稻草”。它不仅…...

小程序组件间通信

文章目录 父传子子传父获取组件实例兄弟通信 父传子 知识点&#xff1a; 父组件如果需要向子组件传递指定属性的数据&#xff0c;在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似&#xff0c;使用数据绑定&#xff0c;这样就可以向子组件的属性传递动态数据。 父…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

xmind转换为markdown

文章目录 解锁思维导图新姿势&#xff1a;将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件&#xff08;ZIP处理&#xff09;2.解析JSON数据结构3&#xff1a;递归转换树形结构4&#xff1a;Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...