测试的BUG分析

在了解BUG之前,我们要先了解软件测试的生命周期,因为大多数BUG都是在软件测试的过程中被发现的

软件测试的生命周期

在了解 软件测试的生命周期 之前,我们要先了解 软件的生命周期 ,虽然他们之间只差了两个字,但是差距还是很大的

首先是 软件生命周期 ,这个是站在 软件 的角度而言的

其次是 软件测试的生命周期 ,这个是站在 测试 的角度来看的

接下来我将重点介绍软件测试的生命周期

将上面的流程图中的每一步进行详解:

需求分析

用户角度: 软件需求是否合适

技术角度: 技术上是否可行,是否有优化空间

测试角度: 是否存在业务逻辑错误、冗余、冲突等问题

测试计划

什么是进行开发测试,什么时候结束测试,测试耗时多久

测试设计与开发

参考需求文档、技术文档等编写测试用例

写测试文档,明确标注使用到的测试方法、测试工具,要测试哪些,进行什么样的测试

测试执行

利用测试用例和测试工具对项目进行尽可能全面的测试覆盖

测试评估

测试是否通过,是否还有遗留的BUG,最后测试人员产出一个测试报告

上线

项目测试结束后,将项目发布到线上环境,测试人员许需要跟踪上线并测试在线上环境下软件是否能正常运行

运行维护

测试人员需要参与项目的实施工作.要求测试人员要对项目的业务和操作非常了解,同时要求测试的沟通表达能力较强,能够参与用户使用软件的培训,在试运行项目时收集文图并及时给出反馈

BUG

概念

一个计算机BUG是指在计算机程序中存在的错误、缺陷、疏忽和故障,导致程序无法正确运行,一般产生于程序的源代码或者程序设计初期就存在的错误

所以: 程序和规格说明书之间不匹配的就是错误,但是当规格说明书里面没有提到一个功能,那么就要以最终用户为准: 当程序没有实现其最终用户合理预期的功能时,那就是软件错误 

描述BUG

在说明一个BUG的时候,往往要求详细且精确,所以在描述时就需要根据基本要素来描述

基本要素: 问题出现的版本、出现的环境、出现的步骤、预期结果、实际结果 

举个例子,当我的游戏无法进行登录时:

问题出现的版本: XXXX 3.1

问题出现的环境: Windows10

出现的步骤:

1.打开游戏,点击登录按钮,显示登录成果

2.点击进入游戏

预期结果:进入游戏大厅,弹出签到奖励,自动进行签到

实际结果:无法进入游戏大厅,画面卡住登录页面

BUG级别

在反馈BUG时,测试人员需要对BUG进行分级处理,来突出BUG的严重程度,以便开发人员能够按照BUG的级别来进行优先处理

还是举一个例子吧:

如果我们不使用分级策略

此时BUG1先出现: 用户登陆后,无法正常与某一接口进行交互

BUG2后出现: 已经注册过的用户发现自己的账号不存在了,手机号又可以重新注册了

如果不按照分级,开发人员可能就要按照先后顺序来处理,但是显然BUG2更严重,很可能是数据库出现了问题,所以此时就会造成更多的问题

那么具体要分为哪些级别呢?

BUG的级别一般分为: 崩溃、严重、一般、次要 

崩溃

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

一旦出现这种级别的错误就要立即中断当前版本的测试,但是出现次数较少

严重

系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。如:软件中数据保存后数据库中显示错误,用户所要求的功能缺失,程序接口错误,数值计算统计错误等

该等级问题出现在不影响其他功能测试的情况下可以继续该版本测试

一般

功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。如:操作时间长、查询时间长、格式错误、边界条件错误,删除没有确认框、数据库表中字段过多等

该问题实际测试中存在最多

次要

界面、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。如:错别字、界面格式不规范,页面显示重叠、不该显示的要隐藏,描述不清楚,提示语丢失,文字排列不整齐,光标位置不正确,用户体验感受不好,可以优化性能的方案等

此类问题在测试初期较多,优先程度较低;在测试后期出现较少,应及时处理

BUG的生命周期

