白盒测试的六种覆盖准则

合集下载

白盒测试法的覆盖标准是什么

白盒测试法的覆盖标准是什么

白盒测试法的覆盖标准是什么白盒测试是软件测试中一种重要的测试方法,它旨在检查软件内部结构、代码逻辑和执行路径的有效性。

在进行白盒测试时,一个关键的概念就是覆盖标准,它用来衡量测试用例对代码的覆盖程度以及测试的全面性。

在本文中,我们将深入探讨白盒测试法的覆盖标准是什么。

1. 覆盖标准的定义覆盖标准是指在进行白盒测试时,测试用例需要覆盖的代码结构、逻辑路径或执行情况的度量标准。

它可以帮助测试人员评估测试的完整性和有效性,从而提高软件质量和稳定性。

2. 常见的覆盖标准在白盒测试中,常见的覆盖标准包括:2.1 语句覆盖语句覆盖要求测试用例执行时能够覆盖到软件中的每一条语句。

这是最基本的覆盖标准,可以确保代码的每一行都得到执行,并且检测出潜在的语法错误。

2.2 判定覆盖判定覆盖要求测试用例覆盖每个判定的真假两个分支。

通过判定覆盖,可以确保程序每个判断条件都被检测到,提高测试的全面性。

2.3 条件覆盖条件覆盖要求测试用例覆盖每个条件表达式的真假情况,包括多个条件之间的组合情况。

通过条件覆盖,可以检测出程序中条件逻辑错误,提高测试的深度。

2.4 路径覆盖路径覆盖要求测试用例覆盖程序的每个可能路径,从入口到出口。

路径覆盖可以帮助发现程序中隐藏的逻辑错误和死代码,提高测试的全面性和准确性。

2.5 判定/条件覆盖判定/条件覆盖要求测试用例同时满足判定覆盖和条件覆盖的要求。

这个覆盖标准结合了判断覆盖和条件覆盖的优点,可以更全面地检测程序中的逻辑错误。

3. 如何选择覆盖标准在实际的白盒测试中,选择适合的覆盖标准非常重要。

一般来说,在项目初期可以使用语句覆盖和判定覆盖来快速检测代码的基本问题,随着测试的深入,逐步引入条件覆盖和路径覆盖等更高级的覆盖标准。

根据项目的需求和实际情况,灵活选择合适的覆盖标准,确保测试的有效性和覆盖范围。

4. 总结白盒测试法的覆盖标准是评估测试用例的全面程度和有效性的重要标准,选择适合的覆盖标准可以帮助发现潜在的软件问题,提高代码质量和稳定性。

白盒测试方法-覆盖

白盒测试方法-覆盖
d和e是控制流上的若干程序点。
一、语句覆盖
语句覆盖的含意是,在测试时,首先设计若干个测试用例,然后运行被测程序,
使程序中的每个可执行语句至少执行一次。这时所谓“若干个”,自然是越少越好。
在上述程序段中,我们如果选用的测试用例是:
A=2
B=0………………CASE1
X=3
则程序按路径ace执行。这样该程序段的4个语句均得到执行,从而作到了语句覆
四、判定-条件覆盖
判定-条件覆盖要求设计足够的测试用例,使得判断中每个条件的所有可能至少出
现一次,并且每个判断本身的判定结果也至少出现一次。
例中两个判断各包含两个条件,这4个条件在两个判断中可能有8种组合,它们
是:
①A〉1,B=0记为T1,T2
②A〉1,B≠0记为T1,F2
③A≤1,B=0记为F1,T2
CASE语句)的情况。
三、条件覆盖
条件覆盖是指,设计若干测试用例,执行被测程序以后,要使每个判断中每个条
件的可能取值至少满足一次。
在上述程序段中,第一个判断应考虑到:
A>1,取真值,记为T1
A>1,取假值,即A≤1,记为F1
B=0,取真值,记为T2
B=0,取假值,即B≠0,记为F2
第2个判断应考虑到:
盖。但如果选用的测试用例是:
A=2
B=1………………CASE2
X=3
程序按路径abe执行,便未能达到语句覆盖。
从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地
检验每一个语句。但它也绝不是完美无缺的。假如这一程序段中两个判断的逻辑运算
有问题,例如,第一个判断的运算符“AND”错成运算符“OR”或是第二个判断中的
执行语句有一定作用外,并没有排除被测程序包含错误的风险。

白盒测试的六种方法怎么写的呢

白盒测试的六种方法怎么写的呢

白盒测试的六种方法怎么写的呢在软件开发过程中,白盒测试是一种重要的测试方法,它旨在检查软件内部的结构和逻辑是否正确。

白盒测试可以有效地发现代码中的错误和潜在问题,帮助开发人员提高代码质量和软件稳定性。

