如何降低漏测, 避免上线后出bug,6年测试心得分享

一、漏测原因总结

(1)需求评审质量低,需求设计简单、只是简单描述功能,功能逻辑较少
 
(2)需求变更频繁
 
(3)缺少需求分解(sql 文档、用例设计)
 
(4)测试人员思维局限,需求分解覆盖面不全,考虑不足
 
(5)测试人员执行过程不规范,人为漏测
 
(6)测试执行人员质量意识不足,发现的缺陷定义严重性程度低或不认为是问题

(7)测试环境与生产环境有较大出入
 
(8)测试环境或测试数据受限,无法模拟并覆盖执行所有正常和异常的场景分支

(9)功能回归策略问题

(10)测试资源有限

二、漏测预防或改进措施

(1)提高需求评审质量
  
需求评审至少有产品、开发和测试人员三方参加
  
需求评审必须安排业务熟悉和测试经验丰富的测试人员参加,对于不清楚的需求,要在会上提出更多逻辑疑问。

(2)需求变更要及时更新 sql 文档或者测试用例

一定要考虑到需求变更会不会导致其他模块(业务流程上考虑、参考业务流程图)

(3)需求分解(sql 文档、用例设计)及时更新维护

主要靠自觉性,如果实在没时间就写来源表、业务逻辑描述即可

(4)提高需求分解质量

数据来源(从哪来),业务逻辑(怎么做),数据写入(到哪去)

(5)测试流程要规范

冒烟测试:花少量时间对增、删、查、改功能进行流程测试

业务测试:按照测试需求分解、需求文档分别细测两遍以及数据库验证

回归测试:验证关闭 bug 时要把相关功能也测试到,避免开发因修改 bug 引出其他问题

系统复测:按照主业务流程复测较好,能涉及到大部分模块并且是用户用到较多的功能。(先不按照需求分解去测试,可能会想到之前想不到的业务逻辑),有时间再对 1、2 级 bug 复测。用例执行:在测试过程中严格按照测试用例执行

(6)测试环境要尽量贴近生产环境

(7)漏测的原因分析总结

根据每月漏测较多的项目,自己要总结原因,具体什么原因导致的漏测

(8)测试资源有限

时间不充足,导致一些功能点在测试过程中被忽略,可以根据里程碑节点来判断不同程度的测试

a、里程碑评审:保证主功能没问题,可以存在小的问题,即冒烟测试通过

b、系统演示:保证主要功能没问题,且界面数据显示要完整;次要功能可能不会演示到可先不改。

c、上线:禅道 1、2 级 bug 改完,优化类、功能完善类不影响客户使用可先不改

三、测试方法

1、全面校验

(1)起码需求清楚说明的,一定要各个字段全面验证正确性,不需要每个字段一条用例,可以一条用例覆盖所有字段,但是一定要验证到所有字段

(2)特殊验证:有的数据新提交的和继承表中数据可能存在一致的情况,我们必须要造不一致的数据来验证是否进行了继承和是否继承正确,并按需求逐字段校验(并不是造一条正向用例验证都正确了就行)

2、相关功能回归测试

(1) 先验证此问题是否已经解决

(2) 再验证相关模块或功能是否有新引入的 bug

(3) 公用模块或功能是否全面修改:如果该模块是专有模块,只有某一功能使用,针对该功能进行测试即可。如果该模块是公用模块,涉及功能较多,需针对所有使用情况进行全量覆盖

3、多组合测试

实际使用过程中会比我们测试过程中数据更多更复杂,所以要尽可能地造多种组合情况的数据进行测试,测试过程中可能会发现很多没有想到的问题或可优化完善的部分,不至于后期更多次地迭代发版(是否存在异常、是否全面、顺序是否正确)

四、测试坚持

先举个例子

图片

在这里插入图片描述

问题影响:这个作物代码 zwdm 是要和 web 端照片绑定关联的,如果 zwdm 值不对就会导致后期关联不上(产品人员给到开发人员的字典清单)

1、不予解决

字面意思:这是个 bug,但是开发不想解决,或者是开发认为不应该解决,或者有时候开发标注的时候容易和设计如此混淆。

解决办法:

(1)开发备注如下,并有聊天截图(也有没有的情况),但是也要和产品再次确认后确认是否关闭。(确认原因:每个人理解有偏差;觉得产品说的不太合理)

(3)测试对理解需求不透彻,尽量避免这类 bug 出现,并记录在 sql 文档中

(4)测试提 bug 之前,开发自己知道这个 bug 已经解决但没发版,有的开发标注已解决,有的标注不予解决,需要新版本确认好再关闭。