既然软件测试和软件都有生命周期,那么BUG当然也有生命周期

测试人员在执行测试的过程中如果发现了BUG,需要在对应的BUG管理平台创建BUG(生命start),创建好之后要被开发人员修复,同时测试人员需要持续地跟进和测试

  • New: 新发现的Bug,未经评审决定是否指派给开发人员进行修改。

  • Open: 确认是Bug,并且认为需要进行修改,指派给相应的开发人员。

  • Fixed: 开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。

  • Rejected: 如果认为不是Bug,则拒绝修改。

  • Delay: 如果认为暂时不需要修改或暂时不能修改,则延后修改。

  • Closed: 修改状态的Bug经测试人员的回归测试验证通过,则关闭Bug。

  • Reopen: 如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。

无效的bug: open->closed open-rejected-closed

与开发产生争执怎么办?(这里必看!!)

在测试工作中,可能会与开发人员发生争执,比如认为不是BUG、关于级别的定义有不同的意见、BUG影响大不大?是否要立马进行修改

遇到这种情况要怎么解决呢?

  • 先检查自己,是否描述准确

  • 站在用户的角度来考虑并且抛出问题

  • BUG的定级是否有理有据

  • 提高自己的技术和业务水平,在提出问题的同时,最好要能够提出解决方案

  • 进行BUG评审(如果的确是BUG,且沟通没有解决问题),由测试代表、开发代表和产品代表组成(项目组的每一个负责方面都要派出代表参加)

    • 决定如何处理BUG

    • 分析产生的原因,找出预防的对策

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

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

相关文章

【洛谷贪心算法题】P1094纪念品分组

该题运用贪心算法,核心思想是在每次分组时,尽可能让价格较小和较大的纪念品组合在一起,以达到最少分组的目的。 【算法思路】 输入处理:首先读取纪念品的数量n和价格上限w,然后依次读取每件纪念品的价格,…

[STM32]从零开始的STM32 BSRR、BRR、ODR寄存器讲解

一、前言 学习STM32一阵子以后,相信大家对STM32 GPIO的控制也有一定的了解了。之前在STM32 LED的教程中也教了大家如何使用寄存器以及库函数控制STM32的引脚从而点亮一个LED,之前的寄存器只是作为一个引入,并没有深层次的讲解,在教…

SQL分组问题

下列为电商公司用户访问时间数据 统计某个用户连续的访问记录,如果时间间隔小于60s,就分为一组 id ts 1001 17523641234 1001 17523641256 1002 17523641278 1001 17523641334 1002 17523641434 1001 17523641534 1001 17523641544 1002 17523…

3月2日 C++日常习题测试一答案

C测试题答案与讲解 一、填空题答案及讲解 答案:const 讲解:在 C 中,const关键字用于定义常量,一旦定义,其值不能被修改。例如const int num 10;,这里的num就是一个常量。 答案:3 讲解&…

2W8000字 LLM架构文章阅读指北

❝ 大模型架构专栏已经更新了30多篇文章。完整的专栏内容欢迎订阅: LLM 架构专栏 1、LLM大模型架构专栏|| 从NLP基础谈起 2、 LLM大模型架构专栏|| 自然语言处理(NLP)之建模 3、 LLM大模型架构之词嵌入(Part1) 3、 LLM…

SP导入智能材质球

智能材质球路径 ...\Adobe Substance 3D Painter\resources\starter_assets\smart-materials 放入之后就会自动刷新

网络原理----TCP/IP(3)

核心机制七----延时应答 默认情况下,接收方都是在收到数据报的第一时间,就返回ack,但是可以通过延时返回ack的方式来提高效率,理论上不是100%提高效率,但还是有一定帮助的。 因为如果接收数据的主机⽴刻返回ACK应答,…

MacBook Pro使用FFmpeg捕获摄像头与麦克风推流音视频

FFmpeg查看macos系统音视频设备列表 ffmpeg -f avfoundation -list_devices true -i "" 使用摄像头及麦克风同时推送音频及视频流: ffmpeg -f avfoundation -pixel_format yuyv422 -framerate 30 -i "0:1" -c:v libx264 -preset ultrafast -b:v 1000k -…

