白盒测试测试方法(01/05)
白盒测试测试方法
最佳答案:
白盒测试主要关注软件内部的逻辑结构。
语句覆盖是一种方法,它要求设计足够多的测试用例,使得程序中的每一条可执行语句至少被执行一次。例如一个简单的函数计算两个数相加并返回结果,通过不同的输入值组合确保函数中的加法语句能执行。
判定覆盖是让程序中的每个判定的取真和取假分支至少经历一次。以一个包含if - else语句的程序段为例,要让测试用例能使if条件成立的情况和不成立的情况都出现,以此来检查程序在不同判定结果下的运行状况。
条件覆盖侧重于让每个判定中的每个条件的可能取值至少被满足一次。假如判定条件是“a > 10 && b < 20”,测试用例要涵盖a大于10和a小于等于10,b小于20和b大于等于20的情况。
路径覆盖是设计测试用例来覆盖程序中所有可能的执行路径。对于有循环和嵌套分支的复杂程序,要找出所有可能的执行顺序组合,通过大量的测试用例来保证程序在每一种路径下都能正确运行。
白盒测试有几种方法
一般可分为:静态分析和动态分析两种方法。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。白盒测试并不是简单的按照代码设计用例,而是需要结合不同的测试对象,使用适合的方法进行测试。
白盒测试用例设计的一个很重要的评估标准就是对代码的覆盖度。白盒测试中常见的覆盖方法有六种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。下面我们就分别看看这几种不同的覆盖吧。
语句覆盖(StatementCoverage)主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖需要选择足够的测试用例,使我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。
优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。
白盒测试都有哪些方法? 都有什么用?
白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它主要用于软件或程序验证。
白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为:
穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。
穷举路径测试不可能查出程序因为遗漏路径而出错。
穷举路径测试发现不了一些与数据相关的错误。
采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的:
保证一个模块中的所有独立路径至少被测试一次。
所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
检查程序的内部数据结构,保证其结构的有效性。
在上下边界及可操作范围内运行所有循环。
白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有:
逻辑覆盖法(逻辑驱动测试)
基本路径测试方法