白盒测试及其存在的一些问题

白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

盒子就是指被测的软件,白盒的意思就是软件内部的结构是可视的,测试人员可以根据代码,在分析完程序的结构之后,我们全面了解程序内部逻辑结构、对所有逻辑路径进行测试。我们要穷举路径,从检查程序的逻辑着手,得出测试数据。但有的时候,贯穿程序的独立路径数是天文数字。

 

基本分类 参考于百度百科

 

覆盖

白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。
 
我们一般依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。
穷举路径,画出流程图是我认为最麻烦的。

优点(基于知道代码的情况)

1.迫使测试人员去仔细思考软件的实现 穷举各种问题
2.可以检测代码中的每条分支和路径
3.揭示隐藏在代码中的错误穷,举路径过程中,问题一旦发生,也即被定位
4.对代码的测试比较彻底
5.最优化

缺点与问题

1.昂贵
2.无法检测代码中遗漏的路径和数据敏感性错误,一旦有漏下的情况,问题发现不了,
3.不验证规格的正确性
 

局限

但即使每条路径都测试了仍然可能有错误。可能出现的情况如下:
  1. 穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
  2. 穷举路径测试不可能查出程序中因遗漏路径而出错。(穷举必须认真)
  3. 穷举路径测试可能发现不了一些与数据相关的错误。白盒测试基于代码,如果是数据库或者一些关键数据是错的,那么我们是发现不了的。

 

总体而言,对于一些规模较小的软件,还是白盒测试相对较好,穷举路径,不易遗漏,对问题的测试更加地透彻。

posted @ 2015-04-19 23:15  三班&唐家炜  阅读(412)  评论(0编辑  收藏  举报