收藏本站 收藏本站
积木网首页 - 技术学院 - 软件测试 - 网站黄页 - 常用手册 - 站长工具 - 技术社区
软件测试 > 业务知识 > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

软件测试其实只是测试的一部分

来源:互联网 日期:2013-12-21 11:30

  最近半年负责统计质量竞赛的数据,都是在和线上bug,故障什么的打交道,看的我触目惊心的,也从中明白了一些道理。我想最近最大的感受就是,测试送测的功能其实只是测试的一部分。对于程序来说,我想没有一个测试是敢说我测的程序没有bug,这个是不现实的,只不过是还没发生特定的场景来触发隐藏着的bug。而我们测试在异常测试的时候的确也会设计异常的case去检查程序的处理是否合理,但是这一切都是我们能想到的,或者说你预期出来的,而重要的是程序并不一定就会按照你的预期来执行。那么对于此,我们能做些什么。

  做好对于预期指标的监控

  我们不希望程序崩溃,但是也不希望程序危险的运行了很久直到崩溃才发现问题。那么其实可以设定一些你预期的目标,比如资源的使用情况,程序的运行时间,数据产出的时间,这些都可以设定一个预期的值,并进行监控,当真实情况已经和预期不符的时候就可以发警告到相关的开发和测试,提醒目前可能有一些因素导致程序可能处于危险的状态。提前发现一些危险的苗头就扼杀解决掉总是要比等到崩溃再处理好的多吧。

  举几个典型的例子:

  1、缺少regionserver的监控,导致问题很晚才发现。

  数据倾斜的问题:因为应用不重要很少有人关注,这个应用就开始肆意的运行,直到有一天网络监控的人经过排查觉得这个应用可能会占用很多带宽,事实的确如此。但是,如果之前对regionserver的服务状况就进行监控,当发现某台机器处理数据的频繁程度超过其他机器,那么就不用等到负责系统的人员排查很久才发现,而在之前我们自己完善的监控就会提醒负责的人员,此时数据或者程序处于危险状态,需要处理,那么问题就会很早的解决掉。

  2、依赖第三方或者其它组的jar包,依赖的东西有bug,导致问题很晚才发现。

  云梯jar包升级存在bug:通俗的说就是A家给B家送数据,要用B家的工具才行,某天B家的工具升级了,但是升级失败了,而它的bug是明明自己不能用了,但是还拉着你不让你走也不给你返回值退出。那么就会出现一种什么状况,程序是判断返回值来感知命令是执行成功了还是失败了,但是B的jar包的bug是拉着你,不给你返回值,怎么办,就会导致你不知道他不能用了,就死耗在那,虽然我不耗在那我也不能往B送数据了,但是我希望我自己的程序是可以感知到推数据的部分运行时间太长了,可能是在危险的运行着,那么此时就是需要一个对于预期指标的监控,需要一个外围的和程序无关的外围监控,当这个程序执行的时间比平常长一个阀值,我就应该发个警告提醒相关人员去看看,发生了什么事情导致我程序运行的这么慢。

  这些问题的出现说白了,还是缺少必要的外围监控,我们不能对于环境,或者某些别人提供给我们的,或者某些很或的开源代码,或者被证明很稳定的软件产生任何的依赖信任心理,一切可能发生的或者不可能发生的监控都是有必要的,使用任何东西都是存在风险的,但是我们要尽量努力风险被触发的时候我们能在尽量早的时间发现。

  回滚方案:

  当上面那些东西已经没用,我们没能在程序处于危险的状态的时候就发现,而程序已经崩溃了。想想如果之前没有回滚方案,那么任何现想出来的方案都是冒着非常大的风险,或者回滚方案大家并没有验证可行否,那跟前者也没什么区别。我们不能保证不发生任何的突发状况,但是当出现突发状况的时候我们要怎么处理,要怎么把损失降到最小,用最少的时间解决才是关键。所以回滚方案是非常重要的,测试可能的话最好自己模拟一下,验证一下可行行。而且对于回滚方案随着时间的退役可能遇到的问题最好也能跟进,比如这周回滚方案是可行的,但是又过了一阵环境啊,资源啊,依赖的东西啊,当这些都变了,原来制定的回滚方案还有效吗。这些问题考虑清楚了,回滚方案才会在关键的时候起作用。

  对整体的把握来看新老的依赖:

  这个我想对于新接手什么的挑战是最大的,对于从头跟,业务逻辑,依赖关系清楚的人来说可能还好,的那是对于新接手,前面发生了什么事情完全不知的人来说可能是个潜在的灾难。这个就需要有一些前人总结的checklist,什么的来提醒之类的,最主要的是自己要时刻提醒自己,要记得关注新功能是否对老的会产生影响。如果因为新老依赖没搞清楚,导致新的上线使得部分来的功能失效了,那是非常悲剧不值的,所以嘴一定要勤,要问。

  暂时就想到这些了,当这些问题都纳入考虑的时候,软件测试其实真的就只是测试的一部分!

版权声明:本文出自 测试成长之路 的51Testing软件测试博客:http://www.51testing.com/?445759

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号