在进行白盒测试时,有许多不同的方法和技术可以使用,下面将介绍其中的六种方法。

1. 语句覆盖语句覆盖是一种基本的白盒测试方法,它要求执行测试用例时能够覆盖到每个代码语句。

通过语句覆盖可以确保代码的每个部分都被执行到,从而有效地发现潜在的错误。

2. 判定覆盖判定覆盖是在语句覆盖的基础上进一步要求每个条件的真值都至少执行一次,以确保所有的逻辑分支都被覆盖到。

判定覆盖可以有效地检测条件语句中的错误和逻辑问题。

3. 条件覆盖条件覆盖是针对复杂的条件语句设计的一种测试方法,它要求每个条件的每种可能情况至少执行一次。

通过条件覆盖可以发现条件语句中可能存在的逻辑错误和边界情况。

4. 路径覆盖路径覆盖是一种比较严格的测试方法,要求执行测试用例时覆盖到代码中的所有可能路径。

路径覆盖能够充分检查程序中的所有分支和循环,帮助发现隐藏的错误。

5. 边界值分析边界值分析是一种重要的测试方法,用于确定测试用例的边界情况。

通过在边界值附近设计测试用例,可以有效地发现潜在的边界问题和异常情况,提高测试的全面性和准确性。

6. 异常处理异常处理是在白盒测试中需要重点关注的一个方面,它要求测试用例能够覆盖到程序中的各种异常情况和错误处理逻辑。

通过对异常处理进行全面的测试,可以确保程序在面对异常情况时能够正确地处理并避免程序崩溃或数据丢失。

在实际的软件测试过程中,以上六种方法常常结合使用,以提高测试的全面性和效率。

通过合理设计测试用例、覆盖不同的测试场景,可以有效地发现并解决软件中的问题,确保软件质量和稳定性。

以上就是关于白盒测试的六种方法的介绍,希望能对大家的软件测试工作有所帮助!。

白盒测试的六种方法关系

白盒测试的六种方法关系

白盒测试的六种方法关系白盒测试是一种软件测试方法,旨在检测和验证软件系统内部的工作逻辑、代码结构和程序路径。

它与黑盒测试相对应,后者主要关注系统的功能和用户界面。

白盒测试可以通过直接访问代码、测试逻辑路径和数据流来检查软件的内部工作机制。

以下是白盒测试的六种方法及它们之间的关系。

1. 语句覆盖(Statement Coverage):语句覆盖是白盒测试中最基本的方法之一,它要求测试用例能够覆盖软件代码中的每一条语句。

通过执行每个语句,开发人员可以确保代码的每个部分都被正确执行。

2. 判定覆盖(Decision Coverage):判定覆盖是一种更严格的覆盖方法,要求测试用例覆盖软件代码中每个判定语句的两个可能结果,即真和假。

通过测试每个判定语句的所有可能结果,可以发现潜在的错误和边界情况。

3. 条件覆盖(Condition Coverage):条件覆盖要求测试用例能够覆盖软件代码中每个条件语句的两个可能结果。

与判定覆盖不同,条件覆盖关注的是每个条件语句的每个部分是否都被正确执行。

4. 路径覆盖(Path Coverage):路径覆盖是一种更为复杂的覆盖方法,要求测试用例能够覆盖软件代码中的每个可能路径。

它可以通过构建控制流图来识别和测试所有可能的路径。

路径覆盖可以发现隐藏在代码中的逻辑错误和冗余代码。

5. 条件/判定覆盖(Condition/decision coverage):条件/判定覆盖是判定覆盖和条件覆盖的结合,要求测试用例能够覆盖软件代码中的每个条件语句,并包括每个条件语句的每个判定结果。

这种方法可以更全面地检查代码中的条件逻辑。

6. 多重判定覆盖(Multiple condition coverage):多重判定覆盖是一种更高级的覆盖方法,要求测试用例能够覆盖软件代码中每个判定语句的所有可能组合。

它关注的是多个条件同时满足或不满足的情况,以找出可能被忽视的错误。

这六种方法之间存在一定的关系。

白盒测试 覆盖的方法

白盒测试  覆盖的方法

白盒测试覆盖的方法白盒测试是一种软件测试方法,它通过检查和评估被测软件的内部结构和代码来验证其功能和性能。

在白盒测试中,测试人员需要理解被测软件的内部逻辑,以便能够设计和执行测试用例,以测试软件的不同部分。

在进行白盒测试时,一个重要的概念是覆盖率。

覆盖率指的是测试用例执行期间对被测软件的代码和功能的覆盖程度。

覆盖率是一个重要的指标,用来评估测试的完整性和质量。

下面将介绍几种常见的白盒测试覆盖方法。

