第14章白盒测试技术

第14章白盒测试技术
第14章白盒测试技术

以下不属于软件编码规范评测内容的是()。

A. 源程序文档化

B.数据说明方法

C. 语句结构

D. 算法逻辑

一个程序的控制流图中有 5 个节点、 9 条边,在测试用例数最少的情况下,确保程序中每个可执行语句至少执行一次所需测试用例数的上限是()。

A. 2

B. 4

C.6

D.8

对于逻辑表达式(((a>0)&&(b>0))||c<5),需要()个测试用例才能完成条件组合覆盖。

A. 2

B. 4

C.8

D.16

对于逻辑表达式(((a>0)&&(b>0))||c<5),需要()个测试用例才能完成条件组合覆盖。

A. 2

B. 4

C.8

D.16

对于逻辑表达式( (b1&b2)||in),需要()个测试用例才能完成条件组合覆盖。

A.2

B.4

C.8

D.16

以下关于白盒测试的叙述中,不正确的是()。

A.满足判定覆盖一定满足语句覆盖

B.满足条件覆盖一定满足判定覆盖

C.满足判定条件覆盖一定满足条件覆盖

D.满足条件组合覆盖一定满足判定条件覆盖

对于逻辑表达式((a||(b&c))||(c&&d)),需要()个测试用例才能完成条件组合覆盖。

A.4

B.8

C.16

D.32

以下属于静态测试方法的是()。

A.代码审查

B.判定覆盖

C.路径覆盖

D.语句覆盖

以下几种白盒覆盖测试中,覆盖准则最强的是( ) 。

A.语句覆盖

B.判定覆盖

C.条件覆盖

D.条件组合覆盖

对于逻辑表达式((a||b)||(c&&d)),需要( ) 个测试用例才能完成条件组合覆盖。

A.2

B.4

C.8

D.16

以下属于动态测试方法的是 ( ) 。

A.代码审查

B.静态结构测试

C.路径覆盖

D.技术评审

白盒测试不能发现()。

A.代码路径中的错误

B.死循环

C.逻辑错误

D.功能错误

对于逻辑表达式((a&&b)||c),需要()个测试用例才能完成条件组合覆盖。

A.2

B.4

C.8

D.16

以下属于静态测试方法的是()。

A.分支覆盖率分析

B.复杂度分析

C.系统压力测试

D.路径覆盖分析

对于逻辑表达式(a&&(b|c)),需要()个测试用例才能完成条件组合覆盖

A.2

B.4

C.6

D.8

逻辑覆盖标准包括()。

①判定覆盖②语句覆盖③条件判定覆盖④修正条件判定覆盖

A.①③

B.①②③

C.①②④

D.①②③④

以下关于白盒测试的叙述中,不正确的是()。

A.白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求

B.逻辑覆盖法是一种常用的白盒测试方法

C.程序中存在很多判定和条件,不可能实现100%的条件覆盖

D.测试基于代码,无法确定设计正确与否

对于逻辑表达式((a&b)||c),需要()个测试用例才能完成条件组合覆盖。

A.2

B.3

C.4

D.5

逻辑覆盖法不包括()。

A.分支覆盖

B.语句覆盖

C.需求覆盖

D.修正条件判定覆盖

白盒测试也称结构测试或逻辑驱动测试,典型的白盒测试方法包括静态测试和动态测试。其中,静态测试除了静态结构分析法、静态质量度量法外,还有()。

A.代码检查法

B.逻辑覆盖法

C.基本路径测试法

D.结构覆盖法

计算以下控制流程图的环路复杂性V(G),正确答案是()。

A.V(G)=2

B.V(G)=4

C.V(G)=9

D.V(G)=11

假设A、B为布尔变量,对于逻辑表达式( A && B || C ),需要()个测试用例才能完成判定覆盖(DC)。

A.2

B.3

C.4

D.5

假设在程序控制流图中,有14条边,10个节点,则控制流程图的环路复杂性V(G)等于是()。

A.12

B.8

C.6

D.4

针对以下C语言程序段,假设sta[10]= -1,对于x的取值,需要()个测试用例能够满足分支覆盖的要求。

int MathMine( int x )

{

int m = 0;

int i;

for( i = x-1; i <= x + 1; i++ )

{

if ( i < 0 ) continue;

if ( i >31 ) break;

if ( sta[i] == -1 ) m++;

}

return m;

}

A.3

B.4

C.5

D.6

软件测试技术复习题(含答案)

