质量控制
  大多数测试人员认为测试工作是发现bug,虽然这是测试的主要任务,但其实测试最重要的任务是质量控制,而发现bug和验证bug只是质量控制的一个重要环节而已。
  我想很多测试人员都经历过这样的场景,就是测试环境全部都能测试通过,但正式上线之后就会有各种各样的bug,到底是哪里出了问题呢?
 
  在测试工作中,常见的问题原因分为以下几类:
  ●不同版本的数据兼容
  这是最常见的问题,一般新版本的迭代不仅仅是代码层面的,还有数据库的改动,而对于线上原有的数据来说改动了数据库有可能会受到影响。
  举个例子:
  如果数据库增加了一个字段,那么新数据肯定会通过新的程序给这个字段赋值,而原有的数据这个字段往往是空的,这时读取该数据就会发生问题。
  当然这只是一个最简单的情况,这种情况在测试环境可以用历史数据进行测试从而发现该问题。但往往还有更多复杂的情况,有时候是需要手动造数据库的数据来模拟数据兼容的问题。这个就是测试比较容易忽视,也最容易发生问题的一个点。
  ●测试环境和正式环境的不同
  测试环境和正式环境的不同也是一种经常发生的事情,
  不同分2种情况:
  硬件方面的,一般正式环境的服务器都比测试环境来的好,所以硬件上不太可能一致,虽然这个差异影响比较小,但也不排除会影响程序的运行。
  软件方面的,包括程序语言的版本,服务器系统的版本,甚至服务器的权限控制都会影响到程序的运行。
  如果说不同版本的数据兼容问题可以在测试环境预判并测试,那这种情况可能只能做到提醒开发和运维人员了,硬件方面没办法,软件方面尽量做到一致,以减少测试环境和正式环境的差异,让正式环境上的程序跑的更加稳定。
  ●服务器的配置
  这个不同于上面说的程序语言版本,而是在代码层面的配置:
  配置文件,包括代码的相对路径,某个功能的开关,又或者是服务器ip的配置等等。而这些都是相对于测试环境配置的,如果发布的时候将配置文件覆盖也会导致正式环境出问题。
  服务器上配置的crontab脚本,很多程序是需要通过crontab脚本定时执行,而crontab又是需要在服务器上配置的,自动配置不方便控制及维护。所以大多数还是需要人为去配置的,这个配置如果漏了或者配置错也会导致出问题。
  以上3点只是常见的,事实上可能会遇到更奇葩和不可思议的问题,
  例如
  ●正式环境多台服务器有一台服务器代码未更新,导致问题时隐时现。
  ●数据库的主备数据不一致,当切换主备数据库后会出问题。
  之类的问题很多,所以在最开始就讲要了解网络的架构(点击看原文),每一个中间的环节都有可能出问题,而不仅仅是代码这一个环节。
  所以好的测试不能只把目光放在代码层面的测试,而是要从更高的视角去看整个项目在上线发布的时候存在的各种风险。有些可以通过测试而发现出来,而更多的还是要提醒开发和运维人员去规避这些上线的风险,我想这才是好的测试人员应该做到的事情。
  看到这里是不是会发现,一部分原来认为是测试人员背的锅,其实并没有那么地委屈。因为宽以待人严于律己,作为优秀测试人员的你,可以做得更多更好!

