隐藏深的bug发现不了 ,有点挫备感 ,那是你没有进行bug总结 。

news2025/1/18 16:52:52
1.bug总结的意义

作为功能测试人员来说,可能有一半的时间都花在了和bug打交道上,比如如何发现bug ,提交bug ,跟踪bug以及回归bug上 。作为测试人员最重要的成果的bug ,我们往往更看重的是它的数量 ,却很少去思考这些它的发现逻辑以及产生原因 。其实在大厂 ,测试人员就很注重bug这座'金矿' .他们常常坐在一起去讨论一些有价值的bug以及这些bug是如何发现的 ? 通过这样的复盘会,你就能学习到一些bug带来的新方法,然后从而找出更多的bug 。

如上流程一样 ,测试方法和bug是相互可以促进正循环的 ,你的方法越多 ,发现的bug也就越多 ;bug越多 ,能总结出的方法也会越多。依次正向循环 。

在这里也提一下 ,bug还有一个另外一个作用就是通过总结bug,分析bug,可以发现测试过程中遇到的问题 ,从而找到对应的解决方案 。最后通过这些方案应对或规避一些bug 。这个循环在前文已有介绍 ,查看请关注 :

2.如何总结bug?

那么在众多的bug中,我们该选择那些bug进行总结呢 ?个人觉得,至少以下三个维度的bug是可以总结的,具体如下:

  • 发现的bug在目前使用的测试方法是无法覆盖到的,说明我们掌握的测试方法对发现此bug已经失效了,那这类bug你就要进行总结了 ,通过总结它的规律,把它变成你的测试方法 ,然后存放在到你的方法库里 。

  • 线上的bug也是要总结的 ,说明我们之前的测试还是存在问题 ,通过bug反推我们测试的不足 ,从而总结相对应的测试方法 。

  • 测试后期发现的bug ,尤其是发散测试的后期 ,因为那个时候该用的方法也都使用了 ,哪怕是再发现一个bug都很难了 。那个时候往往会产生一种错觉 ,总以为系统中没有bug了 ,其实仅仅是你没有发现而已,不然的话,怎么在线上还有bug呢 。 像这类型的bug应该去总结 。

接下来我们又改如何总结bug呢 ?这里其实就是用的归纳法 ,通过一个具体的案例抽象成一个通用的方法或规律,然后使用这个方法去发现相同类型功能的bug 。

 

形成的方法往往具有如下特征 :

  1. 具有相同的操作模型,比如操作步骤相同 ,操作时使用的输入相同等 。

  2. 产生的结果类似,比如bug提交表单会产生大于等于两条数据 ,你使用这个方法去使其它模块基本也能同样产生此结果 。

  3. 复用的前期就是操作模型相同 ,一旦此模块或功能不适用此模型 ,该方法即失效 。

案例 :添加地址输入地址信息后多次点击保存收货地址就会产生多条记录 。

通过分析这个bug ,点击这个按钮,其实就是向后台提交了一条数据 ,如果点击后没有及时关闭该页面或置灰此按钮 ,就会向后台提交多条数据 ,所以此bug的关键点就在于快速 ,若你能在这个窗口关闭之前多次点击,那么这个bug基本会是出现的 。

所以 ,总结此bug后 ,我们应该会有这样的一个方法:针对表单类的提交功能,只要快速点击 ,就有可能产生多条记录 。,你将此方法应用于其它功能也会发现同样的问题,不信你试试 。

总结的难点就在于抽象 ,我不知道从那些方面总结 ,该如何抽象 ? 这个你可以考虑一个功能的整个操作流程 。我们往往测试一个功能都是输入数据,然后在点击按钮 ,系统内部进行业务处理 ,最后输出结果 。那么对我们来说,这里的每一步就都可以总结 ,像上面的那个快速提交的方法就是对按钮点击的总结 。

 出现的bug往往都是在这个步骤的某一个环节上出现了问题 ,然后将其总结出一些特点来 ,最后形成了对应的方法 。像这样的情况,如果你细心的话,这个是不难积累的。

