软件工程 作业9(含答案)
1. 请从供选择的答案中选出应填入下列( )中的字句。
程序的三种基本控制结构是( A2 )。它们的共同点是( B 4)。结构化程序设计的一种基本方法是( C 4 )。软件测试的目的是( D 2 )。软件调试的目的是( E 1)。 供选择的答案:
A. ① 过程,子程序,分程序 ② 顺序,条件,循环
③ 递归,堆栈,队列 ④ 调用,返回,转移
B. ① 不能嵌套使用 ② 只能用来写简单的程序
③ 已经用硬件实现 ④ 只有一个入口和一个出口
C. ① 筛选法 ② 递归法 ③ 归纳法 ④ 逐步求精法
D. ① 证明程序中没有错误 ② 发现程序中的错误
③ 测量程序的动态特性 ④ 检查程序中的语法错误
E. ① 找出错误所在并改正之 ② 排除存在错误的可能性
③ 对错误性质进行分类 ④ 统计出错的次数
2.从下列关于软件测试的叙述中,选出5条正确的叙述。4.5.6.7.10
(1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(2) 尽量用公共过程或子程序去代替重复的代码段。
(3) 测试是为了验证该软件已正确地实现了用户的要求。
(4) 对于连锁型分支结构,若有n 个判定语句,则有2n 条路径。
(5) 尽量采用复合的条件测试,以避免嵌套的分支结构。
(6) GOTO 语句概念简单,使用方便,在某些情况下,保留GOTO 语句反能使写出的程序更加简洁。
(7) 发现错误多的程序模块,残留在模块中的错误也多。
(8) 黑盒测试方法中最有效的是因果图法。
(9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。
(10) 程序效率的提高主要应通过选择高效的算法来实现。
3.从供选择的答案中选出应填入下面有关软件测试的叙述的( )内的正确答案。
软件测试方法可分为黑盒测试法和白盒测试法两种。
黑盒测试法是通过分析程序的( A 3)来设计测试用例的方法。除了测试程序外,它还适用于对( B 4 )阶段的软件文档进行测试。
白盒测试法是根据程序的( C 2)来设计测试用例的方法。除了测试程序外,它也适用于对( D 2 )阶段的软件文档进行测试。
白盒法测试程序时常按照给定的覆盖条件选取测试用例。( E 2)覆盖比( F 1 )覆盖严格,它使得每一个判定的每一条分支至少经历一次。( G 4 )覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值。( H 5 )覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。
单元测试一般以( I 1)为主,测试的依据是( J 1)。
供选择的答案:
A, C:① 应用范围 ② 内部逻辑 ③ 功能 ④ 输入数据
B, D:① 编码 ② 软件详细设计 ③ 软件总体设计 ④ 需求分析 E, F, G, H:① 语句 ② 判定 ③ 条件 ④ 判定/条件
⑤ 多重条件 ⑥ 路径
I :① 白盒法 ② 黑盒法
J :① 模块功能规格说明 ② 系统模块结构图 ③ 系统需求规格说明
4.从供选择的答案中选出应该填入下列关于软件测试的叙述的( ) 内的正确答案。
软件测试中常用的静态分析方法是( A 1 )和( B 5 )。( B )用于检查模块或子程序间的调用是否正确。分析方法(白盒方法)中常用的方法是( C 1 )方法。非分析方法(黑盒方法)中常用的方法是( D 2 )方法和( E 3 )方法。( E )方法根据输出对输入的依赖关系设计测试用例。
供选择的答案:
A B: ① 引用分析 ② 算法分析 ③ 可靠性分析 ④ 效率分析
⑤ 接口分析 ⑥ 操作分析
C ~ E: ① 路径测试 ② 等价类 ③ 因果图 ④ 归纳测试
⑦ 深度优先 ⑧ 调试 ⑤ 综合测试 ⑥ 追踪
⑨ 相对图
5. 黑盒测试是从( c )观点出发的测试,白盒测试是从( )观点出发的测试。
A. 开发人员、管理人员 B. 用户、管理人员
C. 用户、开发人员 D. 开发人员、用户
6. 因果图方法是根据( a )之间的因果关系来设计测试用例的。
A. 输入与输出 B. 设计与实现 C. 条件与结果 D. 主程序与子程序
7. 为了提高测试的效率,应该( d )。
A. 随机地选取测试数据
B. 取切可能的输入数据作为测试数据
C. 在完成编码以后制定软件的测试计划
D. 选择发现错误可能性大的数据作为测试数据
8. 在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中( d )是最强的覆盖准则。
A. 语句覆盖 B. 条件覆盖 C. 判定覆盖 D. 路径覆盖
9. 使用白盒测试方法时,确定测试数据应根据( a )和指定的覆盖标准。
A. 程序的内部逻辑 B. 程序的复杂结构 C. 使用说明书 D. 程序的功能
10. ( d )就是简化模拟较低层次模块功能的虚拟子程序。
A. 过程 B. 函数 C. 仿真 D. 桩
11. 在程序设计过程中,要为程序调试做好准备,主要体现在( d )。
A. 采用模块化、结构化的设计方法设计程序
B. 编写程序时要为调试提供足够的灵活性
C. 根据程序调试的需要,选择并安排适当的中间结果输出和必要的断点
D. 以上全是
12. 软件测试是软件开发过程的重要阶段,是软件质量保证的重要手段,下列( d )是软件测试的任务。
① 预防软件发生错误
② 发现并改正程序错误
③ 提供诊断错误信息
A. 只有① B. 只有② C. 只有③ D. 全部
13. 设计下列伪代码程序的语句覆盖和路径覆盖测试用例。
START
INPUT (A , B)
IF A > 5
THEN X := 10
ELSE X := 1
ENDIF
IF B> 10
THEN Y := 20 ELSE Y := 2 ENDIF
PRINT(X , Y) STOP