注释:黄色表示重复或相似 一、选择题 1.软件测试的目的是(B ) A.避免软件开发中出现的错误 B.发现软件中出现的错误 C.容忍软件中出现的错误 D.修改软件中出现的错误 2.对于逻辑表达式((a&b)| |c),需要(C )个测试用例才能完成条件组 合覆盖。 A.2 B.3 C.4 D.5 3.逻辑覆盖法不包括(C )。 A.分支覆盖 B.语句覆盖 C.需求覆盖 D.修正条件判定覆盖 4.如果某测试用例集实现了某软件的路径覆盖,那么它一定同事实现了 该软件的(A )。 A.判定覆盖 B.条件覆盖 C.判定/条件覆盖 D.组合覆盖 5.使用白盒测试方法时,确定测试数据的依据是指定覆盖标准和(B )。

A.程序的注释 B.程序的内部逻辑 C.用户使用说明书 D.程序的需求说明 6.划分软件测试属于白盒测试还是黑盒测试的依据是(C )。 A.是否执行程序代码 B.是否能看到软件设计文档 C.是否能看到被测源程序 D.运行结果是否确定 7.单元测试中用来模拟被测模块调用者的模块是(C ) A.父模块 B.子模块 C.驱动模块 D.桩模块 8.不属于单元测试内容的是(A ) A.模块接口测试 B.局部数据结构测试 C.路经测试 D.用户界面测试 9.客户端交易处理性能指标是一类重要的负载压力测试指标,以下不属 于客户端交易处理性能指标的是(C ) A.负载测试 B.压力测试 C.疲劳强度测试 D.大数据量测试

10.以下不属于易用性而的是(D ) A.功能易用性测试 B.用户界面测试 C.辅助功能测试 D.可靠性测试 11.软件测试的目的是(F ) E.避免软件开发中出现的错误 F.发现软件中出现的错误 G.容忍软件中出现的错误 H.修改软件中出现的错误 12.软件的测试对象包括(D )。 A.软件代码 B.文档

第14章白盒测试技术

以下不属于软件编码规范评测内容的是()。 A. 源程序文档化 B.数据说明方法 C. 语句结构 D. 算法逻辑 一个程序的控制流图中有 5 个节点、 9 条边,在测试用例数最少的情况下,确保程序中每个可执行语句至少执行一次所需测试用例数的上限是()。 A. 2 B. 4 C.6 D.8 对于逻辑表达式(((a>0)&&(b>0))||c<5),需要()个测试用例才能完成条件组合覆盖。 A. 2 B. 4 C.8 D.16 对于逻辑表达式(((a>0)&&(b>0))||c<5),需要()个测试用例才能完成条件组合覆盖。 A. 2 B. 4 C.8 D.16 对于逻辑表达式( (b1&b2)||in),需要()个测试用例才能完成条件组合覆盖。 A.2 B.4 C.8 D.16 以下关于白盒测试的叙述中,不正确的是()。 A.满足判定覆盖一定满足语句覆盖 B.满足条件覆盖一定满足判定覆盖 C.满足判定条件覆盖一定满足条件覆盖 D.满足条件组合覆盖一定满足判定条件覆盖 对于逻辑表达式((a||(b&c))||(c&&d)),需要()个测试用例才能完成条件组合覆盖。 A.4 B.8 C.16 D.32 以下属于静态测试方法的是()。 A.代码审查 B.判定覆盖 C.路径覆盖 D.语句覆盖 以下几种白盒覆盖测试中,覆盖准则最强的是( ) 。 A.语句覆盖 B.判定覆盖

C.条件覆盖 D.条件组合覆盖 对于逻辑表达式((a||b)||(c&&d)),需要( ) 个测试用例才能完成条件组合覆盖。 A.2 B.4 C.8 D.16 以下属于动态测试方法的是 ( ) 。 A.代码审查 B.静态结构测试 C.路径覆盖 D.技术评审 白盒测试不能发现()。 A.代码路径中的错误 B.死循环 C.逻辑错误 D.功能错误 对于逻辑表达式((a&&b)||c),需要()个测试用例才能完成条件组合覆盖。 A.2 B.4 C.8 D.16 以下属于静态测试方法的是()。 A.分支覆盖率分析 B.复杂度分析 C.系统压力测试 D.路径覆盖分析 对于逻辑表达式(a&&(b|c)),需要()个测试用例才能完成条件组合覆盖 A.2 B.4 C.6 D.8 逻辑覆盖标准包括()。 ①判定覆盖②语句覆盖③条件判定覆盖④修正条件判定覆盖 A.①③ B.①②③ C.①②④ D.①②③④ 以下关于白盒测试的叙述中,不正确的是()。 A.白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求 B.逻辑覆盖法是一种常用的白盒测试方法 C.程序中存在很多判定和条件,不可能实现100%的条件覆盖 D.测试基于代码,无法确定设计正确与否

实验四、白盒测试技术(二)

