【软件测试】测试人的懊恼,你要揭开的秘密复现bug......

news2025/7/7 16:24:43

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

我们测试人常常会懊恼
你是否在为忘记前面怎么执行测试而出现bug苦苦冥思,因为现在你需要说明怎么复现它?
你是否在为开发人员不能根据你提交的bug描述而复现问题无奈?
你是否在开发人员的机器上不能复现bug而百思不得其解?

你是否在为忘记前面怎么执行测试而出现bug苦苦冥思,因为现在你需要说明怎么复现它?

碰到这样的情况,往往是缺乏对应的测试用例,且执行流程过于复杂导致的。而往往出现在探索性测试阶段,因为我们可能灵机一动就会想到一个可能会出现bug的测试场景。

如果经验不足的测试人员,可能会立即去执行自己的假设,但如果这个场景过于复杂,在执行过程中出现bug后,会突然蒙掉(如果一直专心做这件事还好,但往往中间可能会穿插着其它一些事情),忘记了前面的执行步骤。

我带过很多测试新人,普遍都存在这样的问题。这时我会告诫他们,以后再想到一个新的测试场景,或者在没有用例的情况下执行复杂的流程前,都应该用笔在纸上简单作下步骤描述。

这样避免了因为种种原因遗忘既定的测试流程,在出现bug时无法复现。而往往他们都采纳了我的建议,并在后面的测试中避免了这种情况。

你是否在为开发人员不能根据你提交的bug描述而复现问题无奈?

这也是我经常听到测试人员抱怨的,当然开发人员也在抱怨测试人员提交的bug不足复现bug。这种情况,往往由测试人员的bug描述的不够简洁、详尽;当然也可能有其它的原因…

针对这种情况,描述不够简洁、详尽。可能原因是测试人员口水话过多,但并没有把bug复现的信息表述清楚。描述一个bug,不一定需要让我们严格的把所有的执行步骤,测试结果,期望结果都按教科书经典案例一般详细的描述出来。反而这样做的话,在时间较紧的情况下会导致我们测试执行效率较低。

不管如何,一定要保证你的bug描述简洁明了,这里有几个妙招:

1.在bug摘要最前面,标明测试的功能点。这样会让开发人员快速知道是哪里出现了问题。
2.bug摘要应该简洁明了,并突出重点,即能让开发人员从摘要中就能大致了解怎么出现的这个bug。比如,【注册】输入5位长度密码也成功注册;密码长度应在6~15个字符之间
3.在bug描述中,应该标明测试环境,出现bug模块路径,测试数据,以及浏览器等信息。我们知道浏览器的兼容性,android和ios等手机系统的差异,都可能导致测试的结果完全不同。
4.复杂的测试,应该简单明了的说明bug出现的步骤。如,复现bug步骤:1、执行……;2,执行……
5.附上bug的重要截图。千言万语,抵不过一张截图;有图有真相。

你是否在开发人员的机器上不能复现bug而百思不得其解?

这样的问题也是测试人员容易碰到的。出现这种情况,往往存在如下几个原因:

1.开发人员复现bug,可能只是在自己的工作环境上。环境不一样,可能就会导致执行结果不一样。比如发布的测试版,打的包并不完整。或者开发人员并没有在发版之前把所做的修改全部提交到版本库等。

所以我们应该明确告诉开发人员,复现bug一定要去测试环境复现,确认问题后再到个人工作环境上对问题进行原因分析并修复。

2.版本管理混乱,开发人员随时修改测试环境,或者干脆测试环境和开发环境没有做区分。

测试环境和开发环境一定要分开,并且做好测试环境版本发布管理。否则开发人员为了避免一些责任,比如bug关乎于绩效考核,那么就可能在发布测试版本后发现bug而偷偷的去测试环境做更改。这样后面自然复现不了bug,反而指责测试人员不够仔细。

3.复现的环境情况不完全相同导致。

可能看起来复现的环境都是一样,但实际情况是这样吗?
比如复现一个WEB应用界面上的bug,可能看起来复现的环境都是一样的(比如都使用的chrome浏览器),但在自己和开发人员的环境并不一样。

这样的情况往往是因为一些配置,所使用的浏览器版本等因素不一致导致的。这时可以把开发人员拉倒你的面前一起复现bug,分析原因。

下面是我整理的2022年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

既异想天开,又实事求是,这是科学工作者特有的风格,让咱们在无穷的宇宙长河中探求无穷的真理吧。

以前以为坚持就是永不动摇,现在才明白坚持是犹豫着,退缩着,心猿意马着,但还在继续往前走。

伟人所达到并保持着的高处,并不是一飞就到的,而是他们在同伴们都睡着的时候,一步步艰辛地向上攀爬的。

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

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

相关文章

分布式微服务框架SpringCloud Alibaba学习(1)

springCloud 发展历史以及SpringCloud Alibaba概述 一.Why SpringCloud Alibaba? 1.微服务cloud新闻: 2020-12-22日Spring 官方博客宣布,Spring Cloud 2020.0.0正式发布。2020.0.0是第一个使用新的版本号命名方案的Spring Cloud 发行版本。在此之前S…

上次面试跪在了Redis上,刷完腾讯云大神亲码的“redis深度笔记”,终面进腾讯

前言 作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。 毕竟现在互联网公司和一些创业公司都要用到Redis,像亚马逊、谷歌、阿里、腾讯都要使…

哈啰出行高质量故障复盘法:“3+5+3”(附模板)

# 一分钟精华速览 #故障复盘指的是及时把过去发生的错误,最大程度转化为未来可以规避的办法,其核心是不断减少失败因子繁衍的温床,将它们牢牢地掌控在不至于引发危机的范围之中。 作为国民基础设施的哈啰出行,在保障超5.3亿注册用…

