1、江南大学现代远程教育 第三阶段测试卷考试科目:软件工程第 6 章至第 8 章(总分 100 分) 时间:90 分钟_学习中心(教学点) 批次: 层次: 专业: 学号: 身份证号: 姓名: 得分: 一、 单选题(每小题 1 分,共计 20 分)1. 在黑盒测试中,着重检查输入条件组合的方法是( )A等价类划分法 B边界值分析法 C错误推测法 D因果图法2. McCabe 复杂性度量又称( )A代码行度量 B环路度量 C程序量度量 D功能性度量3. 成功的测试是指运行测试用例后( )A未发现程序错误 B发现了程序错误C证明程序正确 D改正了程序错误4. 不属于白盒测试的技术是( )A路径覆盖 B判
2、定覆盖 C循环覆盖 D边界值分析5. 与选择编程语言无关的因素是( )A软件开发的方法 B软件执行的环境C程序设计风格 D软件开发人员的知识6集成测试时,能较早发现高层模块接口错误的测试方法为( )A自顶向下渐增式测试 B自底向上渐增式测试C非渐增式测试 D系统测试7. 黑盒法是根据程序的什么来设计测试用例的?( )A应用范围 B内部逻辑 C功能 D输入数据8. 软件测试用例主要由输人数据和什么两部分组成?( )A测试计划 B测试规则 C预期输出结果 D以往测试记录分析9. 维护中,因误删除一个标识符而引起的错误是何副作用?( )A文档 B数据 C编码 D设计10. 程序设计语言的心理特性在语
3、言中表现不应包括( )A歧义性 B简洁性 C保密性 D传统性11 单元测试主要针对模块的几个基本特征进行测试,该阶段不能完成的测试是( )A系统功能 B局部数据结构 C重要的执行路径 D错误处理12. 程序设计语言的工程特性其中之一表现在( )A软件的可重用性 B数据结构的描述性C抽象类型的描述性 D数据库的易操作性13. 测试的关键问题是( )A如何组织软件评审 B如何选择测试用例C如何验证程序的正确性 D如何采用综合策略14. 集成测试主要是为了发现哪个阶段的错误?( )A需求分析 B概要设计 C详细设计 D编码15. 程序设计语言的技术特性不应包括( )A数据结构的描述性 B抽象类型的描
4、述性C数据库的易操作性 D软件的可移植性16. 软件测试的目的是( )A试验性运行软件 B发现软件错误C证明软件正确 D找出软件中全部错误17. 与设计测试用例无关的文档是( )A项目开发计划 B需求规格说明书 C设计说明书 D源程序18. 下列几种逻辑覆盖标准中,查错能力最强的是( )A语句覆盖 B判定覆盖 C条件覆盖 D条件组合覆盖19.软件测试中,白盒法是通过分析程序的什么来设计测试用例的?( )A应用范围 B内部逻辑 C功能 D输入数据20.软件维护的困难主要原因是( )A费用低 B 人员少 C开发方法的缺陷 D维护难二、名词解释(每小题 2 分,共计 12 分)1. 编码 2. 驱动
5、 3. 存根 4. 调试 5. 测试 6. 穷举三、简答题(每小题 4 分,共计 32 分)1软件测试的目标?2软件测试的步骤?3什么是软件可靠性?4什么是软件的可用性?5什么是改正性维护?6什么是适应性维护?7什么是完善性维护?8什么是预防性维护?四、综合应用题(14 小题 7 分,5 小题 8 分,共计 36 分)1设有如下流程图,试构造其程序图且计算它的 McCabe 复杂度。sum=0,i=1YYNNi=0.314sum=sum+a(i)i=i+1sum !=0输出 sumYN输出 sum2设有如下流程图,试构造其程序图且计算它的 McCabe 复杂度。i=i+1Yi=1Yink=jj
6、=j+1j=i+1j=nNNk!=i交换 ai,akNY3. 设有如下流程图,试构造其程序图且计算它的 McCabe 复杂度。NNNYL=M J=J+1NJ=K=0YYM、 N 互质L=1K=N+K输入 M、NM!=1N!=1L=KM*JY输出正确信息参考答案一、单选题1 D 2 B 3 B 4 D 5 D 6 A 7 C 8 C 9 C 10C 11A 12A 13B 14 B 15D 16B 17A 18D 19B 20C 二、名词解释1. 编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。2. 驱动(驱动程序)指调用被测试的单元(模块)的虚拟主程序)3. 存根(存根程序)指被测试
7、的单元(模块)调用的其他模块的虚拟子程序4. 调试或称纠错,它是排除(诊断和改正)程序中存在的错误过程5. 测试是查找和发现程序中存在的错误的过程 6. 穷举(穷举测试)就是把程序所有可能的执行路径都检查一遍的测试三、简答题1. 测试的目标(G.Myers 规则): (1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今尚未发现错误的测试方案;(3) 成功的测试是发现至今为止尚未发现错误的测试.2. 软件测试的步骤:(1) 模块测试单元测试(2) 子系统测试局部“集成测试”(3) 系统测试全局“集成测试”(4) 验收测试由用户参加,利用实际数据进行的系统测试(
8、5) 平行测试试运行3. 软件可靠性是指程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。4. 软件可用性是指程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。5改正性维护是指发现错误(问题)且诊断和改正错误的过程。(占维护活动的 50%60%)。6适应性维护是指为了适应软硬件环境的变化而进行的修改软件的活动 (占维护活动的17%20%)。7完善性维护是指为了满足在使用软件的过程中用户提出的新要求(增加新功能/修改已有功能/提出一般性的改进意见)而进行的修改软件的活动。(占维护活动的 18%25%)。8预防性维护是指为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件的活动。(占 4%)四、综合应用题1. 解: 程序图: McCabe 复杂度:V(G)=判断个数+1=3+1=4 2. 解: 程序图: McCabe 复杂度:V(G)=判断个数+1=3+1=43. 解: 程序图: McCabe 复杂度:V(G)=判断个数+1=4+1=5 (2 分)