实验四、白盒测试技术(二) 一、实验类型 实验类型为验证型,2个学时。 二、实验目的 (1)通过简单程序白盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯; (2)熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析; 三、背景知识 基本路径测试 如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。 ① 程序的控制流图 控制流图是描述程序控制流的一种图示方法。基本控制构造的图形符号如图所示。符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。 图1 控制流图的各种图形符号 如果判定中的条件表达式是复合条件时,即条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的逻辑表达式,则需要改复合条件的判定为一系列只有单个条件的嵌套的判定。例如对应图3-2. (a) 的复合条件的判定,应该画成如图3-2. (b) 所示的控制流图。条件语句if a OR b 中条件a和条件b各有一个只有单个条件的判定结点。

图2 复合逻辑下的控制流图 ② 计算程序环路复杂性 进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。 所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。如在图3-3(b)所示的控制流图中,一组独立的路径是: path1:1 - 11 path2:1 - 2 - 3 - 4 - 5 - 10 - 1 - 11 path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 - 11 path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11 路径path1,path2,path3,path4组成了图3-3 (b) 所示控制流图的一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个条件的取真分支和取假分支也能得到测试。基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。 (a) 程序流程图(b) 控制流图 图3 程序流程图与对应的控制流图 通常环路复杂性可用以下三种方法求得。 ?将环路复杂性定义为控制流图中的区域数。 ?设E为控制流图的边数,N为图的结点数,则定义环路复杂性为V(G)=E-N+2。 ?若设P为控制流图中的判定结点数,则有V(G)=P+1。 因为图5.14(b)所示控制流图有4个区域。其环路复杂性为4。它是构成基本路径集的

白盒测试方法习题及答案

[试题分类]:[04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A. 模块中所有独立途径至少测试一次 B. 测试所以逻辑决策真和假两个方面 C. 在所有循环的边界内部和边界上执行循环体 D. 不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2. 因果图方法是根据()之间的因果关系来设计测试用例的。 A. 输入与输岀 B. 设计与实现 C. 条件与结果 D. 主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3. 使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准 A. 程序的内部逻辑 B. 程序的复杂程度 C. 使用说明书 D. 程序的功能 答案:A 分数:1 题型:单选题 难度:1 4. 软件测试中常用的静态分析方法是()和接口分析。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 效率分析 答案:A 分数:1 题型:单选题 难度:1 5. 软件测试中常用的静态分析方法是引用分析和()。 A. 引用分析 B. 算法分析 C. 可靠性分析 D. 接口分析 答案:D 分数:1 题型:单选题 难度:1 6. 白盒方法中常用的方法是()方法。 A. 路径测试 B. 等价类 C. 因果图 D. 归纳测试

答案:A 分数:1 题型:单选题 难度:1 7. 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A. 路径的集合 B. 循环的集合 C. 目标的集合 D. 地址的集合 答案:A 分数:1 题型:单选题 难度:1 8. 软件测试白箱测试是对软件的结构进行测试,下述: I.边缘值分析n.语句测试 皿.分值测试IV .路经测试 )是其应包括的内容。 A. I B. n和皿 C.皿和V D. n .皿和V 答案:D 分数:1 题型:单选题 难度:1 9. 在进行单元测试时,常用的方法是()。 A. 采用白盒测试,辅之以黑盒测试 B. 采用黑盒测试,辅之以白盒测试 C. 只适用白盒测试 D. 只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10. 白盒测试法一般使用于()测试。 A. 单元 B. 系统 C. 集成 D. 确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]:[04] 白盒测试方法/[0401]逻辑覆盖法 11. 关于条件测试错误的是() A. 可以检查程序中所包含的逻辑条件 B. 条件中包含的错误有布尔算子错误 C. 条件中包含的错误有布尔变量错误 D. 条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1

白盒测试方法习题测验及答案

[试题分类]: [04]白盒测试方法/[0400][综合]白盒测试方法 1. 下面不属于白盒测试能保证的是。 A.模块中所有独立途径至少测试一次 B.测试所以逻辑决策真和假两个方面 C.在所有循环的边界内部和边界上执行循环体 D.不正确或漏掉的功能 答案:D 分数:1 题型:单选题 难度:1 2.因果图方法是根据()之间的因果关系来设计测试用例的。 A.输入与输出 B.设计与实现 C.条件与结果 D.主程序与子程序 答案:A 分数:1 题型:单选题 难度:1 3.使用白盒测试方法时,确定测试数据应根据()和指定的覆盖标准。 A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 答案:A 分数:1 题型:单选题 难度:1 4.软件测试中常用的静态分析方法是()和接口分析。 A.引用分析 B.算法分析 C.可靠性分析 D.效率分析 答案:A 分数:1 题型:单选题 难度:1 5.软件测试中常用的静态分析方法是引用分析和()。 A.引用分析 B.算法分析 C.可靠性分析 D.接口分析 答案:D 分数:1 题型:单选题 难度:1 6.白盒方法中常用的方法是()方法。 A.路径测试 B.等价类 C.因果图 D.归纳测试 答案:A 分数:1 题型:单选题