1. 语句覆盖(Statement Coverage):语句覆盖是最基本的覆盖方法之一,它要求测试用例能够执行被测软件中的每一条语句至少一次。

这种覆盖方法能够确保大部分的基本功能得到测试,但无法保证所有的边界条件和异常情况都得到覆盖。

2. 判定覆盖(Decision Coverage):判定覆盖要求测试用例能够执行被测软件中的每一个判定语句,且判定语句的结果为真和假都至少执行一次。

判定覆盖能够检测到代码中的决策错误和逻辑错误。

3. 条件覆盖(Condition Coverage):条件覆盖是在判定覆盖的基础上进一步要求每个判定语句中的每个条件(包括循环条件和逻辑条件)都能够执行一次。

条件覆盖能够检测到条件语句中的错误和逻辑错误。

4. 路径覆盖(Path Coverage):路径覆盖要求测试用例能够执行被测软件中的每一条可能的路径。

路径覆盖是一种较为全面的覆盖方法,它能够覆盖到所有的条件、判定和循环等可能的组合情况,从而更全面地检测软件中的错误。

5. 边界值覆盖(Boundary Value Coverage):边界值覆盖是一种针对输入参数的覆盖方法,它要求测试用例能够覆盖到每个输入参数的边界情况。

边界值覆盖能够检测到由于输入参数边界情况引起的错误。

为了提高覆盖率,测试人员可以通过以下几种方法:1. 设计充分的测试用例:测试人员应该根据被测软件的特点和需求,设计充分的测试用例,确保每个条件、判定和路径都能够得到覆盖。

白盒测试中的六种覆盖方法

白盒测试中的六种覆盖方法

白盒测试中的六种覆盖方法摘要:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。

白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。

因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。

本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

白盒测试的概述由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。

由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

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

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

白盒的测试用例需要做到:·保证一个模块中的所有独立路径至少被使用一次·对所有逻辑值均需测试 true 和 false·在上下边界及可操作范围内运行所有循环·检查内部数据结构以确保其有效性白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

白盒测试的实施步骤:1.测试计划阶段:根据需求说明书,制定测试进度。

2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

3.测试执行阶段:输入测试用例,得到测试结果。

4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试的方法:总体上分为静态方法和动态方法两大类。

白盒测试总结

白盒测试总结

白盒测试1、逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例,它属于白盒测试。

包括有:语句覆盖、判定覆盖、条件覆盖、判定----条件覆盖、条件组合覆盖、路径覆盖(1)、语句覆盖:就是设计若干个测试用例,运行被测的程序,使得每一个可执行语句至少执行一次。

(2)、判定覆盖:就是设计若干个测试用例,运行被测的程序,使得程序中每个判断的取真分支和取假分支至少执行一次。

(3)、条件覆盖:就是设计若干个测试用例,运行被测的程序,使得程序中每个判断的每个条件的可能取值至少执行一次。

(4)、判定----条件覆盖:就是设计若干个测试用例,运行被测的程序,使得程序中的所有可能取值至少执行一次,每个判断中每条件取值至少执行一次。

(5)、条件组合覆盖:就是设计若干测试用例,运行被测的程序,使得每个判断的所有可能的条件取值至少执行一次。

(6)、路径测试: 就是设计若干个测试用例,运行被测的程序,覆盖程序中所有可能的路径。

2、条件测试路径选择:当程序中判定多于一个时,形成分支结构可以分为两个类:嵌套型分支和连锁分支①、嵌套型分支:若有几个判定语句需要n+1个测试用例。

②、连锁分支:若有几个判定语句需要有2n个测试用例覆盖它的2n条路径,当n较大时,无法测试2、循环测试路径简单(从循环入口到出口)、嵌套、连锁、非结构循环。

3、基本路径(1)、基本路径测试是把覆盖的路径压缩一定限度内,程序中的循环体最多只执行一次。

(2)、它是在程序控制流程图基础上分析控制构造出来的。

就可以导出基本路径的集合。

(3)、程序的控制流图:①、符号为控制流图的结点。

表示一个或多个无分支的语句。

箭头为边,表示控制流的方向。

②、在选择多分支结构中,分支的汇聚处应有一个汇聚结点。

③、边和结点圈的区域叫区域,当对区域计数时,图形外的区域也应记为一个区域。

④、如果判断中的条件表达式是由一个或多个逻辑运算符组成(or、and 、nand、nor)时则需要改为一系列只有单个条件的嵌套的判断.程序控制流图:顺序结构if 结构Case 结构while 结构until 结构。

白盒测试的主要方法

白盒测试的主要方法

