他山之石,可以攻玉”这一富有哲理的成语很多人耳熟能详,但出处及全诗初意义估计会被现在的释义转换了。其初便出自于诗经?小雅?鹤鸣,而原诗并不意在阐释哲理,而是赞颂园林池沼的美丽。本篇说的也不是阐释哲理,也不赞颂园林之美,只是借用一下表述一下软件测试方法,我们知道同样是一头牛,疱丁解的和我们解的会不一样,原因无他,方法正确,结构熟悉,那么软件测试的方法又有哪些呢?

  测试的基本方法有两种:白盒子和黑盒子测试方法,现在来说还有白加黑的测试,即灰盒测试。那何为白盒,又何为黑盒呢,灰盒又是什么?

  1、白盒子

  白盒子测试是一种透明测试方法,测试者必须完全了解功能或特性实现的内部结构和细节。针对软件测试,白盒子测试是通过阅读所测试软件的原代码,掌握程序所要求的参数、初始数据,设计CASE, 使测试能遍历所有路径(分支)和满足各种条件。

  白盒子测试的要点是:

  ● 确定代码测试的控制点

  ● 要求了解主要变量、每个函数和类、对象的作用

  ● 逻辑驱动能力

  ● 编写手工测试程序

  ● 对过程性细节做检查

  ● 对程序所有逻辑路径进行测试

  白盒测试关键是代码的覆盖面,包括:

  ● 有选择地执行程序中某些具有代表性的通路

  ● 语句覆盖:使程序中每个语句至少执行一次,

  ● 条件覆盖:每个判断的每个条件的可能取值至少执行一次

  ● 条件组合覆盖:使得每个判定表达始终条件的各种组合都至少出现一次

  ● 路径覆盖:使程序的每条可能路径都至少执行一次

  2、黑盒子

  黑盒子测试是不要了解功能或特性实现的内部结构和细节,把程序、模块或产品看成一个黑盒子,检查是否符合功能说明,适当地接受输入,产生输出,并保持外部信息完成性,要清楚系统或模块要达到的目的或期望值(输入/输出结果)。

  测试者只关心系统应该做些什么,而不管它是怎样实现的。这种方法要点是:

  ● 自动创建

  ● 类、对象和函数知识的限制

  ● 规范所特定的Case Table

  ● 数据驱动

  黑盒子测试的一些具体方法有:

  ● 等价类划分黑盒测试,等价类是子集,其中的数据对于揭露程序中的错误是等效的。划分等价类是根据经验和探索性的工作,设计测试用例,使其尽可能多地覆盖有效等价类,直到所有有效等价类被覆盖

  ● 边界值分析黑盒测试,它是对等价类划分的补充,不是从等价类中随便选一个数据作为代表,而是选几个特定值测之等于、刚刚大于、刚刚小于边界值。