7.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作是() A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合 答案:A 分数:1 题型:单选题 难度:1 8.软件测试白箱测试是对软件的结构进行测试,下述: Ⅰ.边缘值分析Ⅱ.语句测试 Ⅲ.分值测试Ⅳ.路经测试 ()是其应包括的内容。 A.Ⅰ B.Ⅱ和Ⅲ C.Ⅲ和Ⅳ D.Ⅱ.Ⅲ和Ⅳ 答案:D 分数:1 题型:单选题 难度:1 9.在进行单元测试时,常用的方法是()。 A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试 C.只适用白盒测试 D.只适用黑盒测试 答案:A 分数:1 题型:单选题 难度:1 10.白盒测试法一般使用于()测试。 A.单元 B.系统 C.集成 D.确认 答案:A 分数:1 题型:单选题 难度:1 [试题分类]: [04]白盒测试方法/[0401]逻辑覆盖法 11.关于条件测试错误的是() A.可以检查程序中所包含的逻辑条件 B.条件中包含的错误有布尔算子错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误 答案:D 分数:1 题型:单选题 难度:1 12.关于条件中包含的错误类型说法错误的是() A.关系算子错误 B.算术表达式错误 C.条件中包含的错误有布尔变量错误 D.条件中包含的错误有接口错误

白盒测试方法

一、白盒测试概念 1、定义 白盒测试又称结构测试、透明盒测试、逻辑驱动测试、基于代码的测试。盒子指被测试的软件,白盒指盒子是可视的。白盒测试是一种测试用例设计方法,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例。白盒测试主要针对被测程序的源代码,主要用于软件验证,不考虑软件的功能实现,只验证内部动作是否按照设计说明书的规定进行。 2、目的 我们一方面注重软件功能需求的实现,另一方面还要注重程序逻辑细节,主要是因为软件自身的缺陷,具体如下: 1)逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。日常处理往往被很好地了解,而“特殊情况”的处理则难于发现。 2)我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,只有路径测试才能发现这些错误。 3)代码中的笔误是随机且无法杜绝的。笔误出现在主流上和不明显的逻辑路径上的机率是一样的。很多被语法检查机制发现,但是其他的会在测试开始时才会被发现。 4)功能测试本身的局限性。如果程序实现了没有被描述的行为,功能测试是无法发现的,例如病毒,而白盒测试很容易发现它。 3、目标 采用白盒测试必须遵循以下几条原则,才能达到测试的目标: 1)保证一个模块中的所有独立路径至少被测试一次。 2)所有逻辑值均需测试真(true) 和假(false)两种情况。 3)检查程序的内部数据结构,保证其结构的有效性。 4)在上下边界及可操作范围内运行所有循环。 4、黑白灰区别 黑盒测试技术:也称功能测试或数据驱动测试,只关注规格说明中的功能,测试者在程序接口对软件界面和软件功能进行测试,它只检查实现了的功能是否按照“用户需求说明书”的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。主要用于软件确认测试,结合兼容、性能测试等方面,但黑盒测试不能保证已经实现的各个部分都被测试到。黑盒测试适用于各阶段测试。 白盒测试技术:只关注软件产品的测试,深入到代码一级的测试,它是知道产品内部结构,通过测试来检测产品内部动作是否按照“设计规格说明书”的规定正常进行,按照程

白盒测试实验报告-范例

实验报告书 实验一白盒测试 学生姓名:李庆忠 专业:计算机科学与技术学号:1341901317

白盒测试实验报告 一实验内容 1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法; 2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合 覆盖、路径覆盖进行测试。 3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力; 4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例, 测试报告等) 二实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。 流程图如下图所示 实验代码 #include"stdio.h"

int main() { int x,y,z; scanf("%d%d",&x,&y); if((x>0)&&(y>0)) { z=x+y+10; } else { z=x+y-10; } if(z<0) { z=0; printf("%d\n",z); } else { printf("%d\n",z); } return 0; } 语句覆盖是指选择足够的测试,使得程序中每个语句至少执行一次。如选择测试x=1,y=1和x=1,y=-1可覆盖所有语句。 判定覆盖是指选择足够的测试,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试x=1,y=1和x=1,y=-1可覆盖所有判定。 条件覆盖是指选择语句多数的测试,使得程序判定中的每个条件能获得各种不同的结果。选择测试x=1,y=1和x=-1,y=-1可覆盖所有条件。 判定/条件覆盖是指选择足够多的测试,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。即满足条件覆盖,又满足判定覆盖。选择测试x=1,y=1和x=-1,y=-1可覆盖所有判定/条件。 条件组合覆盖是指选择足够的测试,使得每个判定中的条件的各种可能组合都至少出现一次(以判定为单位找条件组合)。 注:a,条件组合只针对同一个判断语句存在多个条件的情况,让这些条件的取值进行笛卡尔乘积组合。 b,不同的判断语句内的条件取值之间无需组合。 c,对于但条件的判断语句,只需要满足自己的所有取值即可。 选择测试用例x=1,y=1;x=1,y=-1,x=-1,y=1和x=-1,y=-1可覆盖所有条件组合。 路径覆盖是分析软件过程流的通用工具,有助分离逻辑路径,进行逻辑覆盖的测试,所用的流程图就是讨论软件结构复杂度时所用的流程图。

