【软件测试】bug篇|软件测试的生命周期|描述bug的要素|bug的级别|bug的生命周期|高频面试题:与开发产⽣争执怎么处理

news2024/9/21 2:05:57

目录

一、软件测试的⽣命周期

二、BUG

2.1 bug的概念

2.2 描述bug的要素

2.3 bug级别

2.4 bug的⽣命周期

💡2.5 与开发产⽣争执怎么办(⾼频考题)


💡 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站


一、软件测试的⽣命周期

💡软件测试贯穿软件的整个生命周期

各阶段具体内容:

测试人员不仅要具备开发能力,测试能力,最好具备一定的产品分析能力

测试执行结束后,不能认为项目100%的问题都被发现了,问题是不可能被完全发现的

上线:

学习中,本地写的代码提交到码云/部署到服务器上,可以称为一个上线流程

实际在工作中,上线要分为多个步骤:沙盒,小流量,全流量,全上线

沙盒:企业内部的线上环境,可以供内部人员进行测试

小流量:部分线上真实的用户可以使用到,测试人员要在线上手动测试,还要观察有没有错误日志(真实用户在使用过程中是否出现了问题)

全流量:所有的真实用户都可以使用到

因为上线的过程中可会存在问题,线下测试没有问题,如果直接推到线上可能会发现问题

线上环境和线下环境并不是完全一样的,因此每一步都需要跟进测试


二、BUG

2.1 bug的概念

定义:⼀个计算机bug指在计算机程序中存在的⼀个错误(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),这些bug使程序⽆法正确的运⾏。Bug产⽣于程序的源代码或者程序设计阶段的疏忽或者错误

💡准确来说:

(1)当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误

(2)当需求规格说明书没有提到的功能,判断标准以最值的用户为准;当程序没有实现其最终用户合理预期的功能要求时,就是软件错误


2.2 描述bug的要素

|为什么描述bug还有要素要求?

在⼼理学上说,⼈们在编写⽂档的时候,经常会出现⾃⼰想表达的和写出来的内容往往南辕北辙

|错误的bug描述:浏览器打开链接失败

该描述下,没有明确说明哪个浏览器,失败的具体表现是什么,对于开发⼈员来说⽆法捕捉到更多有效的信息,会造成沟通效率低下,⼯作质量低下等问题

💡描述bug的基本要素:问题出现的版本,问题出现的环境,问题出现的步骤,预期结果,实际结果

bug的基本要素包含但是不仅限于这些

例子:

1.问题出现的版本:版本124.0.6367.202(正式版本)(64位)【浏览器的版本,软件产品的版本】

2.问题出现的环境:window系统的版本xxx 【产品的运行环境】

3.问题出现的步骤:

(1)打开谷歌浏览器

(2)输入网址:http://xxxxx

(3)找到登陆窗口

|上面都是通过具体信息来还原bug

4.预期结果:二维码没有被遮挡,可以微信扫描添加二维码用户 【复现bug】

5.实际结果:二维码被遮挡,微信无法添加二维码用户


2.3 bug级别

|为什么要定义bug级别?

(1)评估程序员的开发能力

(2)年终奖

(3)给bug修复顺序排序

💡bug级别⼀般分为:崩溃、严重、⼀般、次要

崩溃严重⼀般次要
阻碍开发或测试⼯作的问题;造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发⽣死锁、重要的⼀级菜单功能不能使⽤等(该问题在测试中较少出现,⼀旦出现应⽴即中⽌当前版本测试)。系统主要功能部分丧失、数据库保存调⽤错误、⽤⼾数据丢失,⼀级功能菜单不能使⽤但是不影响其他功能的测试。功能设计与需求严重不符,模块⽆法启动或调⽤,程序重启、⾃动退出,关联程序间调⽤冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显⽰错误,⽤⼾所要求的功能缺失,程序接⼝错误,数值计算统计错误等(该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试)。功能没有完全实现但是不影响使⽤,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间⻓、查询时间⻓、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等(该问题实际测试中存在最多)界⾯、性能缺陷,建议类问题,不影响操作功能的执⾏,可以优化性能的⽅案等。如:错别字、界⾯格式不规范,⻚⾯显⽰重叠、不该显⽰的要隐藏,描述不清楚,提⽰语丢失,⽂字排列不整⻬,光标位置不正确,⽤⼾体验感受不好,可以优化性能的⽅案等(此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理)

2.4 bug的⽣命周期

