background image

  

1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的

30%  

  

2

 

)自动化测试的复用性较低。

 

 

  (二) 白盒测试

  白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容

的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础

 

来设计测试用例。如下例程序代码:

  

HRESULT Play( char* pszFileName ) 

  

  

if ( NULL == pszFileName ) 

  

return; 

  

if ( STATE_OPENED == currentState ) 

  

  

PlayTheFile(); 

  

  

return; 

  

  读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放

器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串(文

件)为空的话会出现什么情况;如果此时播放器的状态是文件刚打开,会是什

么情况;如果文件已经在播放,再调用这个函数会是什么情况。也就是说,根据

播放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测

试时不一定能做到的事情。

白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽

略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发

 

现代码中隐藏的问题。

 

  白盒测试的缺点有:

  

1

 

)程序运行会有很多不同的路径,不可能测试所有的运行路径;

  

2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正

3