3.形成自己方法库

随着你总结的bug越来越多 ,你就需要建立一个单独的bug方法库来管理这些测试方法, 然后将后续总结的都保存到这个方法库 ,方便后续测试时使用 。比如下面的截图 ;

 长此以往,你的bug和方法就会形成正向循环 ,能更快更全的发现bug 。

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

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

相关文章

Android 辅助功能 -抢红包(三)

Android 辅助功能 -抢红包(三) 本篇文章继续讲述辅助功能. 主要通过监听通知栏红包消息,来跳转聊天页面,并自动回复对方"谢谢". 上篇文章我们讲述了监听notification, 跳转聊天界面. 具体可查看: Android 辅助功能 -抢红包(二) 1: 使用monitor抓取id. 打开andro…

RabbitMQ 模拟实现【六】:程序模拟实现

文章目录 模拟实现模拟消费者模拟生产者效果展示 启动结果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/71841546ad8043f1bd51e4408df791de.png)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f6e3e72ff9a4483c978ec48e24f075c2.p…

运营模型—RFM 模型

运营模型—RFM 模型 RFM 是什么其实我们前面的文章介绍过,这里我们不再赘述,可以参考运营数据分析模型—用户分层分析,今天我们要做的事情是如何落地RFM 模型 我们的数据如下,现在我们就开始进行数据处理 数据预处理 因为数据预处理没有一个固定的套路,都是根据数据的实…

Unity类银河恶魔城学习记录10-1 10-2 P89,90 Character stats - Stat script源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Stat.cs using System.Collections; using System.Collections.Generic; us…

C类期刊:基于改进粒子群优化算法的电力系统有功最优潮流程序代码!

程序提出了一种基于改进粒子群优化算法的有功最优潮流模型及求解方法,采用了自适应罚函数法处理最优潮流问题的各种约束条件。通过对IEEE-30节点系统的仿真计算,并且与遗传算法进行比较,验证了提出的模型和方法的有效性。程序算例丰富、注释清…

3.排序查找——2.整数奇偶排序

输入 4 7 3 13 11 12 0 47 34 98 输出 47 13 11 7 3 0 4 12 34 98 【提交地址】 题目分析 关键是找到交换位序的逻辑,有如下几种情况: 左值为奇数,右值为偶数 > 不需要交换左值为偶数,右值为奇数 > 需要交换左值和右值同…

【数据结构】 Map和Set万字总结(搜索树+哈希桶+使用方法+实现方法)

文章目录 Map和Set一、搜索树1.二叉搜索树的查找(search)2.二叉搜索树的插入3.二叉搜索树的删除4.性能分析 二、搜索方法1.概念 三、Map的使用1.概念:2.Map的常用方法:1.V put(K Key ,V Value )2.V get(Object key)3.V getOrDefau…

YOLOv8旋转目标检测实战:训练自己的数据集

课程链接:https://edu.csdn.net/course/detail/39393 旋转目标检测是计算机视觉领域的一个高级任务,它在传统目标检测的基础上进一步发展。传统目标检测技术主要关注于识别和定位图像中的物体,通常以水平边界框(HBB)来标识目标物体的位置。而…

某阿系影城网爬虫JS逆向

本次逆向目标网站如下,使用base64解码获得 aHR0cHM6Ly9oNWxhcmsueXVla2V5dW4uY29tL2ZpbG0vaW5kZXguaHRtbD93YXBpZD1GWVlDX0g1X1BST0RfU19NUFMmc3RhbXA9MTcxMDExNzc5NDM0NiZzcG09YTJvZjYubG9jYXRpb25faW5kZXhfcGFnZS4wLjA= 打开网站,发起请求后,发现请求参数没有加密,请求头…

【Stable Diffusion】入门-03:图生图基本步骤+参数解读