部署Joplin私有云服务器postgres版-docker compose

我曾经使用过一段时间 Joplin,官方版本是收费的,而我更倾向于将数据掌握在自己手中。因此,在多次权衡后,我决定自己搭建 Joplin 服务器并进行尝试。 个人搭建的版本与数据库直连,下面是使用 Docker Compose 配置数据库…

SQL的select语句完整的执行顺序

SQL的SELECT语句的执行顺序可以用"做菜流程"来类比理解。虽然我们写SQL时按SELECT…FROM…WHERE…顺序写,但数据库执行顺序完全不同。以下是通俗易懂的讲解(附流程图和示例): 🔧 执行顺序流程图&#xff1a…

Spring Cloud LoadBalancer详解

一、介绍 Spring Cloud LoadBalancer是Spring Cloud官方自己提供的客户端负载均衡器,抽象和实现,用来替代Ribbon(已经停更), 二、Ribbon和Loadbalance 对比 组件组件提供的负载策略支持负载的客户端Ribbon随机 RandomRule轮询 RoundRobinRule 重试 RetryRule最低并发 Bes…

ubuntu中ollama设置记录

自己同一台电脑主机安装3080和3090显卡,测试发现ollama只默认跑在3090上;故查看一下设置,成功也把3080也运行起来了。 原因如下: 开始设置记录: Environment Variables: OLLAMA_DEBUG 作用:显示额外的调试…

RabbitMQ系列(四)基本概念之Exchange

在 RabbitMQ 中,Exchange(交换机) 是消息路由的核心组件,负责根据规则将生产者发送的消息分发到对应的队列(Queue)中。以下是其核心功能与分类的详细说明: 一、Exchange 的核心作用 消息路由枢…

有没有什么免费的AI工具可以帮忙做简单的ppt?

互联网各领域资料分享专区(不定期更新): Sheet 正文 1. 博思AIPPT 特点:专为中文用户设计,支持文本/文件导入生成PPT,内置海量模板和智能排版功能,涵盖商务、教育等多种场景。可一键优化布局、配色,并集成AI绘图功能(文生图/图生图)。适用场景:职场汇报、教育培训、商…

【Python · PyTorch】循环神经网络 RNN(基础应用)

【Python PyTorch】循环神经网络 RNN(简单应用) 1. 简介2. 模拟客流预测(数据集转化Tensor)3.1 数据集介绍3.2 训练过程 3. 模拟股票预测(DataLoader加载数据集)3.1 IBM 数据集3.1.2 数据集介绍3.1.3 训练…

【JSON2WEB】15 银河麒麟操作系统下部署JSON2WEB

【JSON2WEB】系列目录 【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSO…

地基简识Spring MVC 组件

Spring MVC 是一个基于 MVC 设计模式的框架,其核心组件协同工作以处理 HTTP 请求并生成响应。以下是各组件的详细说明及其协作流程: 一、​核心组件 ​DispatcherServlet(前端控制器)​ ​作用:接收所有请求并协调其他…

Spring Boot(七):Swagger 接口文档

1. Swagger 简介 1.1 Swagger 是什么? Swagger 是一款 RESTful 风格的接口文档在线自动生成 功能测试功能软件。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。目标是使客户端和文件系统作为服务器以同样的…

cursor 弹出在签出前,请清理仓库工作树 窗口

问题出现的背景:是因为我有两台电脑开发,提交后,另一个电脑的代码是旧的,这个时候我想拉取最新的代码,就会出现如下弹窗,因为这个代码暂存区有记录或者工作区有代码的修改,所以有冲突&#xff0…

Cocos Creator3.8.6拖拽物体的几种方式

文章目录 前言一、第一种通过UILocation二、第二种通过UIDelta实现总结 前言 在游戏开发中,拖拽物体是一个非常常见的交互功能,无论是用于UI元素的拖动,还是场景中物体的移动,拖拽操作都能极大地提升用户体验。Cocos Creator 3.8…