手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2024年09月的文章

对于不可重现bug的个人理解

对于不可重现的BUG,有时候确实很郁闷,想要再查是什么原因都不可能。对于这个淘宝QA们有话说:【原贴地址为:http://rdc.taobao.com/blog/qa/?p=3965】

         来到公司后参加了4个项目,在测试过程中一个头疼的bug便是不可重现的bug。针对这类bug,有不同的观点,一部分认为是测试人员的操作错误,一部分 人认为是这类bug是真实存在,根据我的经历我赞同后面这个观点,而且认为出现不可重现bug只是小概率的事件。

个人认为出现不可重现bug的原因大致如下:

1.  测试环境的不稳定。

2.  测试用例没有完全细化覆盖到这个功能点。

3.  人的问题,测试人员总是操作不到点上。

面对不可重现性bug我们应该怎么做呢? 实际工作过程中出现不可重现bug对我们测试人员是一种锻炼,锻炼我们提交bug的能力,跟踪bug的能力,可以充分锻炼我们的探索式思维,很多时候这种探索式思维对重现bug有很大的帮助。

      1.项目测试时,争取有自己独立的干净的测试环境。同时为了重现bug可以试着交换测试机器,或者测试任务。

2.  回顾我们的测试用例,看确实是否存在遗漏功能需求。一般都会存在,只是这个需求可能极其隐蔽。

3.  一旦出现bug,分析,记录刚刚进行的操作,以及刚执行的用例,然后争取保留现场,和开发同学及时的交流,及时的查看日志,以及现场。

4.  必要时借助测试工具,开发同学要有良好编码习惯特别是对于log,尽可能的要重视log的作用。

5.  探索式测试。这种测试对于重现bug还是比较管用的。

我们这次项目涉及到了客户端,在测试一段时间后客户端就会crash,(客户端在用户使用过程中崩溃肯定影响公司的形象),crash出现的频率基 本在一天一次左右,但是出现在不同的测试用例执行过程中,甚至在长时间开着客户端也会偶尔出现crash。这说明所谓的这个“不可重现”bug是真实存在 的,开发同学经过多次的日志分析后终于在项目测试第二轮结束时顺利解决掉。客户端崩溃的原因:简洁的说,“多线程重入一个共享对象,一个在使用,一个在 destruct”。由于本次项目缺少接口测试资源,这个原本接口测试中可以很容易发现的bug遗留到了功能测试过程中,于是变成了所谓的“不可重现”或 者“不容易重现”,“无规律”重现的bug。也就是说由于我们缺少接口测试的用例于是变成了功能测试来“埋单”了,另一个方面也证明了做为一个正规的程序 类项目我们缺少测试流程中的哪一个环节也都是要付出一定代价的!

我发现候哥写过一篇不可重现bug的应对方法,因此也将候哥的连接,连在这

http://rdc.taobao.com/blog/qa/?p=2447

我为何如此容易愤怒?

随记。。。

计划赶不上变化,每次我有想法要做事情的时候,总会有各种各样的事情发生。

小朋友吞梳子(塑料梳上的一根牙齿)了【情况未知,医院也看不出啥问题。】

家里嘛。一切开始混乱了起来。

东西乱放,受不了了。

【建议】

有小孩的朋友,请把这些易折易断的物品拿开离小孩远点。刚才听andot说,小孩抓小塑料袋吃了。恐怖

这些东西一来容易刺伤小孩,二来也不易消化。

小孩太娇嫩了,为了下一代,请让他们远离这些物品吧。

JS找出一串字符中出现最多的字符

本文来自博客园,有点意思。。。
原文地址:http://www.cnblogs.com/kenandalda/archive/2009/09/20/1570617.html

作者认为:

XML/HTML代码
  1. 用数组的sort方法对字符串进行排序,让相同字母都到一起去  
  2. 用正则表达式来匹配两个相邻的不同字符,中间加上逗号  
  3. 以逗号为界把第二步得到的字符串打散成数组  
  4. 按字符串长度排序该数组,得到的第一个元素就是要的答案  

于是写了以下代码:

JavaScript代码
  1. String.Count=function(str){  
  2.     var ret=str.split("")  
  3.                 .sort()  
  4.                 .join("")  
  5.                 .replace(/((.)\2*)/g,"$1,")  
  6.                 .split(",")  
  7.                 .sort(function(a,b){return b.length-a.length});  
  8.     return [ret[0][0],ret[0].length];  
  9. }  
  10.   
  11. var s="&(&$#(JFLSDJFOIWEfdjsklfewosd2378907345asdsdwsdqs";  
  12. alert(String.Count(s));  

作者是谁?他是:Kenneth Chen,据称代码已经修改过了。。

Mediaplay for Firefox

以前是不可想像 的事,现在也终于可以实现了。

Installation Instructions

  1. Installation of the Windows Media Player Firefox Plugin may require administrative access to your PC. It is recommended that you close all other open browser windows before continuing with the installation.
  2. Click the Install button to automatically download and install the Windows Media Player Firefox Plugin.
  3. Depending on your security settings, you may see a Security Warning dialog box. Click Install to install the plugin.

Get answers about Windows Media, Media Player 11 and Windows Vista at Microsoft.com.

支持的平台也不少,当然,only for Windows。。。只是不支持SERVER版的系统,郁闷啊。。

File size: 302K
Platforms:

  • Windows XP SP2 (x86)
  • Windows XP SP2 (x64)
  • Windows Vista (x86)
  • Windows Vista (x64)

远程下载:Download Now

本地下载:wmpfirefoxplugin.rar

Tags: mediaplay, firefox

Haohappy翻译的PHP5.3新特性

PHP5.3现在或许有N多人在研究在测试了。虽然那个namespace长的丑了一点。但不影响其他功能对我的影响。
haohappy在这里作了介绍,有部分资料以前介绍过,我这里就不多介绍,我所转的只是我认为的一些新特性

CLASS相关

1、静态类可以动态调用,即类似于 $aa::$bb($cc) 这样的调用方式,以前只能使用call_user_func(array($aa,$bb),$cc)这样的方式来调用

2、静态类增加了 __callStatic,类似于__call,但这是专为静态类使用的。

3、类中增加了__invoke方法(haohappy没有介绍,我也没有翻手册)

Nowdoc,

说这个nowdoc,恐怕很多人不明白,还有heredoc,还是很多人不明白这是什么,如果说到“定界符”,也许会有人记得。这是在国内被翻译的名词吧?

PHP代码
  1. <?php  
  2. print <<<EOT  
  3.    xxxx  
  4. EOT;  

关于定界符的功能,我不想多说,可以翻手册,nowdoc,的功能和用法是什么呢?以上面的代码为例,是在第一个EOT处,为EOT加上单引号,即 <<<'EOT',在这样的操作下,整个定界符中的变量将不会被解析,比较适合用来处理大段的 PHP 代码

常量定义方式增加

原来的常量定义是:define("XXX",XXX);如今 又增加了一个新的方法: const XXX = "XXX";

三元运算符增加了一个快捷书写方式: ?:【感觉和以前的那种 for 循环的简写有点类似,忽略部分参数。。。】

原本格式为是(expr1) ? (expr2) : (expr3)
如果expr1结果为True,则返回expr2的结果。

PHP5.3新增一种书写方式,可以省略中间部分,书写为expr1 ?: expr3
如果expr1结果为True,则返回expr1的结果


HTTP
状态码在200-399范围内均被认为访问成功

支持嵌套处理异常(Exception

新的垃圾收集器(GC),并默认启用

 

Tags: haohappy