软件测试方法比较——适合测试新手

2010-07-28  付民 

1. 黑盒、白盒、灰盒测试方法的优缺点,适用范围分别是什么?分别举例进行说明。

白盒测试

优点:

迫使测试人员去思考软件的实现;

可以检测代码中的每条分支和路径;

揭示隐藏在代码中的错误;

对代码的测试比较彻底;

最优化。

缺点:

昂贵;

无法检测代码中遗漏的路径和数据敏感性错误;

不验证规格的正确性。

黑盒测试

优点:

对比较大的代码单元来说,黑盒测试比白盒测试效率要高;

测试人员不需要了解实现的细节,包括特定的编程语言;

测试人员和编码人员是彼此独立的;

从用户的视角进行测试,很容易被理解和接受;

有助于暴露任何规格不一致或者有歧义的问题;

测试用例可以在规格完成之后马上执行。

缺点:

只有一小部分可能的输入被测试到,要测试每个可能的输入流几乎是不可能的;

没有清洗的和简明的规格,测试用例是很难设计的;

如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复;

会有很多程序路径没有被测试到;

不能直接针对特定程序段测试,该程序段可能隐藏更多错误;

大部分和研究相关的测试都是直接针对白盒测试的。

灰盒测试

介于黑盒和白盒测试之间的一种测试。

2. 静态、动态测试方法的优缺点,适用范围分别是什么?分别举例说明。

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

3. 手工、自动化测试方法的优缺点,适用范围分别是什么?分别举出实例进行说明。

手工测试方法能够发现更多的缺陷,测试设计不会遗漏问题。

缺点:测试重复频繁的测试,效率低,完全一致性得不到保证。

自动化测试方法的优点:

1、对程序的回归测试更方便。由于回归测试的动作和用例是完全设计好的,期望的结果也是可以预料的,自动运行何以提高测试的效率,缩短测试的时间;

2、可以运行更多更繁琐的测试;可以执行一些手工测试不能进行或者困难的测试,比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,从而达到测试的目的。

3、更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。

4、测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。

5、测试的复用性。由于自动测试通常采用本技术,这样就有可能只需要做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。

6、增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。

自动化测试的缺点:不能取代手工测试,只能提高测试的效率,不能提高测试的有效性,不能发现更多的缺陷,对测试设计的依赖性大,不能保证正确性,工具不具有想象力,不具有智能。

使用于:智力含量低,反复频繁重复时,版本相对稳定时,项目中的技术能力达到,有代码编码能力时,进度允许时。

449°/4461 人阅读/3 条评论 发表评论

刘俊  2010-07-28

一直没办法弄清楚灰盒和白盒的根本区别


付民  2010-07-28

刘俊: 一直没办法弄清楚灰盒和白盒的根本区别
呵呵。。。。。


曾慧  2010-07-28

学习了!


登录 后发表评论