(5)有的 bug 现阶段可以先不解决,前提已经和产品确认过,产品也同意暂时不解决,可以降低优先级,bug 激活指给自己,但是不要删除。

2、设计如此

字面意思:这不是 bug,需求设计就是这样写的。

解决方法:

(1)需求已更改,测试不知道,需要查看最新版设计,需求上没有的话就要和产品确认。

(2)需求上没明确说明,要和产品确认需求,并了解开发代码逻辑,例如下面这个 bug,如果关联删除不止涉及此模块,还涉及其他模块,且开发代码有和项目编码关联,关联不上不会再 app 端显示的。

3、无法重现

字面意思:开发不能重现的 bug

解决办法:

(1)需要再次确认最新版本,看是否能重现,如果操作步骤复杂,最好能亲自给开发操作,或者录屏、打电话沟通,帮助开发复现。

(2)我们自己也复现不了的,尽量回忆当时自己的操作步骤,一般都是在特定条件下出现的,若操作了半个小时候还没复现,就激活指给自己,日后测试过程中注意下,看是否能复现。

(3)好多开发是在本地环境去复现问题,有时候本地、线上代码不一致,所以要让开发去线上复现问题

4、外部原因

字面意思:发版、数据库更改、数据问题、服务器、网络原因导致的。

解决办法:

(1)此单位是后台配置的,不是前端代码写的,是测试对需求理解不透彻导致的,且没有配置单位,属于数据问题。

(2)开发意思是库表数据太大导致,实际是开发不清楚库表单位,没换算导致。

五、对于开发不改的 bug 怎么沟通

1、提高自身测试能力,能通过抓包进行前后端 bug 定位

如果实在分不清楚指给前端人员,前端人员是有责任去定位问题,如果是后端问题,由前端人员再指给后端。

2、提高逻辑思维,不能被开发忽悠(最好懂点简单的代码)

解决办法:和开发沟通无效(原因:不会改;不想改),找开发负责人沟通修改,一般开发负责人在能力较强、态度负责。如果开发负责人也觉得不需要修改或者不会改,就要叫上产品人员沟通,此问题是否解决。

3、测试人员要主动

开发遇到不会改的 bug,我们需要借鉴下其他系统有没有类似功能,提供给开发;如果没有可找开发负责人协助解决。

六、测试心得

每一位测试人员在测试过程中都已经有了自己心中认定的正确与错误的想法,要带入自己的想法和坚持,产品说的或做的也不一定全部正确,已有的功能也不一定全部正确,如果是问题要坚持反馈,找到问题缘由,开发、产品都可以改相关内容,直到问题得到解决(如果不是问题的话,我们就当深入了解了更多的东西)。

测试我觉得就是细心 + 全面 + 深度, 要有测试策略(重点),对时间分配要明晰,测试过程那些是需要关心的重点关心,哪些是需要去推动开发处理的就尽快抛出问题,也就是不捂问题;接下来就是对软件测试过程中整体数据流转一定要清晰。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Unity 左右折叠显示与隐藏UI的简单实现

要实现一个简单的UI左右折叠显示与隐藏,可以结合遮罩,通过代码控制UI区块的宽度和位移来实现。 具体可以按以下步骤实现: 1、新建一个Image组件,并添加精灵,调整大小后,复制一份作为该UI的父物体&#xf…

element UI 设置type=“textarea“ 禁止输入框缩放

背景 在 Element UI 中,当您使用 el-input 组件并设置 type"textarea" 时,默认情况下,用户可以通过拖动输入框的右下角来调整其大小。如果您想禁止这种缩放行为,需要使用 CSS 来覆盖默认的浏览器行为。 注意上图&#x…

WPS的JS宏如何实现全文件路径字符串中截取文件名(excel)

从全文件路径的字符串中,截取文件名称,例如: 全文件路径字符串为:C:\Windows\System32\drivers\acpi1.sys 需要截取文件名:acpi1.sys 方法如下: 1、简单的方式:把全文件路径字符串拷贝&…

[Linux - C] 自主Shell

[Linux - C] 自主Shell [Linux - C语言] 自主Shell逻辑策划 main()打印命令行 void MakeCommandLineAndPrint()用户名 USER主机名 HOSTNAME当前目录 PWDSkipPath 切割目录打印命令行 获取用户字符串 int GetUserCommand()检查重定向 void CheckRedir()切割字符 void SplitComma…

基于Springboot的餐厅点餐系统

基于SpringbootVue的餐厅点餐系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 首页展示 菜品详情页 菜品信息 个人中心 后台管理 菜品信息管理 用户管理 菜…

小阳同学嵌入式学习日记-QFile读写文件