按照等分份数或者分割点索引号列表将一个数组拆分为多个数组hsplit()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 按照等分份数或者分割点索引号列表 将一个数组拆分为多个数组 hsplit() [太阳]选择题 以下关于python代码表述有误的一项是? import numpy as np myArraynp.array([[0,1,2,3,4,5],[10,11,1…

“0基础、学历无优势、逻辑能力一般……”能转行做程序员吗?

此前,拉勾数据研究院对程序员群体做了一次深入调查,并发布了《2022程序员群体职场洞察报告》,报告显示,“高薪”依然是程序员的职业标签之一。在调查的程序员群体中,年薪在10-30万元之间的人数占比为66.7%,…

Sharding-JDBC(四)集成dynamic-datasource

目录1.Maven依赖2.yml配置3.DataSourceConfig.java4.TUserService.java5.TUserServiceImpl.java6.测试代码7.测试结果8.源码地址实现原理: 通过 DataSourceConfig.java 将ShardingJDBC数据源配置为动态数据源之一。通过 DS(DataSourceConfig.SHARDING_DATA_SOURCE_…

Coinbase Vntures:Web3社交堆栈指南

概述 Web3社交网络赋予用户对其数据、身份和关系的所有权及可移植性,同时支持无需许可的开发。 Web3社交堆栈有四层:托管、社交原语、profile和应用程序。 例如:Farcaster是一款类似twitter的社交应用程序,它创建在开放的社交图…

HTTPS协议的密钥交换流程

前言 HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法。 其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在已很少服务器使用。而 ECDHE 算法具有前向安全,所以被广泛使用。 注&#xf…

18 | 如何处理k8s证书过期

目录1 证书过期2 常用命令2.1 使用统一命令查看2.2 查看apiserver.crt证书时间2.3 查看secret2.4 查看ingress3 k8s证书过期处理方法1 证书过期 证书在使用的过程中,通常是一年有效期,到期后,需要重新续期。 2 常用命令 2.1 使用统一命令查…

智慧车行预约小程序,汽车保养、维修、美容、检测预测小程序,前后端完整代码包括车行动态,养车常识,保养预约,维修预约,洗车美容预约

功能介绍 智慧车行小程序,是一个专门为洗车/4S/车辆维修行业打造的小程序,前后端完整代码包括车行动态,养车常识,保养预约,维修预约,洗车美容预约,汽车检测预约等功能,采用腾讯提供的…

分布式锁

目录 1. 模拟高并发场景秒杀下单 1.1 导入依赖 1.2 配置application.yml文件 1.3 场景模拟 1.4 案例演示 2. JVM级锁与redis级分布式锁 2.1 JVM级锁 3. redis级分布式锁 3.1 什么是setnx 3.2 场景分析 4. redisson分布式锁 4.1 什么是Redisson 4.2 Redisson工作原…

有关于decoder中的past_key_values参数

我们都知道,encoder-decoder模型在进行generate的时候,会重复地调用decoder (i.e., auto-regressive)。 也就是,上一个step decoder的预测结果,作为下一个step decoder的输入。 这个时候,由于…

Axios(一) +Promise自定义封装36-42

1. axios 是什么? 1. 前端最流行的 ajax 请求库 2. react/vue 官方都推荐使用 axios 发 ajax 请求 3. 文档: https://github.com/axios/axios 1.2. axios 特点 1. 基于 xhr promise 的异步 ajax 请求库 2. 浏览器端/node 端都可以使用 3. 支持请求/响应拦截器 4…

从零开始,开启属于你的 RTE 漫游之旅!丨漫游指南 x 即将启航

🤔 什么是「开发者漫游指南」? 「开发者漫游指南」邀请热爱前端开发、关心音视频领域发展、希望进入音视频行业、乐于和大家一起交流成长的小伙伴,通过「开发者漫游指南」与社区共同成长,帮助更多的开发者在实时音视频领域取得进…

Linux中gdb的使用

文章目录gdb的使用方法启动gdb之前的准备工作下载gdb拥有一个带有调试信息的可执行程序正式启动gdb展示源码(要先看到源码才知道接下来的步骤……)打断点显示所有断点信息运行程序逐过程(VS中的F10)逐语句(VS中的F11&a…

实验四、格子世界(Grid World)

一、实验目的 (1)熟悉动态规划算法中策略评估过程; (2)了解如何对问题进行建模处理,包括环境、状态、动作、奖惩值的初始化; 二、实验内容与要求 (1)掌握动态算法基本…

华为机试_HJ27 查找兄弟单词【中等】

目录 描述 输入描述: 输出描述: 解题过程 提交代码 学习代码 代码一 收藏点 描述 定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字…

Linux系统 PHP安装expect扩展详解

今天继续给大家介绍服务器运维相关知识,本文主要内容是Linux系统 PHP安装expect扩展详解。 一、expect简介 expect是基于tcl语言开发的,用于实现自动和交互式任务进行通信,而无须人的干预。expect是建立在tcl基础上的一个工具,还…

Navicat--对比和同步MySQL表结构的方法

原文网址:Navicat--对比和同步MySQL表结构的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何使用Navicat对比和同步MySQL表结构的方法。 实际项目中会遇到这样的场景:将测试环境的表结构同步到生产环境。 工具> 结构同步 选择源数据库和目标数据…

tensorflow 基本概念和基本操作

op和tensor之间的关系 op是graph上的节点,线就是tensor。 op输入tensor,同时也产出下游的tensor 作为每一个tensor,都会有一个op的属性(attribute),该op就代表着这个tensor是被什么计算产出的。举个例子: In [74]: w…