测试通过了,为何线上还有很多BUG?

news2024/11/14 8:29:25

大多数测试人员认为测试工作是发现bug,虽然这是测试的主要任务,但其实测试最重要的任务是质量控制,而发现bug和验证bug只是质量控制的一个重要环节而已。

我想很多测试人员都经历过这样的场景,就是测试环境全部都能测试通过,但正式上线之后就会有各种各样的bug,到底是哪里出了问题呢?

在测试工作中,常见的问题原因分为以下几类:

  • 不同版本的数据兼容

这是最常见的问题,一般新版本的迭代不仅仅是代码层面的,还有数据库的改动,而对于线上原有的数据来说改动了数据库有可能会受到影响。
  
举个例子:
  
如果数据库增加了一个字段,那么新数据肯定会通过新的程序给这个字段赋值,而原有的数据这个字段往往是空的,这时读取该数据就会发生问题。
  
当然这只是一个最简单的情况,这种情况在测试环境可以用历史数据进行测试从而发现该问题。但往往还有更多复杂的情况,有时候是需要手动造数据库的数据来模拟数据兼容的问题。这个就是测试比较容易忽视,也最容易发生问题的一个点。

  • 测试环境和正式环境的不同

测试环境和正式环境的不同也是一种经常发生的事情,

不同分2种情况:

硬件方面的,一般正式环境的服务器都比测试环境来的好,所以硬件上不太可能一致,虽然这个差异影响比较小,但也不排除会影响程序的运行。

软件方面的,包括程序语言的版本,服务器系统的版本,甚至服务器的权限控制都会影响到程序的运行。

如果说不同版本的数据兼容问题可以在测试环境预判并测试,那这种情况可能只能做到提醒开发和运维人员了,硬件方面没办法,软件方面尽量做到一致,以减少测试环境和正式环境的差异,让正式环境上的程序跑的更加稳定。

  • 服务器的配置

这个不同于上面说的程序语言版本,而是在代码层面的配置:

配置文件,包括代码的相对路径,某个功能的开关,又或者是服务器ip的配置等等。而这些都是相对于测试环境配置的,如果发布的时候将配置文件覆盖也会导致正式环境出问题。

服务器上配置的crontab脚本,很多程序是需要通过crontab脚本定时执行,而crontab又是需要在服务器上配置的,自动配置不方便控制及维护。所以大多数还是需要人为去配置的,这个配置如果漏了或者配置错也会导致出问题。

以上3点只是常见的,事实上可能会遇到更奇葩和不可思议的问题,

例如

  • 正式环境多台服务器有一台服务器代码未更新,导致问题时隐时现。
  • 数据库的主备数据不一致,当切换主备数据库后会出问题。

之类的问题很多,所以在最开始就讲要了解网络的架构(点击看原文),每一个中间的环节都有可能出问题,而不仅仅是代码这一个环节。

所以好的测试不能只把目光放在代码层面的测试,而是要从更高的视角去看整个项目在上线发布的时候存在的各种风险。有些可以通过测试而发现出来,而更多的还是要提醒开发和运维人员去规避这些上线的风险,我想这才是好的测试人员应该做到的事情。

看到这里是不是会发现,一部分原来认为是测试人员背的锅,其实并没有那么地委屈。因为宽以待人严于律己,作为优秀测试人员的你,可以做得更多更好!

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


全套资料获取方式:

在这里插入图片描述

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

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

相关文章

浅析小程序的三个特点

随着智能手机的普及,全民互联网时代到来,我们身边越来越多的人开始使用微信账号,很多时候微信能够替代一些其他的应用,比如在手机支付方面微信也是占据了一部分的市场份额的,因此微信小程序面对的用户群体之广我们也可…

【TA 100】3.1 模板测试和深度测试

一、开始前,先看一下举例来理解 1.引例 ● 左图为颜色缓冲区中的一张图,在模板缓冲区中我们会给这张图的每一个片元分配一个0-255的数字(8位,默认为0) ● 中、右图可以看到,我们修改了一些0为1&#xff0c…

Java(一):创建 Spring Boot 项目并实现连接操作MySQL数据库

创建 Spring Boot 项目并实现连接操作MySQL数据库 准备MySQLMavenidea所需插件下载 idea创建项目配置 Server URL填写项目相关信息创建项目成功(运行并测试) idea测试能否正常连接MySQL创建数据库表添加项目内连接MySQL的配置搜索连接MySQL使用的依赖包编…

PHP 使用html创建PDF并设置水印

使用TCPDF库给PDF文件加水印,需要注意无法直接使用文本,需要创建水印图片后,通过图片来设置水印效果。 目录 创建PDF 创建合同模板 创建pdf文件 简单创建 设置文档信息 去掉默认页头脚 设置间距 设置字体支持中文 设置图片比例因子 …

JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用

目录 引言 一、什么是BeanShell? 二、BeanShell Preprocessor(BeanShell预处理程序)的基本应用 引言 你知道吗,JMeter不仅能够进行压力测试和性能分析,还可以使用BeanShell预处理程序和BeanShell后置处理程序来优化…

【C/C++】关键字nullptr详解 | NULL与nullptr的区别

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

AI产业应用再提速,AI基础软件发挥巨擎作用