测试⼈员在执⾏测试的过程中如有发现bug,需要在对应的bug管理平台来创建bug(bug⽣命起

源),创建好的bug需要被开发⼈员修复,以及测试⼈员的持续跟踪和测试


💡2.5 与开发产⽣争执怎么办(⾼频考题)

(1)先检查自身,是否bug描述的不清楚

反省自己:是不是在测试的时候出现了误操作,bug描述是不是没有写清楚

(2)站在用户的角度并抛出问题

功能正常只是测试的一部分,还需要考虑用户的使用感受,如果你是用户,你能接受这样的界面/功能/使用吗?

(3)BUG定级要有理有据

bug定级描述文档拿出来,然后将bug的表现和bug定级描述文档进行匹配,说服程序员

(4)提⾼⾃⾝技术和业务⽔平,做到不仅能提出问题,最好也能给出解决⽅案

但是给出解决方案一定不要以命令的口吻要求开发人员按照自己的逻辑来修改

测试小白:更多的是提出问题(bug)

测试大牛:除了提出问题也能够定位到问题,给出解决方案

(5)bug评审

如果确实是bug,友好沟通不能解决问题,那么就召开bug评审

bug评审主要解决两个问题:

|(1)决定如何处理bug

|(2)分析缺陷产⽣的原因,找出预防的对策

bug评审⾄少需要项⽬组各个⽅⾯的代表参加:

1)测试代表

测试代表主要从Bug的具体表现、严重程度等⽅⾯提供信息,并提出⾃⼰对Bug的处理意⻅。需要注意的是,测试⼈员不应该⼀味地要求对Bug进⾏修改,因为修改可能带来回归的⻛险,同时带来的是回归测试的⼯作量,如果时间⽐较紧迫,修改后剩余的时间若不⾜以做⼀次有效的回归测试,可能不修改是个明智的选择。

2)开发代表

开发代表主要从修改缺陷的难度和⻛险出发,考虑缺陷修改需要付出的代价,以及可能影响的范围、可能引发的⻛险等,如果决定要修改,还要讨论出修改的初步⽅案。

3)产品代表

产品代表主要从产品的整体计划、⽤⼾的要求等⽅⾯对缺陷的修改必要性、缺陷修改的时间和版本提出⾃⼰的意⻅

 

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

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

相关文章

四川省税务局CDH国产化替代实践

“传统数据仓库对于数据处理时效较低,且无法处理实时增量数据及数据变更,同时,在面对海量税务数据大规模进行查询分析等方面存在一些挑战。我们希望尽快寻找到一款能够替代CDH,并且具备灵活扩展能力的大数据解决方案,以…

Kubernetes 容器资源管理Resources和探针Probe

资源配额 Resources 在 Kubernetes 中,resources 配置用于设置容器的资源请求和限制,以确保集群中的资源(如 CPU 和内存)得到合理分配和使用。 在之前的pod中,不写 resources 字段。就意味着 Pod 对运行的资源要求“…

集智书童 | YOLOv10开源|清华用端到端YOLOv10在速度精度上都生吃YOLOv8和YOLOv9

本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。 原文链接:YOLOv10开源|清华用端到端YOLOv10在速度精度上都生吃YOLOv8和YOLOv9 在过去几年中,YOLO系列模型已成为实时目标检测领域的主导范式…

图像处理之基于标记的分水岭算法(C++)

图像处理之基于标记的分水岭算法(C) 文章目录 图像处理之基于标记的分水岭算法(C)前言一、基于标记点的分水岭算法应用1.实现步骤:2.代码实现 总结 前言 传统分水岭算法存在过分割的不足,OpenCV提供了一种…

图片提取表格要怎么做?7个软件教你快速进行图片识别

图片提取表格要怎么做?7个软件教你快速进行图片识别 要从图片中提取表格,您可以使用以下七款软件来快速进行图片识别和表格提取: 1.一键识别王:这是一款专业的OCR(光学字符识别)软件,可以帮助…

在通过跨网文件交换时,如何保障科研结构核心研究数据?

当今科研领域,数据如同生命线,支撑着每一个突破性发现的诞生。随着国际合作的加深,跨网文件交换成了常态,但这也为科研机构的核心研究数据安全带来了一系列挑战。想象一下,那些精心搜集和分析的宝贵数据,在…

【Typescript】通过变量的值即可获取变量的类型【typeof 变量】

