白盒测试又称为透明盒测试、玻璃盒测试。“透明盒”、“玻璃盒”意味着你对软件产品的内部工作(尤其是代码的逻辑和结构)能有充分的认知。

 

测试有六种基本类型:单元测试,集成测试,功能/系统测试,可接受性测试,回归测试,Beta测试。白盒测试被其中三种所使用——单元测试,集成测试,回归测试。

 

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。

其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。

 

1 借助于桩(stub)和驱动(driver)的白盒测试

白盒测试下,你必须用预定的输入运行代码、并检查代码是否得到预定的输出。通常程序员们通过编写桩和驱动来进行白盒测试。

驱动是一个程序模块,它常被用来调用测试下的一个模块,并通常提供测试的输入、控制和监控执行,和报告测试结果;或者最简单的可以是一行这样一行代码,它调用了一个方法并向那个方法传递了一个值。

例如,如果你想移动一个玩家实例(Player1,在板上移动两格),那么驱动代码可以是

movePlayer(Player1,2);

这个驱动代码可以由主方法调用。一个白盒测试例子将会执行这个驱动器的代码行并检查Player.getPosition()来确保该玩家目前正在板上所期望的格内。

桩是一个计算机程序语句,可以用来代替一个(已经或将要在其他地方定义的)软件模块的主体,或者一个虚设的组件或对象用来模拟一个真正的组件的行为直到这个组件真正实现。

例如,如果movePlayer方法尚未实现,那么如下这样一个桩可能能暂时被使用(用来移动任何玩家到位置1)。

      public void movePlayer(Player player, int diceValue){

        player.setPosition(1);

      }

最终,虚设的方法将被用合适程序逻辑来完成。

总之,插桩使程序员能在正在实现的代码中调用一个方法,即使这个方法还未实现期望的行为。

 

桩和驱动通常被视作终将丢弃的代码。无论如何,他们不必要被丢弃:桩能被“放进”来组成真正的方法。驱动能成为自动测试用例。

 

2 派生测试用例

2.1 基础路径测试

2.2 等价类划分/边界值分析

 

3 控制流/覆盖测试

 

……

 

posted on 2015-04-19 20:24  白蜀黍  阅读(405)  评论(0编辑  收藏  举报