background image

  

}

  读了代码之后可以知道,先要检查一个字符串是否为空,然后再根据播放
器当前的状态来执行相应的动作。可以这样设计一些测试用例:比如字符串

(文

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

情况

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

放器内部状态的不同,可以设计很多不同的测试用例。这些是在纯粹做黑盒测试
时不一定能做到的事情。

  白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽
略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发
现代码中隐藏的问题。

  白盒测试的缺点有:

  

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

  

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

与否,可能会漏掉一些功能需求

;

  

3)系统庞大时,测试开销会非常大。

  

3. 基于风险的测试

  基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间
或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表影响,
竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整
个产品的影响有多大,这个功能出问题的概率有多大

?如果出问题的概率很大,

出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用
户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那
么如果时间比较紧的话,就可以考虑不测试。

  基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,
出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性
等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。

  

4. 基于模型的测试

  模型实际上就是用语言把一个系统的行为描述出来,定义出它可能的各种
状态,以及它们之间的转换关系,即状态转换图。模型是系统的抽象。基于模型
的测试是利用模型来生成相应的测试用例,然后根据实际结果和原先预想的结
果的差异来测试系统,过程如下图所示。