二、 基本路径测试
基本路径测试就是在程序控制图的基础 上,通过分析控制构造的环行复杂性,导 出基本可执行路径集合,从而设计测试用 例的方法。设计出的测试用例要保证在测 试中程序的每一个可执行语句至少执行一 次。
基本路径测试-----步骤
1. 导出程序的控制流图
2. 计算程序环路复杂度:确定程序中每个可执
白盒测试的主要方法
语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖 基路径测试 循环测试
逻辑覆盖
路径测试
数据流测试 其他白盒测试方法
一、 逻辑覆盖
• 1、语句覆盖:语句覆盖就是设计若干个测试用 例,运行被测试程序,使得每一条可执行语句 至少执行一次 • 2、判定覆盖(也称为分支覆盖):设计若干个 测试用例,运行所测程序,使程序中每个判断 的取真分支和取假分支至少执行一次;
条件组合覆盖
• 它的含义是:设计足够的例子,使得每个
判定中条件的各种可能组合都至少出现一 次。显然,满足“条件组合覆盖”的测试 用例是一定满足“判定覆盖”、“条件覆 盖”和“判定/条件覆盖”的。
例题1
编号 1 2 3
4 5 6 7 8
具体条件取值 a>1,b=0 a>1,b<>0 a<=1,b=0
① A=3,B=0,X=1 (沿路径acd执行); ② A=2,B=1,X=3(沿路径abe执行)
判定覆盖
A=3,B=0,X=1 (沿路径acd 执行) A=2,B=1,X=3 (沿路径abe 执行)
例题2
判定覆盖
往往大部分的判定语句是由多个逻辑条
件组合而成,若仅仅判断其整个最终结果, 而忽略每个条件的取值情况,必然会遗漏 部分测试路径 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。

白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。

因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。

本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

白盒测试的概述
由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。

由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。

由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。

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

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

白盒的测试用例需要做到:
·保证一个模块中的所有独立路径至少被使用一次
·对所有逻辑值均需测试true 和false
·在上下边界及可操作范围内运行所有循环
·检查内部数据结构以确保其有效性
白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。

白盒测试的实施步骤:
1.测试计划阶段:根据需求说明书,制定测试进度。

2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。

3.测试执行阶段:输入测试用例,得到测试结果。

4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

白盒测试的方法:总体上分为静态方法和动态方法两大类。

静态分析是一种不通过执行程序而进行测试的技术。

静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后, 对软件系统行为的分析。

动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。

它显示了一个系统在检查状态下是正确还是不正确。

在动态分析技术中,最重要的技术是路径和分支测试。

下面要介绍的六种覆盖测试方法属于动态分析方法。

白盒测试的优缺点
1. 优点
·迫使测试人员去仔细思考软件的实现
·可以检测代码中的每条分支和路径
·揭示隐藏在代码中的错误
·对代码的测试比较彻底
·最优化
2. 缺点
·昂贵
·无法检测代码中遗漏的路径和数据敏感性错误
·不验证规格的正确性
六种覆盖方法
首先为了下文的举例描述方便,这里先给出一张程序流程图。

(本文以1995年软件设计师考试的一道考试题目为例,图中红色字母代表程序执行路径)。

1、语句覆盖
1)主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。

2)用例设计:(如果此时将A路径上的语句1—〉T去掉,那么用例如下)
X Y 路径
1 50 50 OBDE
2 90 70 OBCE
3)优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。

4)缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。

在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。

在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。

但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。

再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。

那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

2、判定覆盖
1)主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。

每个判断的取真、取假至少执行一次。

2)用例设计:
X Y 路径
1 90 90 OAE
2 50 50 OBDE
3 90 70 OBCE
3)优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。

同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

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

3、条件覆盖
1)主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。

2)用例设计:
X Y 路径
1 90 70 OBC
2 40 OBD
3)优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。

4)缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。

条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。

4、判定/条件覆盖
1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。

2)用例设计:
X Y 路径
1 90 90 OAE
2 50 50 OBDE
3 90 70 OBCE
4 70 90 OBCE
3)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。

4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。

5、组合覆盖
1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。

2)用例设计:
X Y 路径
1 90 90 OAE
2 90 70 OBCE
3 90 30 OBDE
4 70 90 OBCE
5 30 90 OBDE
6 70 70 OBDE
7 50 50 OBDE
3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。

更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。

并且每个条件都显示能单独影响判定结果。

4)缺点:线性地增加了测试用例的数量。

6、路径覆盖
1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。

2)用例设计:
X Y 路径
1 90 90 OAE
2 50 50 OBDE
3 90 70 OBCE
4 70 90 OBCE
3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。

4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。

而在有些情况下,一些执行路径是不可能被执行的,如:
If (!A)B++;
If (!A)D--;
这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。

这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。

总结
白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。

只有对程序内部十分了解才能进行适度有效的白盒测试。

但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。

因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。

那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。

任何一个高效的测试用例,都是针对具体测试场景的。

逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。

相关文档
最新文档