5月31日&#xff0c;由中国信息通信研究院、中国人工智能产业发展联盟主办&#xff0c;北京九章云极科技有限公司联合主办的【创造智能探索未知】杭州通用人工智能论坛-AI基础软件前沿技术分论坛在杭州成功举办。大会聚焦AI基础软件前沿技术&#xff0c;挖掘人工智能基础软件大…

Spark大数据处理学习笔记(3.2.2)掌握RDD算子

衔接上文&#xff1a;http://t.csdn.cn/Z0Cfj 文章目录 三、掌握行动算子3.1 归约算子 - reduce()3.2 采集算子 - collect()3.3 首元素算子 - first()3.4 计数算子 - count()3.5 按键计数算子 - countByKey()3.6 前截取算子 - take(n)3.7 排序前截取算子 - takeOrdered(n)[(ord…

自动测试LeetCode用例方法

自动合并测试LeetCode解题方法 在leetcode.com上答题&#xff0c;Run Code或者Sumbmit通常要Spending一会&#xff0c;如果提交一次就Accepted那还好&#xff0c;如果反复Wrong Answer&#xff0c;很耽误时间。为了调高效率和减少挫折(来回提交&#xff0c;一直Wrong Answer倍…

数字化时代,在一系列数据技术中浅谈商业智能BI

BI&#xff0c;Business Intelligence的简称&#xff0c;顾名思义&#xff0c;也叫做商业智能。其主要价值&#xff0c;在于通过一系列的数据技术&#xff0c;从数据中挖掘隐藏的客观规律&#xff0c;总结这些规律背后的原因&#xff0c;并用于指导公司业务的发展。 大多数情况…

Rust in Action笔记 第五章 深入理解数据

如果希望看到f32类型的数转换成整型数字u32类型&#xff0c;需要在unsafe包裹下调用std::mem::transmute(data)&#xff0c;因为在安全的Rust语法中没有把整型数据按照bit转换成浮点数据的实现&#xff0c;如果想要看到浮点数的二进制输出&#xff08;通过{:b}&#xff09;&…

huggingface lfs下载小技巧

先clone下来&#xff0c;然后再git lfs pull 明显要快得多。

NLP学习笔记九-机器翻译-seq2seq模型

NLP学习笔记九-机器翻译-seq2seq模型 seq2seq模型是做机器翻译任务的&#xff0c;根据名字其实我们也能有一些推测seq 2 seq&#xff0c;其实就是sequence to sequence&#xff0c;从一个序列到另一个序列&#xff0c;所以seq2seq模型其实不止可以做机器翻译&#xff0c;还可以…

跟国内这几个名校MBA项目学费比,浙大就是小弟弟……

MBA学费这些年来一直都是牵绊考生心绪的一个重要因素&#xff0c;在每年此起彼伏的调价声浪中&#xff0c;上岸时间的早或晚往往意味着成本方面看得见的增加&#xff0c;在去年的MBA招录过程中&#xff0c;部分院校也调整了相关学费&#xff0c;浙大MBA项目以33.6万的学费也跻身…

【从零开始学Django篇001】从创建一个新的Django项目开始

&#x1f341;前言 &#x1f451;作者主页&#xff1a;&#x1f449;CSDN丨博客园 &#x1f3c6;学习交流&#xff1a;&#x1f449;在下周周ovoの社区 &#x1f48e;从零开始学Django系列专栏&#xff1a;&#x1f449;Django系列专栏 ​ 在这个专栏&#xff0c;大概会从零开始…

后端-基于JdbcTemplate的数据库连接和使用

1、application.properties中进行数据库配置 spring.datasource.single.urlxxxx?useUnicodetrue&characterEncodingutf-8 spring.datasource.single.usernamexxx spring.datasource.single.passwordxxx spring.datasource.single.typecom.alibaba.druid.pool.DruidDataSou…

如何通过自养号测评在TEMU跨境电商平台中获取更大市场份额

2023年可谓是TEMU跨境电商平台的元年。自从2022年8月17日拼多多宣布将筹备跨境电商平台以来&#xff0c;TEMU犹如烈火燎原&#xff0c;迅速蔓延全球。9月1日&#xff0c;首站TEMU在北美市场正式上线&#xff0c;平台名称取意“Team Up&#xff0c;Price Down”&#xff0c;紧扣…

Easyui05补充

1.后台. 今天我们的主要任务是完成增加功能&#xff1b; 1.1BookDao. 1.2BookAddServlet. 注意&#xff0c;这里创建 Book对象赋值的时候&#xff0c;如果调用构造函数&#xff0c;那么所调用的构造函数里面 bookName属性赋值的时候必须调用 setBookName方法进行赋值&#xf…

从零开始Vue项目中使用MapboxGL开发三维地图教程(二)Mapbox地图样式

Mapbox地图样式 1、Mapbox地图样式定义2、Mapbox默认地图样式3、Mapbox地图样式对象4、切换地图样式的案例 1、Mapbox地图样式定义 Mapbox地图样式&#xff1a;按照Mapbox地图样式规范中描述的模式定义的一个JSON对象&#xff0c;或者是此类JSON的URL。可以接受null值以允许手动…

【图像处理】图像白平衡处理

一、说明 这就是我们今天要说的——图像增强&#xff01;图像增强由一组用于优化图像的技术组成。这样&#xff0c;图像在视觉上变得更容易被人类感知&#xff0c;这反过来将进一步促进改进的图像处理分析。图像增强处理技术包括以下几种&#xff1a; 傅里叶变换 白平衡 直方…