白盒测试又称结构测试,主要用于单元测试阶段。其前提是,程序可以被视为包装在一个透明的白盒中,测试人员完全了解程序的结构和处理算法。该方法根据程序的内部逻辑设计测试用例,以检测程序中的主要执行路径是否能按照预定的要求正常工作。
白盒测试根据软件的内部逻辑设计测试用例。常见的技术是逻辑覆盖。有六个主要覆盖标准:声明覆盖、决策覆盖、条件覆盖、决策/条件覆盖、组合条件覆盖和路径覆盖。
(1)语句重写。语句覆盖率是指选择足够的测试用例,以便在运行这些测试用例时,被测试程序的每个语句至少执行一次。显然,声明覆盖率是一个薄弱的覆盖标准。
(2)确定覆盖范围。决策覆盖率,也称为分支覆盖率,意味着不仅每个语句至少执行一次,而且每个决策的每个可能结果(分支)至少执行一次。决策覆盖率比语句覆盖率强,但程序逻辑的覆盖率仍然不高。
(3)有条件的保险。条件覆盖意味着不仅每个语句至少执行一次,而且决策表达式中的每个条件都可以实现各种可能的结果。有条件覆盖不一定包括决策覆盖,决策覆盖也不一定包括有条件覆盖。
(4)决定/条件保险。同时满足决策覆盖和条件覆盖的逻辑覆盖称为决策/条件覆盖。
它的意思是选择足够的测试用例,以便判断表达式中每个条件的所有可能结果至少出现一次
每个决策本身的所有可能结果至少出现一次。
(5)条件组合覆盖。条件组合覆盖率的含义是选择足够多的测试用例,以便每个判断表达式中的条件结果的所有可能组合至少出现一次。
显然,满足条件组合覆盖的测试用例也必须满足决策/条件覆盖。因此,在上述五个覆盖标准中,条件组合覆盖是最强的。然而,有条件的组合覆盖不能保证程序中所有可能的路径至少通过一次。
(6)路径覆盖。路径覆盖的含义是选择足够的测试用例,使程序的每个可能路径至少通过一次(如果程序中有一个循环,则每个循环路径至少需要通过一次)。
2.黑盒测试黑盒测试,也称为功能测试,主要用于集成测试和验证测试阶段。它认为软件是一个不透明的黑匣子,没有考虑(或理解)软件的内部结构和处理算法。仅检查软件功能是否能按照软件需求说明书的要求正常使用,软件是否能正确接收输入数据并生成正确的输出信息,在软件运行过程中是否能保持外部信息(如文件和数据库)的完整性。
黑盒测试根据软件需求规格说明书中规定的功能设计测试用例,不考虑软件的内部结构和处理算法。
常用的黑盒测试技术包括等价类划分、边值分析、错误推理和因果图。
(1)等价类划分
在测试用例设计中,等价类划分是最常用的黑盒测试方法。
所谓的等价类是一组输入字段。对于等价类中的输入值,它们揭示了程序中的错误
它的效果相当。换句话说,如果等价类中的输入数据可以检测到错误,那么等价类
同样的错误也可以在中的其他输入数据中检测到;相反,如果无法检测到等价类中的输入数据
等价类中的其他输入数据无法检测到错误(除非等价类的子类
集合也属于另一个等价类)。
无效等价类用于测试异常输入数据,因此每个无效等价类
可以检测软件中的错误,因此应该为每个无效的等价类设计一个测试用例。
(2)边值分析
经验表明,在处理边界条件时,软件最容易出错。设计一些测试用例,使软件在边界附近运行,这将更有可能暴露软件错误。
一般来说,应着重测试每个等效类的边界,所选测试数据应完全等于、略小于或略大于边界值。
(3)虚假猜测
错误推理方法主要依靠测试人员的经验和直觉来选择一些最有可能导致程序错误的测试方案。
(4)因果图
因果图方法根据输入条件和输出结果之间的因果关系设计测试用例。它首先检查输入条件的各种组合,找出输出结果对输入条件的依赖性,然后为每个输出条件组合设计测试用例。
最新评论