首页 测试 体会 查看内容

软件测试中的抽象层次系列之一 ? 黑盒与白盒

2014-6-25 14:31| 发布者: tianzc| 查看: 504| 评论: 0

摘要:   前几天我在微博上发出了一个STB-010(软件测试在线公益课程系列)报名通知的帖子,这一讲的题目是“软件测试?盒技术与应用 - 状态转换测试方法”,立即引来了一些讨论。  比如朱少民老师就指出:“人们喜欢将 ...
  为什么说“同时做好黑盒与白盒测试,软件测试才是有效、充分的呢?”举个例子来说明。  有这样一段代码,输出0~99共100位数字:  int x;  for(x=0; x<100; x++);  cout<<x;  结果由于程序员粗心,多加了一个分号,导致实际输出的只是100而已。这种错误是比较常见的,如果把这一小段代码呈现在我们面前,我们用代码review的方式很容易就能找出这个bug。但是现在试想一下,把这段代码放到一个有几百万行代码甚至更大的一个系统中,通过代码review找出这个bug,无异于大海捞针!  况且,增加一个多余的分号并没有违反什么语法规则,编译器也只是会认为这是一个循环体为空的循环语句而已,并不会有错误提示。  您可能会说,这简单,用黑盒测试的方法运行一遍基本功能,很容易就发现了。但是,谁又能保证黑盒测试可以覆盖所有的bug呢?毕竟,测试是无穷无尽的,永远也执行不完,而漏测是必然的。  可见,单单用白盒或者黑盒的方法都不是绝对保险的,并且黑盒测试和白盒测试由于他们的视角不一样、所处的抽象层次不一样,能够发现的缺陷类型、发现缺陷的难易程度、发现缺陷的成本多少、对测试人员的技能要求等都不一样,有效地将二者结合起来使用、互为补充,才能使测试效果最优。  结论  不必太在意“黑盒测试”与“白盒测试”具体的定义,他们只是辅助我们做好实际测试工作的一些概念而已(您甚至可以有自己的一套定义、一套术语);  “黑盒”与“白盒”体现的是测试人员思考问题的一种方式,“黑盒”将被测对象当作一个黑匣子,考虑其整体表现;“白盒”将一个个黑匣子打开,深入内部探索细节。  大体上,“黑盒测试”与“白盒测试”分属于不同的抽象层次,黑盒更偏重于概括一些,白盒更偏重于具体一些;  “黑盒”与“白盒”的抽象层次是相对的,一个系统可能有多层的抽象;  “黑盒测试”与“白盒测试”二者结合起来使用,互为补充,测试才更充分。
12

鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部