第一章 单元测试
1、单选题:软件实现与通常的程序设计的主要区别是( )。
A:代码格式标准
B:算法设计
C:软件的集成与测试
D:数据结构
正确答案:【软件的集成与测试 】
2、多选题:软件规模的划分依据有多个因素,通常不包含()。
A:产品规模
B:组织方式
C: 运行平台
D:参加人数
E:研发周期
正确答案:【组织方式 ; 运行平台】
3、多选题:高级程序语言的一种划分标准是按照语言的计算模型,将高级语言分为声明式式和命令式两个大类,前者进一步划分为()。
A:交互性
B:函数式语言
C:逻辑式语言
D:数据库语言
E:数据流语言
正确答案:【函数式语言;逻辑式语言;数据流语言】
4、判断题:按照教材 ,敏捷开发创造了一些新的技术或实践,如测试驱动开发、结对编程、代码重构和持续集成。
A:对
B:错
正确答案:【对】
5、判断题:从软件使用者的角度,把软件生存周期分为定义软件、开发软件和维护软件三个阶段。( )
A:对
B:错
正确答案:【错】
6、判断题:增量开发模型的基本思想是让开发者能够从早期的开发、系统的增量、交付的版本中学到经验。( )
A:对
B:错
正确答案:【对】
第二章 单元测试
1、单选题:软件分解的核心是( )。
A:将多个问题、难点或关注点分离
B:将问题分解的足够简单解决
C:将分解的若干小问题最终合并
D:将问题分解的尽可能小
正确答案:【将多个问题、难点或关注点分离】
2、单选题:如果用数组存不同的算式作为“习题”,产生60道不同算式的习题时算式比较的次数是( )。
A:1770
B:60
C:120
D:1200
正确答案:【1770】
3、多选题:int add (int m,int n) { if (m > 100 || m < 0 || n > 100 || n < 0) return -1; return m+n;}该程序期望输出两个100以内的正整数之和,和可以超过100。返回-1则表示输入参数不符合要求。
用边界值分析的方法测试该程序,如果要测试不期望的结果(输入参数不符合要求),要选择哪些测试数据()。
A:(99,99)
B:(1,1)
C:(99,0)
D:(1,100)
E:(0,90)
正确答案:【(99,0);(1,100);(0,90)】
4、判断题:软件模块是指具有相对不独立性的、由数据说明、执行语句等程序对象构成的代码集合。( )
A:错
B:对
正确答案:【错】
5、判断题:等价类划分有两种不同的情况:有效等价类和无效等价类。( )
A:对
B:错
正确答案:【对】
6、判断题:Java语言的static方法不依赖于任何对象就可以进行访问,能访问类的非静态成员变量和非静态成员方法。
A:对
B:错
正确答案:【错】
第三章 单元测试
1、多选题:在软件开发中,封装具有如下优势( )
A:更容易快速开发正确的程序,因为程序员在编写一个构件时只需考虑少量事情。在一个包
含多人的项目中特别有用:一旦程序员们确定了构件间的交互,每个人都可以独立地开发
和测试分配的构件。事实上,没有封装,是不可能编写、调试和维护非常大的程序的。
B:改善通用性和维护性,因为需要复用构件、组合成软件,需要构件尽可能通用、正确;理
解一个构件无须理解整个程序,自由地改进构件的内部,有助于维护程序。
C:封装使得编程更加简单清晰,提高了代码的执行效率。
D:构件的内部修改对外部的影响变小,减少了修改引起整个程序范围的“波动效应”。
E:构件的外部不能随意访问构件的内部数据和操作,而只允许通过由构件提供的外部可用的
操作来访问其内部,这就降低了构件间的耦合度,还可以避免外部错误对程序其他部分的
“交叉感染”。
正确答案:【更容易快速开发正确的程序,因为程序员在编写一个构件时只需考虑少量事情。在一个包
含多人的项目中特别有用:一旦程序员们确定了构件间的交互,每个人都可以独立地开发
和测试分配的构件。事实上,没有封装,是不可能编写、调试和维护非常大的程序的。;改善通用性和维护性,因为需要复用构件、组合成软件,需要构件尽可能通用、正确;理
解一个构件无须理解整个程序,自由地改进构件的内部,有助于维护程序。;构件的内部修改对外部的影响变小,减少了修改引起整个程序范围的“波动效应”。;构件的外部不能随意访问构件的内部数据和操作,而只允许通过由构件提供的外部可用的
操作来访问其内部,这就降低了构件间的耦合度,还可以避免外部错误对程序其他部分的
“交叉感染”。】
2、多选题:有些语言如( )允许以重载方式对运算符“+”定义不同的意义(运算符重
载),比如字符串的连接、有理数的加法等。
A:C#
B:Objective-C
C:C++
D:JAVA
E:Python
正确答案:【C# ;C++ ;Python】
3、判断题:用面向对象开发软件时,我们把系统模块化成类,但不封装属性及其操作的方法。( )
A:错
B:对
正确答案:【错】
4、判断题:实现开闭原则的核心是共性和个性分析,关键是抽象。( )
A:对
B:错
正确答案:【对】
5、判断题:教材3.3.3节案例设计二中第5部分在讨论数据集的数据结构时,分析了在Exercise中存储算式容器的5个策略,其中一个策略是让Exercise继承一个容器数据结构类,比如ArrayList。但是,这个策略不符合继承关系。
A:对
B:错
正确答案:【对】
第四章 单元测试
1、单选题:在数据处理中,将对象的成员变量转换为可以存储或传输的形式的过程就是( )。
A:序列化
B:结构化
C:编程化
D:立体化
正确答案:【序列化】
2、多选题:断言的基本用途是( )程序。通常要在编译器启动断言检查后才能在程序中使用断言。程序布署完之后就关闭断言。
A:测试
B:运行
C:维护
D:调节
E:调试
正确答案:【测试;调试】
3、多选题:防御编程的基本思想是:程序员要预计其他程序员的过错、( ),采取适当措施保护自己的程序。
A:调用者过失
B:有害的输入数据
C:需求歧义
D:无效的输入
E:编程错误
正确答案:【调用者过失 ;有害的输入数据 ;无效的输入 】
4、判断题:一般而言,程序设计语言数据结构的数据集不依附于应用程序。( )
A:对
B:错
正确答案:【错】
5、判断题:契约式编程要求软件开发者为软件模块定义正式的、精确的并且可验证的接口。( )
A:对
B:错
正确答案:【对】
6、判断题:程序的健壮性(robutness)是指程序对要求之外的输入进行判断并处理、使程序保持运行状态,并确保程序产生准确的结果。( )
A:对
B:错
正确答案:【错】
第五章 单元测试
1、判断题:系统测试的重点是检测程序模块的接口、模块之间的交互及开发的软件与外部系统的交互。( )
A:错
B:对
正确答案:【错】
2、单选题:图形用户界面 GUI用户通过()识别与控制交互元素,进行有目的性的操作。
A:字符
B:数字
C:图形
D:键盘
正确答案:【图形】
3、单选题:驱动模块和()是常见的基本的模拟程序。
A:栈模块
B:桩模块
C:主模块
D:堆模块
正确答案:【桩模块】
4、多选题:在交互设计的基本过程中,交互设计以标识和建立用户需要开始,交互设计的用户需求包括( )。
A:速度需求
B:功能需求
C:数据需求
D:效率需求
E:可用性需求
正确答案:【功能需求;数据需求;可用性需求】
5、判断题:根据软件的静态测试,代码走查完全可以一个人完成,多人合作可以提高效率。( )
A:对
B:错
正确答案:【错】
6、判断题:从软件集成的角度上看,用户界面不可以视为集成程序的一种方式。( )
A:对
B:错
正确答案:【错】
第六章 单元测试
1、单选题:分支语句的出现是对多种复杂情况的处理,本课程对分支语句提出的重构技术不包含( )。
A:用接口替换类型码
B:用类替换类型码
C:用状态式取代类型码
D:用多态取代类型码
正确答案:【用接口替换类型码】
2、单选题:在本课程的TDD案例中,使用了回归测试、边界值测试和( )等测试技术。
A:逻辑测试
B:语句测试
C:路径测试
D:等价类测试
正确答案:【等价类测试 】
3、多选题:软件交付的基本活动包括( )。
A:构建
B:安装
C:发布
D:打包
E:测试
正确答案:【构建 ;安装;发布 ;打包 】
4、判断题:如果一个方法的代码太长或者代码需要很多注释才能理解其意图,可通过“函数提炼”用一个能说明其意图的方法替换那些代码。( )
A:对
B:错
正确答案:【对】
5、判断题:面向对象语言重构分支语句时,“用多态取代类型码”的基础是实现“用子类取代类型码”。( )
A:错
B:对
正确答案:【错】
6、多选题:
如有任何疑问请及时联系QQ 50895809反馈