白盒测试的六种覆盖准则

白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。 白盒测试的概述 由于逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。由于我们经常相信某逻辑路径不可能被执行, 而事实上,它可能在正常的情况下被执行。由于代码中的笔误是随机且无法杜绝的,因此我们要进行白盒测试。 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 白盒的测试用例需要做到: ·保证一个模块中的所有独立路径至少被使用一次 ·对所有逻辑值均需测试true 和false ·在上下边界及可操作范围内运行所有循环 ·检查内部数据结构以确保其有效性 白盒测试的目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。 白盒测试的特点:依据软件设计说明书进行测试、对程序内部细节的严密检验、针对特定条件设计测试用例、对软件的逻辑路径进行覆盖测试。 白盒测试的实施步骤: 1.测试计划阶段:根据需求说明书,制定测试进度。 2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。 3.测试执行阶段:输入测试用例,得到测试结果。 4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。 白盒测试的方法:总体上分为静态方法和动态方法两大类。

KC06110000002_习题试题库_单元2 白盒测试

一、选择题 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度中知识点关联白盒测试 题目内容()是设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。 A.判定-条件覆盖B.组合覆盖 C.判定覆盖D.条件覆盖 标准答案A 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度难知识点关联逻辑覆盖 题目内容 如下图所示的N-S图,至少需要()个测试用例完成逻辑覆盖。 A.12 B.48 C.27 D.18 标准答案B 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度易知识点关联白盒测试 题目内容不属于逻辑覆盖方法的是()。 A.组合覆盖B.判定覆盖

C.条件覆盖D.接口覆盖 标准答案D 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度中知识点关联白盒测试 题目内容某次程序调试没有出现预计的结果,下列()不可能是导致出错的原因。A.变量没有初始化 B.编写的语句书写格式不规范 C.循环控制出错 D.代码输入有误 标准答案B 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度难知识点关联循环测试 题目内容下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } 请问该程序段的McCabe环路复杂性为多少?() A. 2 B. 3 C. 4 D. 5 标准答案A 所属项目项目二题型单选题出题人 题目编号分值 2 难易程度中知识点关联语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、路径覆盖 题目内容在用白盒测试中的逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等,在下列覆盖中,()是最强的覆盖准则。 A. 语句覆盖 B. 条件覆盖 C. 判定-条件覆盖 D. 路径覆盖

白盒测试和黑盒测试

白盒测试 白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子部的东西以及里面是如何运作的。"白盒"法全面了解程序部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。 采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。 中文名:白盒测试 外文名:white-box testing 别称:结构测试、透明盒测试 白盒测试测试方法 白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化: 1.语句覆盖每条语句至少执行一次。 2.判定覆盖每个判定的每个分支至少执行一次。 3.条件覆盖每个判定的每个条件应取到各种可能的值。 4.判定/条件覆盖同时满足判定覆盖条件覆盖。 5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。 6.路径覆盖使程序中每一条可能的路径至少执行一次。 白盒测试要求

白盒测试方法详细说明

白盒测试方法 一、静态结构分析法 程序的结构形式是白盒测试的主要依据。研究表明程序员38%的时间花费在理解软件系统上,因为代码以文本格式被写入多重文件中,这是很难阅读理解的,需要其它一些东西来帮助人们阅读理解,如各种图表等,而静态结构分析满足了这样的需求。 在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据结构、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图标,可以清晰地标识整个软件系统的组成结构,使其便于阅读和理解,然后可以通过分析这些图标,检查软件有没有存在缺陷或错误。 其中函数调用关系图通过应用程序中各函数之间的调用关系展示了系统的结构。通过查看函数调用关系图,可以检查函数之间的调用关系是否符合要求,是否存在递归调用,函数的调用曾是是否过深,有没有存在独立的没有被调用的函数。从而可以发现系统是否存在结构缺陷,发现哪些函数是重要的,哪些是次要的,需要使用什么级别的覆盖要求...... 模块控制流图是与程序流程图相类似的由许多节点和连接节点的边组成的一种图形,其中一个节点代表一条语句或数条语句,边代表节点间控制流向,它显示了一个函数的内部逻辑结构。模块控制流图可以直观地反映出一个函数的内部逻辑结构,通过检查这些模块控制流图,能够很快发现软件的错误与缺陷 二、代码检查 代码检查包括桌面检查、代码审查和走查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码逻辑表达的正确性,代码结构的合理性等方面;发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的内容,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。 代码检查方法 1、代码检查法 (1)桌面检查:这是一种传统的检查方法,由程序员检查自己编写的程序。程序员在程序通过编译之后,对源程序代码进行分析、检验,并补充相关文档,目的是发现程序中的错误。由于程序员熟悉自己的程序及其程序设计风格,桌面检查由程序员自己进行可以节省很多的检查时间,但应避免主观片面性 (2)代码审查 由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分两步:第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为审查的依据。小组成员在充分阅读这些材料后,进入审查的第二步,召开程序审查会。在会上,首先由程序员逐句简介程序的逻辑。