测试通过!为何线上还有很多BUG?实践中的质量控制的更多相关文章

  1. Redis 集群缓存测试要点--关于 线上 token 失效 BUG 的总结

    在测试账户系统过程中遇到了线上大面积用户登录态失效的严重问题,事后对于其原因及测试盲点做了一些总结记录以便以后查阅,总结分为以下7点,其中原理性的解释有些摘自网络. 1.账户系统token失效问题复盘 ...

  2. 测试通过!为何线上还有很多BUG?

    质量控制 大多数测试人员认为测试工作是发现bug,虽然这是测试的主要任务,但其实测试最重要的任务是质量控制,而发现bug和验证bug只是质量控制的一个重要环节而已. 我想很多测试人员都经历过这样的场景 ...

  3. 测试右移:线上质量监控 ELK 实战

    目录 [测试右移]介绍 ELK Stack 介绍 ELK 监控体系搭建 ES & Kibana 搭建 Nginx 日志自动采集 Nginx Agent 安装 Nginx 服务器 数据分析 Lo ...

  4. 互联网IT当线上出现 bug 时,是怎么处理的?

    线上BUG说处理方法:1.关于线上BUG问题,目前公司有一整套线上故障流程规范,包括故障定义.定级.处理流程.故障处理超时升级机制.故障处理小组.故障处罚(与故障存在时长有关)等:2.最主要的是,线上 ...

  5. 使用tcpcopy复制线上流量进行测试

    使用tcpcopy复制线上流量进行测试 online server 线上服务所在机器 10.136.11.4 部署tcpcopy sudo /usr/local/tcpcopy/sbin/tcpcop ...

  6. 无需编译app切换线上、测试环境

    在咱们测试过程中,经常需要切换测试环境和线上环境.大致有如下几个方案. 一.服务器地址编译到app中 此种方式需要在代码里保存两套配置,一套指向线上,一套指向测试.通过编译参数分别生成测试包.线上包. ...

  7. HBase工程师线上工作经验总结----HBase常见问题及分析

    阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...

  8. (转)HBase工程师线上工作经验总结----HBase常见问题及分析

    阅读本文可以带着下面问题:1.HBase遇到问题,可以从几方面解决问题?2.HBase个别请求为什么很慢?你认为是什么原因?3.客户端读写请求为什么大量出错?该从哪方面来分析?4.大量服务端excep ...

  9. 轻松排查线上Node内存泄漏问题

    I. 三种比较典型的内存泄漏 一. 闭包引用导致的泄漏 这段代码已经在很多讲解内存泄漏的地方引用了,非常经典,所以拿出来作为第一个例子,以下是泄漏代码: 'use strict'; const exp ...

随机推荐

  1. makefile:n: *** missing separator. Stop

    makefile has a very stupid relation with tabs, all actions of every rule are identified by tabs .... ...

  2. jenkins X实践系列(3) —— jenkins X 安装拾遗

    jx是云原生CICD,devops的一个最佳实践之一,目前在快速的发展成熟中.最近调研了JX,这里为第3篇,介绍下如何安装jenkins x. 前置条件 安装K8S 安装ceph集群(jx需要stor ...

  3. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第八集之安装Nginx】

    1,务必保证安装Nginx之前,所需的环境必须安装完备.  gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc ...

  4. day64 url用法以及django的路由系统

    此篇博客是以备后查的,用到的时候记得过来查找即可! 路由系统:就是我们的django项目创建的时候自带的那个urls.py 它本身里面是映射的对应关系,一个大的列表里面,一个个元祖,元祖里面是url或 ...

  5. oracle的DBMS_JOB相关知识

    http://langgufu.iteye.com/blog/1179235 查看当前定时任务 select job,next_date,next_sec,failures,broken from u ...

  6. vue文字跑马灯效果

    https://cdn.bootcss.com/jQuery.Marquee/1.5.0/jquery.marquee.js 兼容vue $("#demo4").marquee({ ...

  7. 【LeetCode算法-13】Roman to Integer

    LeetCode第13题 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symb ...

  8. appium-电脑连不上手机设备如何解决

    在自动化过程中,会遇到电脑无法连接到手机情况,首先在cmd命令输入adb devices查看是否报错,报错绝大可能是5037端口被占用了,因为adb默认绑定的是5037端口 1.查看占用端口的进程PI ...

  9. 超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码)。

    我在两年前的博客里曾经写过 SSE图像算法优化系列七:基于SSE实现的极速的矩形核腐蚀和膨胀(最大值和最小值)算法  一文,通过SSE的优化把矩形核心的腐蚀和膨胀做到了不仅和半径无关,而且速度也相当的 ...

  10. 浅析js闭包

    闭包是一个老生常谈的问题,简单概括下闭包的形成的两个条件: 1.定义在函数内部 2.函数内部引用父层作用域变量 举一个最简单的例子: function test() { var a = 1; func ...