5. 设计测试用例,使得程序中每个判定至少为真和为假值各一次,则称满足了白盒测试中 的____________覆盖。
6. 执行足够的测试用例,使得判定中的每个条件至少为真和为假值各一次,则称满足了白 盒测试中的____________覆盖。
7. 执行足够的测试用例,使得判定中每个条件至少为真和为假值各一次,并使每个判定至 少为真和为假值各一次,则称满足了白盒测试中的____________覆盖。
8. 执行足够的例子,使得每个判定中条件各种可能组合至少为真和为假值各一次,则称满 足了白盒测试中的____________覆盖。
9. 基于图的覆盖准则分为______________________和________________________。
10. 没有作为其它简单路径子路径的简单路径称之为_____________。
解答:
1. 路径覆盖
2. 代码审查、评审
3. 协调人、编码人员
4. 语句
5. 判定覆盖
6. 条件
7. 判定条件
8. 条件组合
9. 结构化覆盖准则、数据流覆盖准则
10. 主路径
三.名词解释 1. 测试路径
2. 静态测试
3. 动态测试
4. 人工测试
5. 白盒测试
6. 测试工作件
7. 桌面检查
8. 图的节点覆盖准则
9. 图的边覆盖准则
10. 数据流覆盖
解答:
1. 从开始节点到结束节点所走的路径。
2. 静态测试方法的主要特征是在用计算机测试源程序时,计算机并不真正运行被测试的程 序,只对被测程序进行特性分析。
3. 动态测试方法的主要特征是计算机必须真正运行被测试的程序,通过输入测试用例,对 其运行情况(输入/输出的对应关系)进行分析。
4. 由测试人员手工根据测试用例中的步骤,手工执行并记录测试结果。
5. 从程序的控制结构出发进行的测试,测试程序中的每条通路是否都有能按预定要求正确 工作,而不顾它的功能。
6. 测试对象,是不同种类的产品交付件,即一切项目过程文档。
7. 由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之 前,对源程序代码进行分析,检验,并补充相关的文档,以发现程序中的错误。
8. 存在一个测试用例集T可以访问图中所有可以到达的节点。
9. 存在一个测试用例集T可以访问图中所有可以到达的边。
10. 根据变量的定义和使用确定程序是否正确
四.简答题
1. 简述静态测试的优点和缺点。
2. 简述白盒测试的优缺点。
3. 简述静态测试与动态测试的区别
4. 简述桌面检查、代码审查与代码走查之间的区别。
5. 简述代码审查中协调人的职责
6. 写出下图节点0至节点6的测试路径
7. 简述白盒测试策略
8. 简述控制流测试与数据流测试的区别
9. 有人认为控制流图的节点覆盖准则和边覆盖准则生成的测试用例完全相同,因此两个测 试准则是重复的。请判定以上描述是否正确,并给出相应的解释。
10. 有人认为程序如果可以做到穷举路径测试,就可以保证程序中再也没有缺陷,请判断以 上描述是否正确,并给出相应的解释。
解答: 1. 优点
加深对项目的理解,使测试计划和测试设计质量得到提高;
使得测试用例全面、有效,从“撞问题”转变为有目的的“找问题” 提前了对项目的理解,减少了测试执行时的摸索时间,从而加快测试进度 缺点
静态代码检查非常耗费时间,而且代码检查需要丰富的知识和经验积累。
2. 从程序的控制结构出发进行的测试,测试程序中的每条通路是否都有能按预定要求正确 工作,而不顾它的功能。 优点:可以对程序彻底检查,发现错误,缺点:成本高,测试用例太多,不能验证程序 功能是否符合规格说明书
3. 静态测试 静态测试方法的主要特征是在用计算机测试源程序时,计算机并不真正运行被测试的程 序,只对被测程序进行特性分析。
动态测试
动态测试方法的主要特征是计算机必须真正运行被测试的程序,通过输入测试用例,对 其运行情况(输入/输出的对应关系)进行分析。
4. 桌面检查:由程序员自己检查自己编写的程序。
代码审查:由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提 出问题,展开讨论,审查错误是否存在。
代码走查:让与会者“充当”计算机。由测试组成员为被测程序准备一批有代表性的测 试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑 运行一遍。
5. 为代码审查分发材料(程序清单、设计规范),安排进程
在代码审查过程中起主导作用 记录发现的所有错误
6. 4个测试路径
[ 0, 1, 3, 4, 6 ] [ 0, 1, 3, 5, 6 ] [ 0, 2, 3, 4, 6 ] [ 0, 2, 3, 5, 6 ]
7. (1)在测试中,应尽量先使用工具进行静态结构分析,代码检查,再进行覆盖率测试。 (2)覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对
于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。
8. 数据流测试属于白盒测试,主要是从变量的计算和使用来判定程序是否正确。控制流测 试主要是根据程序的执行路径来判定程序是否正确 数据流测试只能用于程序代码,控制流测试可以用于程序代码、活动图、状态图等。
9. 不正确,比如下图根据节点覆盖准则和边覆盖准则生成的测试用例就不相同
节点覆盖: T = { 0, 1, 2 },测试路径为 [ 0, 1, 2 ]
边覆盖: T = { (0,1), (0, 2), (1, 2) }, 测试路径为 [ 0, 1, 2 ] [ 0, 2 ]
10. 不正确,穷举路径测试可以使代码达到100%的覆盖,但是不能查出程序违反了设计要求
或用户需求。穷举测试不能查出遗漏路径错误和与数据相关的异常错误。
五.应用题
1. 按要求给出下列程序的测试用例(要求写出必要的说明)
(1)语句覆盖 (2)判定覆盖 (3)条件覆盖
(4)判定-条件覆盖