软件测试技术复习题

注释:黄色表示重复或相似一、选择题 1.软件测试的目的是( B ) A.避免软件开发中出现的错误 B.发现软件中出现的错误 C.容忍软件中出现的错误 D.修改软件中出现的错误 2.对于逻辑表达式((a&b)| |c),需要( C )个测试用例才能完成条件 组合覆盖。 A.2 B.3 C.4 D.5 3.逻辑覆盖法不包括( C )。 A.分支覆盖 B.语句覆盖 C.需求覆盖 D.修正条件判定覆盖 4.如果某测试用例集实现了某软件的路径覆盖,那么它一定同事实现了 该软件的( A )。 A.判定覆盖 B.条件覆盖 C.判定/条件覆盖 D.组合覆盖 5.使用白盒测试方法时,确定测试数据的依据是指定覆盖标准和( B )。

A.程序的注释 B.程序的内部逻辑 C.用户使用说明书 D.程序的需求说明 6.划分软件测试属于白盒测试还是黑盒测试的依据是( C )。 A.是否执行程序代码 B.是否能看到软件设计文档 C.是否能看到被测源程序 D.运行结果是否确定 7.单元测试中用来模拟被测模块调用者的模块是( C ) A.父模块 B.子模块 C.驱动模块 D.桩模块 8.不属于单元测试内容的是( A ) A.模块接口测试 B.局部数据结构测试 C.路经测试 D.用户界面测试 9.客户端交易处理性能指标是一类重要的负载压力测试指标,以下不属 于客户端交易处理性能指标的是( C ) A.负载测试 B.压力测试 C.疲劳强度测试 D.大数据量测试

10.以下不属于易用性而的是( D ) A.功能易用性测试 B.用户界面测试 C.辅助功能测试 D.可靠性测试 11.软件测试的目的是( F ) E.避免软件开发中出现的错误 F.发现软件中出现的错误 G.容忍软件中出现的错误 H.修改软件中出现的错误 12.软件的测试对象包括( D )。 A.软件代码 B.文档

软件测试案例三角形白盒测试