注意:只要变量的类型准确,则typeof获取变量的类型就不会错 enum Test {a "a0",b "b0" }// 这里的a是一个变量的值 let a: Test.a "a0" as Test.a// 这里的typeof a是一个类型【Test.a】 let x: typeof a Test.a

【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路&#x1…

Jlink卡死 JFlash keil 盗版JLINK

现象:用Keil打开Jlink配置页,会卡死。 解决方法:用旧版本的Jlink软件,因为淘宝买的很多JLINK下载器是盗版的,不支持新版本的JLINK软件。到https://www.segger.com/downloads/jlink下载旧版本的软件。 如果必须要用新版…

重量and体积,不要在傻傻的花冤枉钱寄快递了!

寄快递时有没有遇到过明明不重却被按体积收费的情况?别急,今天就来给大家揭秘快递收费的奥秘! 实际重量和体积重量! 首先,我们要明白两个概念:实际重量和体积重量。实际重量就是你看到的物品重量&#xf…

安装vllm的时候卡主:Collecting vllm-nccl-cu12<2.19,>=2.18 (from vllm)

按照vllm的时候卡主: ... Requirement already satisfied: typing-extensions in /home/wangguisen/miniconda3/lib/python3.10/site-packages (from vllm) (4.9.0) Requirement already satisfied: filelock>3.10.4 in /home/wangguisen/miniconda3/lib/python…

推荐二轮电动车仪表盘蓝牙主芯片方案-HS6621CGC

随着国内二轮电动车的火热开启,电动车的智能化程度越来越高;电动车的智能操控需求也越来越高,现在介绍蓝牙控制面板的一些功能;例如:定位(GNSS),设防,实时上报数据&#…

ctfshow web入门 web306--web310源码审计

web306 这和之前的完全不一样了 <?php #error_reporting(0); session_start(); require service.php;$username$_POST[userid]; $userpwd$_POST[userpwd]; $servicenew service();$user$service->login($username,$userpwd); if($user){setcookie(user,base64_encode(…

JAVA中的代理:代理的作用+静态代理的实现+动态代理的实现

JAVA中的代理&#xff1a;代理的作用静态代理的实现动态代理的实现 一、代理的作用二、静态代理实现方式2.1 实现原理2.2 示例 三、动态代理 一、代理的作用 代理是一种设计模式 主要目的&#xff1a;提供了对目标对象另外的访问方式 代理的好处&#xff1a; 目标对象可以间…

告别低效率||智能BI财务分析软件

在当今信息爆炸的时代&#xff0c;财务数据作为企业运营的核心&#xff0c;其处理和分析的效率直接关系到企业的决策速度和市场竞争力。奥威BI软件凭借其卓越的性能和智能化的分析功能&#xff0c;为企业提供了一套高效、准确的财务分析解决方案。 奥威BI软件在财务分析中的优…

从0开始回顾ElasticSearch

1 elasticsearch概述 1.1 elasticsearch简介 官网: https://www.elastic.co/ ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java开发的&#xff0c;并作为Apache许可条款下的…

angr使用学习(持续更新)

首先我是直接在kali中安装的&#xff0c;也是边练边学的。 嗯&#xff0c;要在纯净python环境&#xff0c;所以是在 virtualenv 虚拟环境里&#xff0c;也不是特别会用这个&#xff0c;按照教程一步步做的 source venv/bin/activate 进入了对应环境 退出是 deactivate en,ipy…

重生之 SpringBoot3 入门保姆级学习(06、属性绑定)

重生之 SpringBoot3 入门保姆级学习&#xff08;06、属性绑定&#xff09; 2.3.1 使用 ConfigurationProperties2.3.2 使用 EnableConfigurationProperties 2.3.1 使用 ConfigurationProperties application.properties 文件书写相关配置 pig.id1 pig.name王萍 pig.age21方法一…

Sping源码(九)—— Bean的初始化(非懒加载)— ConversionService

序言 经过前面一系列的加载、解析等准备工作&#xff0c;此刻refresh方法的执行已经来到了尾声&#xff0c;接下来我们用几篇文章着重的介绍一下Bean的初始化 代码 着重看refresh()主流程中的finishBeanFactoryInitialization()方法。 finishBeanFactoryInitialization 方法…

python深入探索斐波那契数列:代码示例与不满足的外围条件

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、斐波那契数列的初步实现 二、外围条件的不满足情况 总结 一、斐波那契数列的初步实现 …