目录 1 图生图原理2 基本步骤2.1 导入图片2.2 书写提示词2.3 参数调整 3 随机种子的含义4 拓展应用 1 图生图原理 当提示词不足以表达你的想法,或者你希望以一个更为简单清晰的方式传递一些要求的时候,可以给AI输入一张图片,此时图片和文字是…

CorelDRAW2024中文版全新功能和软件使用介绍!

亲爱的用户们,我们非常高兴地向您介绍CorelDRAW 2024的全新功能和软件使用介绍!作为一款深受设计师们喜爱的图形设计软件,CorelDRAW一直在不断地优化和升级,力求为您提供更加优秀的创作体验。今天,我们就来一起了解一下…

免费开源的 Vue 拖拽组件 VueDraggablePlus (兼容移动端)

VueDraggablePlus 支持 Vue2 / Vue3,是被尤雨溪推荐了的拖拽组件。我自己试用过了,还挺好用的,兼容移动端。 官网:https://alfred-skyblue.github.io/vue-draggable-plus/ 官网文档里面很详细了,我就不再介绍安装和用…

vitepress里使用gitalk(图文教程)

vitepress里使用gitalk Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件 生成client配置 创建OAuth application 填写完毕,点击 Register application 即可 生成client secrets 一开始没有自动生成 Client secrets,需要手动生成&#xff…

亚信安慧AntDB数据库分布式架构剖析之snapshot receiver进程

本文主要介绍亚信安慧AntDB数据库的分布式架构下的特有进程之snapshot receiver的设计,这也是分布式架构的核心进程之一。 进程简介 该进程的作用从逻辑上解释包含两个方面: 同步快照,并且是作为通信的client端存在 同步事务号,…

css之常用样式

展示样式一&#xff1a; <div class"showListBox"><div class"List" v-for"(i,index) in sealList" :key"index"> <div class"ListItemCon"><div class"ListItem-titleBox"><img src…

Ollama管理本地开源大模型,用Open WebUI访问Ollama接口

现在开源大模型一个接一个的&#xff0c;而且各个都说自己的性能非常厉害&#xff0c;但是对于我们这些使用者&#xff0c;用起来就比较尴尬了。因为一个模型一个调用的方式&#xff0c;先得下载模型&#xff0c;下完模型&#xff0c;写加载代码&#xff0c;麻烦得很。 对于程…

工作中用到的 —— 工作总结提炼出来的股文

这里是目录 ---------------- VUE相关 -----------------1 - Vue3 是怎么得更快的&#xff1f;1-1 Fragment [frɡˈment]1-2 Suspense [səˈspens]1-3 Teleport [ˈtelipɔːt]1-4 v-memo 2- 说一下 Composition API3- 说一下 setup4- watch 和 watchEffect 的区别5- Vue3 响…

mysql索引 (索引的忧缺点 ,联合索引)

索引的忧缺点 优点 &#xff08;增加读操作效率&#xff0c;排序成本&#xff09; 1 查询效率高 2 降低排序成本&#xff0c;索引对应的字段 就已经 自动排序&#xff0c;因为索引本身就是一种排好序的数据结构 缺点&#xff08;降低写操作效率&#xff0c;占用空间&#xf…

知识蒸馏Matching logits与RocketQAv2

知识蒸馏Matching logits 公式推导 刚开始的怎么来&#xff0c;可以转看下面证明梯度等于输出值-标签y C是一个交叉熵&#xff0c;我们要求解的是这个交叉熵对的这个梯度。就是你可以理解成第个类别的得分。就是student model&#xff0c;被蒸馏的模型&#xff0c;它所输出的…

大根堆排序

堆是完全二叉树,分为大根堆和小根堆 完全二叉树 从左到右依次变满,高度O(logn) 非完全二叉树: 需要知道的几个点【堆可以看做一段连续的数组来存放】 i是索引位置 i位置的左孩子:2 * i + 1 i位置的右孩子:2 * i + 2 i位置的父亲节点:( i - 1 ) / 2 大根堆【每一颗…