测试的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

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

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

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

相关文章

vue3+ts实现动态下拉选项为图标

功能&#xff1a;实现可配置项&#xff0c;下拉选项为图标&#xff0c;如图&#xff1a; 代码如下&#xff1a; <el-select v-model"BuyVolAcc" size"small" style"width: 100%" class"icon-selector"><el-option v-for&qu…

C语言(15)-------------->一维数组

这篇文章介绍的是数组的定义、创建、初始化、使用&#xff0c;在数组中输入内容并输出数组中的内容&#xff0c;并探讨了数组在内存中的存储。里面有些内容建议大家参考下面的一些文章&#xff0c;有助于加深大家对于C语言的理解&#xff1a; C语言&#xff08;2&#xff09;-…

RISCV指令集解析

参考视频&#xff1a;《RISC-V入门&进阶教程》1-4-RV32I基本指令集&#xff08;1&#xff09;_哔哩哔哩_bilibili privilege是特权指令集&#xff0c;有点系统调用的感觉&#xff0c;要走内核态。unprivilege指令集有点像普通的函数调用。

2.27 链表中等 817

817. Linked List Components class Solution { public:int numComponents(ListNode* head, vector<int>& nums) {// 将 nums 存储到一个 unordered_set 中&#xff0c;方便 O(1) 查找unordered_set<int> numSet(nums.begin(), nums.end());int count 0;bool …

NFC拉起微信小程序申请URL scheme 汇总

NFC拉起微信小程序&#xff0c;需要在微信小程序开发里边申请 URL scheme &#xff0c;审核通过后才可以使用NFC标签碰一碰拉起微信小程序 有不少人被难住了&#xff0c;从微信小程序开发社区汇总了以下信息&#xff0c;供大参考 第一&#xff0c;NFC标签打开小程序 https://de…

rustdesk远程桌面自建服务器

首先&#xff0c;我这里用到的是阿里云服务器 centos7版本&#xff0c;win版客户端。 准备工作 centos7 服务器端文件&#xff1a; https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip win版客户端安装包&#xff1…

ERROR “GET /mobiles/13344444444/count/ HTTP/1.1“ 500 63503

背景&#xff1a; 美多的&#xff0c;这个问题我不知道那个老师为啥没讲&#xff0c;我直接去看了他的源码发现可恶&#xff0c;直接啥也没有&#xff0c;关键是他竟然跑的通 早知道用postman代替这个该死的刷新就好了&#xff0c;我写了差不多20多次 view.py的 class Mobile…

LabVIEW 项目长时间稳定运行注意事项

利用 LabVIEW 开发的上位机显示界面通过网络与数字板实现数据通讯&#xff0c;运行一周左右会出现一次数据掉线&#xff08;数据采集不上来&#xff09;&#xff0c;需重新 Connect 才能恢复的问题。 出现这种情况&#xff0c;可能是以下几方面原因导致&#xff1a; 网络通讯方…

MYSQL学习笔记(十):约束介绍(如:非空、唯一、主键、外键、级联、默认、检查约束)

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇讲解“约束”&#xff0c;如&#xff1a;非空、唯一、主键、外键、级联、默认…

打印九九乘法表

打印九九乘法表 package struct; ​ public class ForDemo04 {public static void main(String[] args) { ​for (int i 1; i < 9; i) {//System.out.println(1"*"i""(1*i));for (int j 1; j < i; j) {System.out.print(i"*"j"&qu…

实时时钟(RTC)/日历芯片PCF8563的I2C读写驱动(2):功能介绍

0 参考资料 PCF8563数据手册&#xff08;第 11 版——2015 年 10 月 26 日&#xff09;.pdf 1 功能介绍 1.1 实时时钟&#xff08;RTC&#xff09;/日历 &#xff08;1&#xff09;PCF8563支持实时时钟&#xff08;RTC&#xff09;&#xff0c;提供时、分、秒信息。对应寄存器…

Hadoop完全分布式安装配置

Hadoop完全分布式安装配置 Hadoop完全分布式安装配置 使用的三台主机名称分别为bigdata1&#xff0c;bigdata2&#xff0c;bigdata3。所使用的安装包名称按自己的修改&#xff0c;安装包可去各大官网上下载* 一.JDK: 1.解压&#xff1a; tar -zxvf /opt/software/jdk-8u212…

TinyEngine v2.2版本发布:支持页面嵌套路由,提升多层级路由管理能力开发分支调整

2025年春节假期已过&#xff0c;大家都带着慢慢的活力回到了工作岗位。为了让大家在新的一年继续感受到 Tiny Engine 的成长与变化&#xff0c;我们很高兴地宣布&#xff1a;TinyEngine v2.2版本正式发布&#xff01;本次更新带来了重要的功能增强------页面支持嵌套路由&#…

图像处理基础(8):图像的灰度直方图、直方图均衡化、直方图规定化(匹配)

本文主要介绍了灰度直方图相关的处理&#xff0c;包括以下几个方面的内容&#xff1a; • 利用OpenCV计算图像的灰度直方图&#xff0c;并绘制直方图曲线 • 直方图均衡化的原理及实现 • 直方图规定化&#xff08;匹配&#xff09;的原理及实现 图像的灰度直方图 一…

C++-第十二章: AVL树

目录 第一节&#xff1a;AVL树的特征 第二节&#xff1a;实现思路 2-1.插入 2-1-1.右单旋 2-1-2.左单旋 2-1-3.左右双旋 2-1-4.右左双旋 2-1-5.总结 2-2.删除 第三节&#xff1a;代码实现 3-1.Node类 3-2.AVLTree类 3-2-1.Insert函数 3-2-2.Height函数 3-2-3.Balance函数 3-…

学习路程八 langchin核心组件 Models补充 I/O和 Redis Cache

前序 之前了解了Models&#xff0c;Prompt&#xff0c;但有些资料又把这块与输出合称为模型输入输出&#xff08;Model I/O&#xff09;‌&#xff1a;这是与各种大语言模型进行交互的基本组件。它允许开发者管理提示&#xff08;prompt&#xff09;&#xff0c;通过通用接口调…

【fnOS飞牛云NAS本地部署DeepSeek-R1结合内网穿透远程访问告别服务器繁忙】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

ISIS(中间系统到中间系统)——基础

ISIS是一项通用的动态路由协议&#xff0c;其隶属于链路状态路由协议&#xff0c;最初运行与OSI七层的网络层&#xff0c;采用组播地址224.0.0.14和224.0.0.15两个组波段&#xff0c;由于其较高的拓展性与高速收敛&#xff0c;被大多数运营商网络所使用 起源 ISIS最初是由国际…

DeepSeek本地部署:开启智能搜索的本地之旅

前言 嘿&#xff0c;朋友们&#xff01;最近国产大模型DeepSeek特别火&#xff0c;以至于频繁出现反应迟缓甚至宕机的情况&#xff0c;和两年前ChatGPT刚推出时的遭遇颇为相似。这让我想起了那句老话&#xff1a;“自己动手&#xff0c;丰衣足食”。万幸的是&#xff0c;DeepSe…

初会学习记录

【25初级会计《实务》】第一章&#xff1a;权责发生制举例_哔哩哔哩_bilibili 务实&#xff1a; 第一章 (1)会计概念&#xff0c;职能和目标&#xff1a; 2025年2月25日&#xff1a; (2)会计假设&#xff1a; 2025年2月26日&#xff1a; (3)会计核算基础&#xff1a; 202…