一、QFile简介 在Qt中,QFile是一个用于文件I/O操作的类。它提供了一种方便的方式来读取和写入文件内容,以及获取有关文件的信息。 QFile类提供了许多函数,用于打开、关闭、读取和写入文件。一些常用的QFile函数包括: open(): 打开…

潍微科技-水务信息管理平台 ChangePwd SQL注入漏洞复现(CNVD-2024-14945)

0x01 产品简介 水务信息管理平台主要帮助水务企业实现水质状态监测、管网运行监控、水厂安全保障、用水实时监控以及排放有效监管,确保居民安全稳定用水、环境有效保护,全面提升水务管理效率。由山东潍微科技股份有限公司研发,近年来,公司全力拓展提升水务、水利信息化业务…

小型燃气站3D可视化:打造安全高效的燃气新时代

随着科技的不断进步,越来越多的行业开始融入3D可视化技术,燃气行业也不例外。 小型燃气站作为城市燃气供应的重要节点,其安全性和运行效率至关重要。传统的燃气站管理方式往往依赖于人工巡检和纸质记录,这种方式不仅效率低下&…

linux查看网络连接数

目录 netstat top netstat 1.netstat查看当前主机上网络连接信息,端口号,pid,程序名等等 #直接查看 netstat -anp #一般使用的时候,可能要筛选 #比如8080端口是否被占用 netstat -anp | grep 8080 #minio服务占用了那些端口 netstat -anp …

CDC类下的画线函数

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系将于24小时内删除 目录 1.实验原理(后续再补写) 2.实验步骤 3.运行代码 4.运行结果 1.实验原理(后续再补写) MoveTo(); LineTo(); 2.实验步骤 2.1在对话框中添加如下布局控件 2.2绑定…

空间滤波器和频率域滤波器的对应

说实话,4.7.4的前面的图4.37我没看懂在说什么,但是例4.15这个我倒是看明白了。中心思想是:本来空间滤波器计算的时候需要不停地滑动模版的,这里把滑动用x的值代替了,但是现在不搞滑动了,利用傅里叶变换和卷积公式,只要…

飞驰云联入选金融信创生态实验室「金融信创优秀解决方案」

近日,由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布了第三期金融信创优秀解决方案,Ftrans飞驰云联“文件数据传输解决方案”成功入选! 本次金融信创优秀解决方案遴选经方案征集、方案初审、专家评审等多环…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示64行点x64列点字模的功能

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示64行点x64列点字模的应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示…

嵌入式第四天:(C语言入门)

目录 什么是数组? 数组: 数组的使用: 数组的初始化: 数组名: 数组案例: 一维数组的最大值: 一维数组的逆置: 数组和指针: 通过指针操作数组元素: …

嵌入式4-16

tftpd #include <myhead.h> #define SER_IP "192.168.125.243" //服务器IP地址 #define SER_PORT 69 //服务器端口号 #define CLI_IP "192.168.125.244" //客户端IP地址 #define CLI_PORT 8889 //客户端端…

C++项目 -- 负载均衡OJ(一)comm

C项目 – 负载均衡OJ&#xff08;一&#xff09;comm 文章目录 C项目 -- 负载均衡OJ&#xff08;一&#xff09;comm一、项目宏观结构1.项目功能2.项目结构 二、comm公共模块1.util.hpp2.log.hpp 一、项目宏观结构 1.项目功能 本项目的功能为一个在线的OJ&#xff0c;实现类似…

springCloudAlibaba集成sentinel实战(超详细)

一、Sentinel介绍 1. 什么是Sentinel Sentinel是阿里开源的项目&#xff0c;提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。 分布式系统的流量防卫兵&#xff1a; 随着微服务的普及&#xff0c;服务调用的稳定性变得越来越重要。Sentinel以“流…

L2-3 完全二叉树的层序遍历

完全二叉树的层序遍历 一个二叉树&#xff0c;如果每一个层的结点数都达到最大值&#xff0c;则这个二叉树就是完美二叉树。对于深度为 D 的&#xff0c;有 N 个结点的二叉树&#xff0c;若其结点对应于相同深度完美二叉树的层序遍历的前 N 个结点&#xff0c;这样的树就是完全…

vue.js入门

vue是一个渐进js框架 渐进式:按需引入Vue.js的部分功能,不用把整个框架都导入 1. 传统开发方式 用vue.global.js <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

毕设选51还是stm32?51太简单?

如果你更倾向于挑战和深入学习&#xff0c;STM32可能是更好的选择。如果你希望更专注于底层硬件原理&#xff0c;51可能更适合。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c;不妨点个关注&#xff…