
1.软件测试的目的是( B )。
A)试验性运行软件 B)发现软件错误 C)证明软件正确 D)找出软件中全部错误
2.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。
A)应用范围 B)内部逻辑 C)功能 D)输入数据
3.黑盒法是根据程序的( C )来设计测试用例的。
A)应用范围 B)内部逻辑 C)功能 D)输入数据
4.为了提高软件测试的效率,应该( D )。
A)随机地选取测试数据 B)取一切可能的输入数据作为测试数据
C)在完成编码以后制定软件的测试计划 D)选择发现错误可能性最大的数据作为测试用例
5.与设计测试用例无关的文档是( A )。
A)项目开发计划 B)需求规格说明书 C)设计说明书 D)源程序
6.测试的关键问题是( B )。
A)如何组织软件评审 B)如何选择测试用例
C)如何验证程序的正确性 D)如何采用综合策略
7.软件测试用例主要由输入数据和( C )两部分组成。
A)测试计划 B)测试规则 C)预期输出结果 D)以往测试记录分析
8.成功的测试是指运行测试用例后( B )。
A)未发现程序错误 B)发现了程序错误 C)证明程序正确性 D)改正了程序错误
9.下列几种逻辑覆盖标准中,查错能力最强的是( D )。
A)语句覆盖 B)判定覆盖 C)条件覆盖 D)条件组合覆盖
10.在黑盒测试中,着重检查输入条件组合的方法是( D )。
A)等价类划分法 B)边界值分析法 C)错误推测法 D)因果图法
11.单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( A )。
A)系统功能 B)局部数据结构 C)重要的执行路径 D)错误处理
12.软件测试过程中的集成测试主要是为了发现( B )阶段的错误。
A)需求分析 B)概要设计 C)详细设计 D)编码
13.不属于白盒测试的技术是( D )。
A)路径覆盖 B)判定覆盖 C)循环覆盖 D)边界值分析
14.集成测试时,能较早发现高层模块接口错误的测试方法为( A )。
A)自顶向下渐增式测试 B)自底向上渐增式测试 C)非渐增式测试 D)系统测试
15.确认测试以( A )文档作为测试的基础。
A)需求规格说明书 B)设计说明书 C)源程序 D)开发计划
16.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A)程序内部逻辑 B)程序的复杂度 C)使用说明书 D)程序的功能
17.程序的三种基本结构是( B )。
A)子过程、程序、分程序 B)顺序、选择、循环
C)递归、堆栈、队列 D)调用、返回、转移
18.结构化程序设计的一种基本方法是( D )
A)筛选法 B)递归法 C)归纳法 D)逐步求精法
19.软件调试的目的是( A )
A)找出错误所在并改正之 B)排除存在错误的可能性
C)对错误性质进行分类 D)统计出错的次数
20.程序三种基本结构的共同特点是( D )
A)不能嵌套使用 B)只能用来写简单程序
C)已经用硬件实现 D)只有一个入口和一个出口
21.下面说法正确的是( C )。
A)经过测试没有发现错误说明程序正确 B)测试的目标是为了证明程序没有错误
C)成功的测试是发现了迄今尚未发现的错误的测试 D)成功的测试是没有发现错误的测试
22.覆盖准则最强的是( D )。
A)语句覆盖 B)判定覆盖
C)条件覆盖 D)路径覆盖
23.发现错误能力最弱的是( A )。
A)语句覆盖 B)判定覆盖
C)条件覆盖 D)路径覆盖
24.实际的逻辑覆盖测试中,一般以( C )为主设计测试用例。
A)条件覆盖 B)判定覆盖
C)条件组合覆盖 D)路径覆盖
25.下面( D )方法能够有效地检测输入条件的各种组合可能引起的错误。
A)等价类划分 B)边界值分析
C)错误推测 D)因果图
26.与确认测试阶段有关的文档是( A )。
A)需求规格说明书 B)概要设计说明书
C)详细设计说明书 D)源程序
27.超出软件工程范围的测试是( D )。
A)单元测试 B)集成测试
C)确认测试 D)系统测试
28.软件测试不需要了解软件设计的( D )。
A)功能 B)内部结构
C)处理过程 D)条件
29.( B )方法需要考察模块间的接口和各模块之间的联系。
A)单元测试 B)集成测试
C)确认测试 D)系统测试
30.调试应该由( B )完成。
A)与源程序无关的程序员 B)编制该源程序的程序员
C)不了解软件设计的机构 D)设计该软件的机构
二、填空题
1.软件测试的目的是尽可能多地发现软件中存在的 错误 ,将测试 结果 作为纠错的依据。
2.测试阶段的基本任务是根据软件开发各阶段的 文档资料 和程序的 内部结构 ,精心设计一组 测试用例 ,利用这些实例执行 程序 ,找出软件中潜在的各种 错误 和 缺陷 。
3.测试用例由 输入数据 和预期的 输出数据 两部分组成。
4.软件测试方法一般分为两大类: 动态测试 方法和 静态测试 方法。
5.动态测试通过 运行程序 发现错误。根据 测试用例 的设计方法不同,动态测试又分为 黑盒测试 与 白盒测试 两类。
6.静态测试采用 人工检测 和 计算机辅助静态分析 的手段对程序进行检测。
7.人工审查程序偏重于 编码质量 的检验,而软件审查除了审查 编码 还要对各阶段 软件产品 进行检验。
10.白盒法必须考虑程序的 内部结构 和 处理过程 ,以检查 处理过程 的细节为基础,对程序中尽可能多的逻辑路径进行 测试 。
11.白盒测试是 结构 测试,被测对象是 源程序 ,以程序的 内部逻辑 为基础设计测试用例。
12.逻辑覆盖是对程序内部有 判定 存在的逻辑结构设计测试用例,根据程序内部的逻辑覆盖程度又可分为 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖6种覆盖技术。
13.实际的逻辑覆盖测试中,一般以 条件组合 覆盖为主设计测试用例,然后再补充部分用例,以达到 路径 覆盖测试标准。
14.循环覆盖是对程序内部有 循环 存在的逻辑结构设计测试用例,它通过 循环次数 来测试。
15.基本路径测试是在程序 控制流程图 基础上,通过分析控制构造的 环路 复杂性,导出 基本路径 集合,从而设计测试用例。
16.黑盒测试是 功能 测试,用黑盒技术设计测试用例有4种方法:等价类划分 边界值分析 错误推测 因果图。
17.等价类划分从程序的 功能 说明,找出一个输入条件(通常是 一句话 或 一个短语 ),然后将每个输入条件划分成两个或多个 等价类 。
18.边界值分析是将测试 边界 情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值 的测试数据。如果输入或输出域是一个有序集合,则应选取集合的 第一个 元素和 最后一个 元素作为测试用例。
19.在测试程序时,根据经验或直觉推测程序中可能存在的各种错误,称为 错误推测法 。
20.因果图的基本原理是通过画 因果 图,把用自然语言描述的 功能说明 转换为 判定表 ,最后为判定表每一列设计一个测试用例。
21.测试的综合策略是在测试中,联合使用各种 测试 方法。通常先用 黑盒 法设计基本的测试用例,再用 白盒 法补充一些必要的测试用例。
23.软件测试一般经过4个测试:单元测试 集成测试 确认测试 系统测试 。
24.单元测试 指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误,它涉及 编码 和 详细设计 的文档。
25.单元测试主要测试模块的5个基本特征:模块接口 局部数据结构 重要的执行路径 错误处理 边界条件。
26.在单元测试中,需要为被测模块设计 驱动 模块和 桩 模块。 驱动模块 用来模拟被测模块的上级调用模块, 桩模块 用来代替被测模块所调用的模块。
27.集成测试指在 单元 测试基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。也称 组装 测试或 联合 测试。
28.集成测试的方法有两种: 非渐增式测试 渐增式测试 。
29.渐增式测试有两种不同的组装模块的方法: 自顶向下结合 自底向上结合 。
32.确认测试指检查软件的功能 与 性能 是否与 需求规格 说明书中确定的指标相符合,又称 有效性 测试。
33.确认测试在模拟环境下运用 黑盒 测试方法,由专门测试人员 和 用户 参加的测试。
34.确认测试开始前需要制定 测试 计划,结束后要写出 测试分析 报告。其测试用例要选用实际运用 的数据。
35.软件配置审查的任务是检查软件的所有文档资料的 完整性 和 正确性 。
36.调试也称 纠错 ,是在成功的测试之后才开始进行,其目的是确定错误的 原因 和 位置 ,并改正错误。
39.被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为
静态 测试。
40.用等价类划分法设计一个测试用例时,使其覆盖 尽可能多的 尚未被覆盖的合理等价类。
41.用等价类划分法设计一个测试用例时,使其覆盖 一个 不合理等价类。
42.在单元测试时,需要为被测模块设计 驱动模块与桩模块 。
43.在集成测试时有两种测试方法,它们是 渐增式和非渐增式 。
44.软件测试是为了 发现错误 而执行程序的过程。
45.运行被测程序的方法称为 动态 测试。
46.动态测试中,主要测试软件功能的方法称为 黑盒 法。
47.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为 判定覆盖 。
48.要覆盖含循环结构的所有路径是不可能的,一般通过 循环次数 来测试。
49.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等在和 两个不合理的等价类 。
50.凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是 错误推测法 。
51.集成测试中的具体方法是 渐增式和非渐增式测试方法 。
52.确认测试阶段的两项工作是 进行确认测试和软件配置审查 。
53.在单元测试中,测试一个模块时,需要设计 驱动模块和桩模块 。
三、名词解释
1.软件测试:软件测试指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。
2.静态测试:指被测试的程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。
3.动态测试:指通过运行程序发现错误
4.黑盒测试:指把测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求,又称为功能测试或数据驱动测试。
5.白盒测试:把测试对象看成一个打开的盒子,测试人员需了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
6.语句覆盖:设计足够的测试用例,使被测程序中每个语句至少执行一次
7.判定覆盖:指设计足够的测试用例,使被测程序中每个判定表达式至少获得一次“真”值或“假”值,从而使程序的每个分支至少都通过一次,因此判定覆盖又称分支覆盖
8.条件覆盖:指设计足够测试用例,使判定表达式中每个条件的各种可能的值至少出现一次。
9.判定/条件覆盖:设计足够的测试用例,使得判定表达式中每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
10.条件组合覆盖:指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。
11.路径覆盖:设计足够的测试用例,覆盖被测程序中所有可能的路径
12.测试用例:指为寻找程序中的错误而精心设计的一组测试数据
13.驱动模块:指用来模拟被测模块的上级调用模块,其功能比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。
14.桩模块:桩模块指用来代替被测试模块所调用的模块,其作用是返回被测试模块所需的信息。
四、综合题
1.变量的命名规则一般规定如下:变量名的长度不多于40个字符,第一个字符必须为英文字母,其他字母可以英文字母、数字以及下划线的任意组合。请用等价分类法设计测试用例。
答案:
1.① 划分等价类下表。
等价类划分表
| 输入条件 | 合理等价类 | 不合理等价类 |
| 长度 | (1)小于40个字符 (2)等于40个字符 | (5)大于40个字符 |
| 第一个字符 | (3)英文字母 | (6)非英文字母 |
| 其他字母 | (4)英文字母、数字或下划线的任意组合 | (7)空格 (8)标点符号 (9)运算符号 (10)其他可显示字符 |
测试用例表
| 测试数据 | 测试范围 | 期望结果 |
| (1) s_name12 | 等价类(1),(3),(4) | 有效 |
| (2) a1b2c3d4e5f6g7h8i9j1k2l3m4n5o6p7q8r9s_tr | 等价类(2),(3),(4) | 有效 |
| (3) a1b2c3d4e5f6g7h8i9j1k2l3m4n5o6p7q8r9s_trff | 等价类(5) | 无效 |
| (4) 234name | 等价类(6) | 无效 |
| (5) ab gh | 等价类(7) | 无效 |
| (6) ab!2f | 等价类(8) | 无效 |
| (7) fg+ghh | 等价类(9) | 无效 |
| (8) H@gh | 等价类(10) | 无效 |
2.某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。测试对象是按以上要求计算顾客收费的模块,按照路径覆盖法设计测试用例。
答案:
① 被测模块的程序流程图如图所示。
被测模块的程序流程图
② 按照路径覆盖法设计测试用例如下:
是会员,累计消费900元, 覆盖路径127
是会员,累计消费2000元, 覆盖路径128
不是会员,累计消费80元, 覆盖路径134
不是会员,累计消费300元, 覆盖路径135
3.下面是某代码段的程序流程图:
(1)转化为控制流程图,计算它的环路复杂性。
(2)为了完成基本路径测试,求出它的每一组的路径。
答案:1、计算得到的控制流图的环路复杂性
对于该控制流图,可以算出:V(G)=5(区域数)=4(判定结点数)+ 1 = 5
2、确定基本路径集
针对计算出的环路复杂性的值,就是该图的已有的路径集中的路径数目。
path1:1—2—10—11—13
path2:1—2—10—12—13
path3:1—2—3—4—5—8—9—2 ……
path4:1—2—3—4—5—6—8—9—2 ……
path5:1—2—3—4—5—6—7—8—9—2 ……
路径3、4、5后面的省略号表示在控制结构中以后剩下的路径是可选择的,在很多情况下,标识判断结点,常常能够有效地帮助导出测试用例。
