白盒测试深度理解

      白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。

       黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

       白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

    软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,

测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的
功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。
   软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,
它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

    白盒测试的优缺点自然也很明显:

 

 优点:

 

·迫使测试人员去仔细思考软件的实现

 

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

 

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

 

·对代码的测试比较彻底

 

·最优化

 

 缺点:

 

·昂贵

 

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

 

·不验证规格的正确性

 

    介绍六种白盒子测试方法:

语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖

 

1)所谓语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。语句覆盖率的公式可以表示如下:

 

语句覆盖率=被评价到的语句数量/可执行的语句总数 x 100%

 

2)判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支(t or f)至少经历一次

 

[优点]:判定覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例。

 

[缺点]:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

 

3)条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支

 

条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况,要独立衡量每个子表达式的结果,以确保每个子表达式的值为真和假两种情况都被测试到。

 

4) 判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。

 

5) 条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。

 

6)路径覆盖:是每条可能执行到的路径至少执行一次;

 

 

posted on 2015-04-13 21:40  求败传奇  阅读(290)  评论(0编辑  收藏  举报

导航