白盒测试和黑盒测试

一、白盒测试

白盒测试也称为结构测试,主要应用于单元测试阶段,检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。

白盒测试的方法:

强度由低到高:

1)语句覆盖:所有的“语句”都要覆盖一遍。就是设计若干个测试用例,运行被测程序,使得每一个执行语句至少执行一次。

2)判定覆盖:包含语句覆盖,每个判断T、F各一次。使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。

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

4)判定条件覆盖:包含判定覆盖、条件覆盖。说白了就是我们设计的测试用例可以使得判断中每个条件所有的可能取值至少执行一次(条件覆盖),同时每个判断本身所有的结果,也要至少执行一次(判定覆盖)。不难发现判定条件覆盖同时满足判定覆盖和条件覆盖,弥补了两者各自的不足,但是判定条件覆盖并未考虑条件的组合情况。

5)条件组合覆盖:每个条件的每种组合。在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。意思是说我们设计的测试用例应该使得每个判定中的各个条件的各种可能组合都至少出现一次。显然,满足条件组合覆盖的测试用例一定是满足判定覆盖、条件覆盖和判定条件覆盖的。

6)路径覆盖:所有路径至少执行一次。

语句覆盖是在所有的测试方法中一种最弱的覆盖

判定覆盖和条件覆盖比语句覆盖强,满足判定条件覆盖的测试用例一定满足语句覆盖、判定覆盖、条件覆盖

路径覆盖是一种比较强的覆盖,但未必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。必考虑判定条件结果的组合,并不能代替条件覆盖和条件组合覆盖。

二、黑盒测试

黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。

黑盒测试的方法

1)等价类划分法

等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:a确定等价类;b生成测试用例。

2)边界值分析法

边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

3)因果图法

因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况

4)判定表法是分析和表达多逻辑条件下执行不同操作的情况的工具。

a条件桩:列出了问题的所有条件

b动作桩:列出了问题规定可能采取的操作

c条件项:列出针对它所列条件的取值,在所有可能情况下的真假值

d动作项:列出在条件项的各种取值情况下应该采取的动作

5)错误分析法

错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例。

三、黑盒测试和白盒测试的优缺点

测试方法

黑盒测试

白盒测试

优点

1、比较简单,不需要了解程序内部的代码以及实现

2、在用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题

3、在做软件自动化测试时较为方便

1、帮助软件测试人员增大代码的覆盖率

2、提高代码的质量、发现代码中隐藏的问题

缺点

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

2、自动化测试的复用性较低

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

2、测试基于代码,只能测试开发人员做的对不对,而不能知道设计的功能需求是否正确。

3、系统庞大,测试开销会非常大

你可能感兴趣的:(测试用例,测试工具,单元测试)