一、核心程序代码 /** 判断三角形的类*/ public class TriangleTestMethod { /** 判断三角形的种类。参数a, b, c 分别为三角形的三边, * 返回的参数值为0 ,表示非三角形; * 为 1 ,表示普通三角形; * 为 2 ,表示等腰三角形; * 为 3 ,表示等边三角形。 */ public static int comfirm( int a, int b, int c) { if ((a + b > c) && (b + c > a) && (a + c > b)) { if ((a == b) && (b ==c)) // 判断为等边三角形 return 3; if ((a == b) || (b == c) || (a == c)) // return 2; else // 判断为普通三角形return 1; } else { // 为非三角形 return 0; } } } // 判断为三角形判断为等腰三角形

、程序流程图 三、测试用例

F6, F7, T8 Case28 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case29 a=3, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 备注 其他条件组合,无法到达结束 四、程序控制流图 -> a B a == b E F b == c Return 3 Ffet urn 2 Ret ur n 1 K 输入 期望输出 覆盖对象 测试结果 Case31 a=1,b=6,c=7 0 A->D 0 Case32 a=7, b=6, c=1 0 A->B->D 0 Case33 a=1,b=7,c=6 0 A->B->C->D D Return 0 G b == c Ret ur n 2 H 斗 J a == C

白盒测试技术中的几种逻辑覆盖

白盒测试技术中的几种逻辑覆盖 白盒测试技术中的逻辑覆盖 一个或者多个条件组成一个判定,一个程序中可以有多个判定。 首要的是建立一个二维的真值表,各列为判定和条件,各行为每组值的T或者F。 1、语句覆盖 为了暴露程序中的错误,至少每个语句应该执行一次。 这也是最弱的逻辑覆盖标准咯。 2、判定覆盖 每个判定的每种可能结果都要执行一次。 建立判定表以后,要保证每种判定的结果中都包含了T和F,才满足判定覆盖。 3、条件覆盖 不但每个语句需要执行一次,而且判定表达式中的每个条件都要取到可能的结果。 建立判定表以后,要保证每种条件的结果中都包含了T和F,才满足条件覆盖。 4、判定/条件覆盖 使得每个判定以及每个判定中的每个条件都取到可能的结果。 建立判定表以后,要保证每个判定结果包含T和F,而且每种条件的结果包含T和F。 也就是综合了上面的条件覆盖和判定覆盖。 5、条件组合覆盖 使得每个判定中的条件的各种组合至少出现一次。 也就是说,先把程序中的条件列出来,排列组合,写出所有的可能性,看有没有那组值同时满足这些排列组合。 6、路径覆盖 每条可能的路径都至少执行一次。

就是看源程序中的判断,都有哪些组合,比如T ,FF,FT,等等,看看哪个满足包含了所有的组合。 因为这些不同的组合就代表了程序中执行的不同路径啊。 如何挑选白盒测试工具 白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试、测试的可视化等。 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。目前测试工具主要支持的开发语言包括:标准C、C++、Visual C ++、Java、Visual J++等。 代码的覆盖深度:从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正判定条件覆盖。 ·语句覆盖为了暴露程序中的错误,程序中的每条语句至少应该执行一次。因此语句覆盖(Statement Coverage)的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。语句覆盖是很弱的逻辑覆盖。 ·判定覆盖比语句覆盖稍强的覆盖标准是判定覆盖(Decision Coverage)。判定覆盖的含义是:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称为分支覆盖。 ·条件覆盖在设计程序中,一个判定语句是由多个条件组合而成的复合判定。为了更彻底地实现逻辑覆盖,可以采用条件覆盖(Condition Coverage)的标准。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。 ·多条件覆盖多条件覆盖也称条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。 ·修正条件判定覆盖修正条件判定覆盖是由欧美的航空/航天制造厂商和使用单位联合制定的“航空运输和装备系统软件认证标准”,目前在国外的国防、航空航天领域应用广泛。这个覆盖度量需要足够的测试用例来确定各个条件能够影响到包含的判定的结果。它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and、or)连接的布尔条件,每个条件对于判定的结果值是独立的。 不同的测试工具对于代码的覆盖能力也是不同的,通常能够支持修正条件判定覆盖的测试工具价格是极其昂贵的。

白盒测试流程

白盒测试指南 (说明:此白盒测试指南主要给白盒测试人员提供一些基本的白盒测试方法和技术,由于涉及的问题广泛,测试内容中的细节不一定准确和完整,还有待于各位的共同参与和不断完善,欢迎多交流!) 目的 本方案主要实施NC产品程序代码的白盒测试。使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。保证局部模块功能完备性,运行正确性与稳定性。 测试项 所要测试的类。如: nc.ui.bd.* nc.bs.bd.* nc.vo.bd.* 测试依据 1.N C产品需求报告; 需求规格说明书、用例描述清单 2.设计文档;(OOA、OOD、CRC卡) 如:AOM(Analysis Object Model)表示类间的静态关系,是多个相关的用例共用的。 ASD(Analysis Sequence Diagram)是按业务工作的顺序表示每一工作步骤执行时类间的动态关系。一个用例对应一个ASD。 CRC (Collaborators & Responsibilities Card)卡是一个类的完整表述 3.界面规范 4.编码规范 5.开发命名标准 通过的准则 1.界面测试通过的标准:界面的样式、大小、颜色、整体布局的设置;各种标签控件的使用及主 题描述以及事件源控件的使用、快捷键使用都应符合《NC系统应用框架需求报告》和《设计文档的相关规范》。 2.程序代码通过的标准:创建的类、接口、方法、属性应与《设计文档》保持一致;程序的各种 命名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运行。 测试环境配置 1.测试工具: 2.软件环境: Client端: 操作系统:中文WINNT/2000 开发环境:VA3.5 专业版 待测试的源码包 Server端: 操作系统:WIN NT4.0

白盒测试技术

实验1:白盒测试用例设计 实验目的 1.理解白盒测试意义和目的 2. 掌握逻辑覆盖测试进行白盒测试测试 3.掌握独立路径测试方法。 实验内容 运用覆盖及路径测试方法,用白盒测试法为 JAVA 程序设计测试用例。 下面是一个洗牌、发牌程序的规格说明: 1.输入玩牌的张数,有52、48张; 2.如有52张牌,则输入玩牌人数,4或2人,输入人数后打出发牌结果;如果输入人数不对,则退出程序; 3.如有48张牌,则输入玩牌人数,3或4人,输入人数后打出发牌结果;如果输入人数不对,则退出程序; import java.util.*; import java.io.*; import javax.swing.*; public class cardTest { public static void main(String[] args) { String[] suit = { "黑桃", "红桃", "梅花", "方块"}; String[] rank = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; ArrayList list = new ArrayList(); for (int i = 0; i < suit.length; i++) { for (int j = 0; j < rank.length; j++) { list.add(suit[i] + rank[j]);

} } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i) + " "); } Collections.shuffle(list); //将list中的元素重新随机排序 int cardnum = Integer.parseInt(JOptionPane.showInputDialog( "有多张牌?请输入整数52,48")); if (cardnum == 48) { list.remove("红桃2"); list.remove("方块2"); list.remove("梅花2"); list.remove("方块A"); int player1 = Integer.parseInt(JOptionPane.showInputDialog("请输入人数:3或4的整数")); if (player1 == 3) { for (int i = 0; i < 3; i++) { System.out.print("玩家" + i + ": "); for (int j = i * 16; j < (i + 1) * 16; j++) { System.out.print(list.get(j+1) + " "); } System.out.println(); } } else if(player1 == 4) { for (int i = 0; i < 4; i++) { System.out.print("玩家" + i + ": "); for (int j = i * 12; j < (i + 1) * 12; j++) { System.out.print(list.get(j) + " ");

白盒测试笔试题

一选择题 1.下面不属于白盒测试能保证的是(D)。 A.模块中所有独立途径至少测试一次 B.测试所有逻辑决策真和假两个方面 C.在所有循环的边界内部和边界上执行循环体 D.不正确或漏掉的功能 2.因果图方法是根据(a)之间的因果关系来设计测试用例的。 A.输入与输出 B.设计与实现 C.条件与结果 D.主程序与子程序 3.使用白盒测试方法时,确定测试数据应根据(a)和指定的覆盖标准。 A.程序的内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 4.软件测试中常用的静态分析方法是(a)和接口分析。 A.引用分析 B.算法分析 C.可靠性分析 D.效率分析 5.白盒方法中常用的方法是(a)方法。 A.路径测试 B.等价类 C.因果图 D.归纳测试 6.在进行单元测试时,常用的方法是(a)。 A.采用白盒测试,辅之以黑盒测试 B.采用黑盒测试,辅之以白盒测试 C.只适用白盒测试 D.只适用黑盒测试 7.在软件工程中,白盒测试法可以用于测试程序的内部结构。此方法将程序看做是(a)。 A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合 8. 对下面个人所得税程序中满足语句覆盖测试用例的是(D ) If(income < 800) taxrate=0; Else if(income <=1500) taxrate=0.05; Else if(income <2000) taxrate=0.08; Exle taxrate=0.1; A income = (800,1500,2000,2001) B income = (800,801,1999,2000) C income = (799,1499,2000,2001) D income = (799,1500,1999,2000) 二简答题 1.白盒测试有几种方法? 答:白盒测试方法分为两大类:静态测试方法和动态测试方法。 静态测试方法:检查软件的表示和描述是否一致,没有冲突或者没有歧义。 动态测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 2.比较白盒测试和黑盒测试? 答:使用白盒测试方法时,测试根据程序的内部逻辑和指定的覆盖标准; 黑盒测试法是通过分析程序的接口功能设计测试用例的。 3.写几个白盒测试的工具 4.Linux基本命令

软件测试-实验2-白盒测试案例分析

实验2 白盒测试 一、实验目的与要求 1、掌握白盒测试的语句覆盖和判定覆盖测试方法的原理及应用 2、掌握条件覆盖、条件组合覆盖的方法,提高应用能力 3、掌握路径法测试 二、实验设备 1、电脑PC 三、实验原理 白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,其又称为结构测试。 1、语句覆盖 语句覆盖指代码中的所有语句都至少执行一遍,用于检查测试用例是否有遗漏,如果检查到没有执行到的语句时要补充测试用例。无须细分每条判定表达式,该测试虽然覆盖了可执行语句,但是不能检查判断逻辑是否有问题。 2、判定覆盖 又称判断覆盖、分支覆盖,指设计足够的测试用例,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假取值均曾被满足。 判定覆盖比语句覆盖强,但是对程序逻辑的覆盖度仍然不高,比如由多个逻辑条件组合而成的判定,仅判定整体结果而忽略了每个条件的取值情况。 3、条件覆盖、条件判定覆盖 条件覆盖指程序中每个判断中的每个条件的所有可能的取值至少要执行一次,但是条件覆盖不能保证判定覆盖,条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。 条件判定覆盖是条件覆盖和判定覆盖的组合,指设计足够的测试用例,使得判定中每个条件的所有可能的取值至少出现一次,并且每个判定取到的各种可能的结果也至少出现一次。条件判定覆盖弥补了条件和判定覆盖的不足,但是未考虑条件的组合情况。 4、条件组合覆盖 又称多条件覆盖,设计足够的测试用例,使得判定条件中每一个条件的可能组合至少出现一次。线性地增加了测试用例的数量。 5、基本路径法 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行的路径集合,从而设计测试用例的方法。在基本路径测试中,设计出的测试用例要保证在测试中程序的每条可执行语句至少执行一次,在基本路径法中,需要使用程序的控制流图进行可视化表达。

相关文档
最新文档