1、软件性能测试和可靠性测试、面向对象软件的测试及答案解析(总分:112.00,做题时间:90 分钟)一、选择题(总题数:36,分数:72.00)1.以下关于性能测试的说法中,正确的是_。A软件性能与该软件的实现算法无关B软件的吞吐量越大,其平均响应时间越短C给软件的可用资源越少,其平均响应时间越短D对于同一个网站,其支持的同时发送请求的用户数越大,该网站的性能越好(分数:2.00)A.B.C.D.2.以下_属于软件性能测试的范畴。A接口测试 B压力测试 C单元测试 D易用性测试(分数:2.00)A.B.C.D.3.在软件性能测试中,_不是软件性能的指标。A响应时间 B吞吐量 C资源利用率 D并发
2、进程数(分数:2.00)A.B.C.D.4.以下分析技术中,_不属于基于性能计数器的分析技术。A内存分析 B处理器分析 C通信中断分析 D进程分析(分数:2.00)A.B.C.D.5.下列关于软件性能测试的说法中,正确的是_。A性能测试的目的不是为了发现软件缺陷B压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C性能测试通常要对测试的结果进行分析才能获得测试结论D在性能测试下降的曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处(分数:2.00)A.B.C.D.6.以下关于软件可靠性测试的说法,正确的是_。A定义软件运行剖面是软件可靠性测试
3、的重要步骤B软件可靠性测试使用的测试用例应该满足分支覆盖C软件可靠性测试可以在单元测试中实施D软件可靠性预测模型的作用是指导软件可靠性测试中测试用例的生成(分数:2.00)A.B.C.D.7.下列关于软件可靠性测试的说法中,错误的是_。A发现软件缺陷是软件可靠性测试的主要目的B软件可靠性测试通常用于有可靠性要求的软件C在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D可靠性测试通常要对测试结果进行分析才能获得测试结论(分数:2.00)A.B.C.D.8.软件可靠性与硬件可靠性的区别体现在_。A唯一性 B物理退化 C逻辑复杂性 D以上都是(分数:2.00)A.B.C.D.9
4、.软件中一切不好的东西均称做_。A错误 B缺陷 C故障 D失效(分数:2.00)A.B.C.D.10.以下_不属于 PTGM 的步骤之一。A测试前期准备 B测试设计与开发C压力产生与调度 D引入测试工具(分数:2.00)A.B.C.D.11.在进行性能分析时通常会把_的用户数定义为最大建议用户数。A急剧下降区和轻微下降区交界处B平坦区和轻微下降区交界处C轻微下降区和平坦区交界处D急剧下降区和平坦区(分数:2.00)A.B.C.D.12.以下_与性能测试无关。A可靠性测试 B失效/恢复测试 C功能测试 D配置测试(分数:2.00)A.B.C.D.13.软件可靠性的指标是_。A平均无失效时间 B平
5、均失效时间C失效引起的成本 D失效的严重程度(分数:2.00)A.B.C.D.14.在进行软件可靠性测试时,人们关注的核心是_。A缺陷 B失效 C故障 D错误(分数:2.00)A.B.C.D.15.下列关于面向对象软件测试的说法中,正确的是_。A在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试B在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试C假设类 B 是类 A 的子类,如果类 A 已进行了充分的测试,在测试类 B 时不必测试任何类 B 继承类 A 的成员方法D对于一棵继承树上的多个类,只有处于叶节点的类需要测试(分数:2.00)A.
6、B.C.D.16.以下关于面向对象软件测试的说法中,正确的是_。A面向对象软件的白盒测试不能不加改变地照搬传统软件的白盒测试准则B对于一个类的测试,一个测试用例只能包含对该类的一个方法的一次调用C面向对象软件测试不考虑对一个类的单个方法的测试D面向对象测试不必考虑对继承关系的测试(分数:2.00)A.B.C.D.17.面向对象软件的测试过程一般可分为面向对象分析的测试、面向对象设计的测试、面向对象编程的测试和_。A面向对象的单元测试 B面向对象的集成测试C面向对象的系统测试 D面向对象的验收测试(分数:2.00)A.B.C.D.18.下列关于面向对象软件测试模型的说法中,正确的是_。A面向对象
7、软件的每一个测试活动,时间上都是连贯的B面向对象软件的各个测试活动之间都是首尾相接的C面向对象软件的测试任务必须遵循严格的执行顺序D面向对象软件的测试活动通常是迭代与渐进的(分数:2.00)A.B.C.D.19.下列_不属于面向对象单元测试考虑的范畴。A成员方法的测试 B类的测试C类树的测试 D多个相互协作的类树的测试(分数:2.00)A.B.C.D.20.下列测试中不属于类层次测试的是_。A模态类测试 B非模态类测试C递归函数测试 D不变式边界测试(分数:2.00)A.B.C.D.21.下列关于面向对象集成测试的说法中,正确的是_。A大突击集成是面向对象集成测试最常用且最有效的方法B自底向上
8、集成和自顶向下集成都需要为集成测试开发大量代码C协作集成在任何情况下都优于自底向上集成和自顶向下集成D高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试(分数:2.00)A.B.C.D.22.以下关于面向对象程序集成测试的说法中,正确的是_。A大突击集成是一种综合运用自底向上集成与自顶向下集成的测试策略B自底向上集成测试比自顶向下集成测试需要开发的代码更多C协作集成是指可以协作完成特定系统功能的类集成在一起进行测试D与自底向上集成和自顶向下集成相比,基干集成是一种更充分的集成测试策略(分数:2.00)A.B.C.D.23.针对类间连接的测试主要包括类关联的多重性测试、受控异常测试、往返
9、场景测试和_。A等价类划分测试 B基于判定表的测试C不变式边界测试 D模态机测试(分数:2.00)A.B.C.D.24.以下关于类间连接测试的说法中,正确的是_。A类关联的多重性测试只关注与连接有关的增、删、改操作,而不关心连接的实现方式B模态机测试可以把多个类看做一个遵循全局状态转换图的大模态类C受控异常测试在任何情况下均无须编写异常模拟程序D往返场景测试只能基于代码而不能基于顺序图(分数:2.00)A.B.C.D.25.下列测试中不属于系统测试的是_。A功能测试 B性能测试C标准符合性测试 D模态机测试(分数:2.00)A.B.C.D.26.下列特征中不属于面向对象软件的是_。A封装性 B
10、继承性 C多态性 D结构性(分数:2.00)A.B.C.D.27.下列关于面向对象软件测试活动的说法中,错误的是_。A面向对象软件的测试活动通常是迭代与渐进的B测试活动只是一系列相关测试任务的集合,时间上并不一定连贯C测试活动之间应该首尾相接D测试活动可能发生在系统渐进的每一阶段(分数:2.00)A.B.C.D.28.下列关于面向对象软件集成测试的说法中,正确的是_。A大突击集成是一种渐增式集成B自底向上集成不必编写驱动代码C自顶向下集成不必编写测试桩代码D夹层式集成可以从底层和顶层同时开始向上和向下集成(分数:2.00)A.B.C.D.29.C/S(客户机服务器)集成的优点不包括_。A避免了
11、一次性集成的风险B有利于软件扩充和构件复用C测试可控制和可重复D测试驱动代码和测试桩代码的成本较低(分数:2.00)A.B.C.D.30.面向对象软件单元测试中,模态类测试基于_生成测试用例。A状态图 B用例图 C协作图 D对象图(分数:2.00)A.B.C.D.31._增强了面向对象软件的灵活性,却同时使得程序内“同一”函数的行为复杂化,测试时不得不考虑对于不同类型参数具体执行的代码和产生的行为。A封装性 B继承性 C多态性 D抽象性(分数:2.00)A.B.C.D.32._降低了面向对象软件的数据被任意修改和读/写的可能性,减少了传统测试中对数据非法操作的测试。A封装性 B继承性 C多态性
12、 D重用性(分数:2.00)A.B.C.D.33._提高了面向对象软件程序代码的重用性,但也加大了错误传播的概率。A封装性 B继承性 C多态性 D虚拟性(分数:2.00)A.B.C.D.34.面向对象软件的单元测试中,测试的焦点从过程构件(模块)移向了_。A方法 B属性 C类 D关系(分数:2.00)A.B.C.D.35.面向对象软件的单元测试中,测试的视角从程序模型扩大到_。A分析模型 B设计模型C分析和设计模型 D用户模型(分数:2.00)A.B.C.D.36.面向对象设计软件的测试活动不包括_。A设计模型本身的测试B设计模型与分析模型的一致性测试C设计模型对编程的支持D设计模型是否满足用
13、户需求(分数:2.00)A.B.C.D.二、论述题(总题数:4,分数:40.00)37.列举常用的性能测试工具(最少 3 个)。(分数:10.00)_38.简述类树层次的测试。(分数:10.00)_39.简述分布式集成。(分数:10.00)_40.论述针对类间连接的测试。(分数:10.00)_软件性能测试和可靠性测试、面向对象软件的测试答案解析(总分:112.00,做题时间:90 分钟)一、选择题(总题数:36,分数:72.00)1.以下关于性能测试的说法中,正确的是_。A软件性能与该软件的实现算法无关B软件的吞吐量越大,其平均响应时间越短C给软件的可用资源越少,其平均响应时间越短D对于同一个
14、网站,其支持的同时发送请求的用户数越大,该网站的性能越好(分数:2.00)A.B.C.D. 解析:解析 软件实现的算法是软件的功能性需求的实现,它直接影响系统处理请求的速度,很多情况对软件性能的改善都是通过算法的改进实现的,因此 A 是不正确的;软件的吞吐量与响应时间没有线性关系,加入并发数的因素,这种约束关系才能建立,因此 B 不完全正确;软件的可用资源少意味着其性能下降,平均响应时间应该增加,C 不正确;网站能够支持的并发数大表明其处理能力更强,也就意味着网站的性能越好,因此 D 是正确的。2.以下_属于软件性能测试的范畴。A接口测试 B压力测试 C单元测试 D易用性测试(分数:2.00)
15、A.B. C.D.解析:解析 与性能测试相关的范畴包括以下测试类型:性能测试(Performance Festing)、并发测试(Concurrency Testing)、压力测试(Stress Testing)、可靠性测试(Reliability Testing)、负载测试(Load Testing)、配置测试(Configuration Testing)和失效恢复测试(Recovery Testing)。3.在软件性能测试中,_不是软件性能的指标。A响应时间 B吞吐量 C资源利用率 D并发进程数(分数:2.00)A.B.C.D. 解析:解析 性能测试采用以下指标进行度量:可用性、响应时间、
16、吞吐量、资源利用率、并发用户数,并发进程数统计的是单机性能指标,不属于软件测试范畴。4.以下分析技术中,_不属于基于性能计数器的分析技术。A内存分析 B处理器分析 C通信中断分析 D进程分析(分数:2.00)A.B.C. D.解析:解析 计数器分析重点观察的参数包括内存、处理器、磁盘 I/O、进程,其目的是为了定位资源瓶颈。通信中断分析属于故障排查和错误分析,不属于基于性能计数器的分析技术。5.下列关于软件性能测试的说法中,正确的是_。A性能测试的目的不是为了发现软件缺陷B压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C性能测试通常要对测试的结果进行分析才
17、能获得测试结论D在性能测试下降的曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处(分数:2.00)A.B.C. D.解析:解析 性能测试的三大目的包括发现缺陷、性能调优和能力检验与规划,发现软件缺陷是性能测试的目的之一,因此答案 A 不正确;压力测试与负载测试的目的并不相同,答案 B 不正确;在性能测试通用模型(PTGM)所描述的步骤中,结果分析是必要步骤之一,答案 C 正确;平坦区和轻微下降区交界处的用户数量定义为最大建议用户数,因此答案 D 不正确。6.以下关于软件可靠性测试的说法,正确的是_。A定义软件运行剖面是软件可靠性测试的重要步骤B软件可靠性测试使用的测试用例应
18、该满足分支覆盖C软件可靠性测试可以在单元测试中实施D软件可靠性预测模型的作用是指导软件可靠性测试中测试用例的生成(分数:2.00)A. B.C.D.解析:解析 软件可靠性测试包括 5 个步骤:可靠性目标的确定、运行剖面的开发、测试的计划与用例设计、测试执行和测试结果的分析与反馈,因此答案 A 正确;软件可靠性测试实施的过程中只需要根据运行剖面的要求选择适当的测试用例集,不需要满足分支覆盖的要求,答案 B 不正确;软件可靠性测试必须在系统测试阶段或以后进行,答案 C 也不正确;可靠性预测的目的是根据可靠性测试时揭示的故障情况来预测软件在正式运行时的故障和失效情况,而可靠性测试用例的生成是在运行剖
19、面定义的指导下完成的,答案 D 不正确。7.下列关于软件可靠性测试的说法中,错误的是_。A发现软件缺陷是软件可靠性测试的主要目的B软件可靠性测试通常用于有可靠性要求的软件C在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D可靠性测试通常要对测试结果进行分析才能获得测试结论(分数:2.00)A. B.C.D.解析:解析 与其他软件测试不同的是,软件可靠性测试的目的不在于通过测试揭示软件中的缺陷并通过修改这些缺陷来提高软件可靠性,而是通过受控的软件测试过程来预测软件在实际运行中的可靠性,因此答案 A 说法不对;可靠性测试的依据是系统规格说明书,如果没有相应要求则不必进行可靠性
20、测试,答案 B 说法正确;软件运行剖面对测试用例设计与执行有指导意义,答案 C 说法正确;可靠性测试结果分析是其执行的主要步骤,答案 D 说法正确。8.软件可靠性与硬件可靠性的区别体现在_。A唯一性 B物理退化 C逻辑复杂性 D以上都是(分数:2.00)A.B.C.D. 解析:解析 软件可靠性与硬件可靠性的区别在于,软件可靠性是唯一的,不以物理退化而失效,但软件的逻辑更为复杂,并且版本更新更为频繁。9.软件中一切不好的东西均称做_。A错误 B缺陷 C故障 D失效(分数:2.00)A.B. C.D.解析:解析 缺陷(Defect):指软件中一切不好的东西,它包括软件错误,但比软件错误更广泛。比如
21、,程序设计的可用性不属于错误,但属于缺陷。10.以下_不属于 PTGM 的步骤之一。A测试前期准备 B测试设计与开发C压力产生与调度 D引入测试工具(分数:2.00)A.B.C. D.解析:解析 性能测试通用模型(Performance Testing General Model,PTGM)主要步骤包括:(1)测试前期准备;(2)引入测试工具;(3)制定测试计划;(4)测试设计与开发;(5)测试执行与管理;(6)测试结果分析。11.在进行性能分析时通常会把_的用户数定义为最大建议用户数。A急剧下降区和轻微下降区交界处B平坦区和轻微下降区交界处C轻微下降区和平坦区交界处D急剧下降区和平坦区(分数
22、:2.00)A.B. C.D.解析:解析 通常把平坦区和轻微下降区交界处的用户数量定义为最大建议用户数,也就是系统容量的快照。12.以下_与性能测试无关。A可靠性测试 B失效/恢复测试 C功能测试 D配置测试(分数:2.00)A.B.C. D.解析:解析 功能测试是与性能测试并列的一种测试类型。13.软件可靠性的指标是_。A平均无失效时间 B平均失效时间C失效引起的成本 D失效的严重程度(分数:2.00)A. B.C.D.解析:解析 软件可靠性指标通常采用平均无失效时间(Mean Time to Failure,MTTF),即软件运行后到下一次发生失效的平均时间。14.在进行软件可靠性测试时,
23、人们关注的核心是_。A缺陷 B失效 C故障 D错误(分数:2.00)A.B. C.D.解析:解析 在软件可靠性测试中人们关注的核心是软件失效,特别是如何用已发生的失效预测仍然残留的故障数目和未来可能发生的失效频率。15.下列关于面向对象软件测试的说法中,正确的是_。A在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试B在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试C假设类 B 是类 A 的子类,如果类 A 已进行了充分的测试,在测试类 B 时不必测试任何类 B 继承类 A 的成员方法D对于一棵继承树上的多个类,只有处于叶节点的类需要测试
24、(分数:2.00)A.B. C.D.解析:解析 在面向对象的软件中,由于成员方法对成员变量的依赖性,成员方法的许多功能需要在不同的实例状态下才能展示出来,因此对类的每个成员方法都进行充分的测试并不意味着完成了对该类的充分测试,选项 A 错误。在父类已进行充分测试的情况下,仍需测试子类所继承父类的成员方法,选项 C 错误。对于一棵继承树上的多个类,只测试处于叶节点的类是不充分的,选项 D 错误。在存在多态的情况下,不仅应对静态绑定进行测试,还应对所有可能的动态绑定进行测试,选项 B 正确。16.以下关于面向对象软件测试的说法中,正确的是_。A面向对象软件的白盒测试不能不加改变地照搬传统软件的白盒
25、测试准则B对于一个类的测试,一个测试用例只能包含对该类的一个方法的一次调用C面向对象软件测试不考虑对一个类的单个方法的测试D面向对象测试不必考虑对继承关系的测试(分数:2.00)A. B.C.D.解析:解析 测试面向对象软件时,为了测试类的一个成员方法,需要在调用该方法之前先调用一系列其他方法使其相应的实例达到合适的状态,此时测试用例不仅仅调用一个成员方法,选项 B 错误。虽然在测试面向对象软件时不能简单地对一个类的各个成员方法进行测试,但并不排斥单个方法的测试,选项 C错误。继承是面向对象软件的重要特征,面向对象软件测试当然要考虑对继承关系的测试,选项 D 错误。由于面向对象软件的封装性、继
26、承性与多态性,面向对象软件的测试与传统软件测试的方法有着很大的区别,传统软件的白盒测试准则不能不加改变地照搬到面向对象软件的测试之中,选项 A 正确。17.面向对象软件的测试过程一般可分为面向对象分析的测试、面向对象设计的测试、面向对象编程的测试和_。A面向对象的单元测试 B面向对象的集成测试C面向对象的系统测试 D面向对象的验收测试(分数:2.00)A.B.C. D.解析:解析 面向对象的开发模型突破了传统的瀑布模型,将开发分为面向对象的分析(OOA)、面向对象的设计(OOD)和面向对象的编程(OOP)三个过程。针对这种开发模型,结合传统测试步骤的划分,可以构造出面向对象软件测试的复合模型:
27、从测试活动看,面向对象软件测试可以分为面向对象分析的测试、面向对象设计的测试和面向对象编程的测试;从测试内容看,面向对象软件测试可以分为面向对象的单元测试、面向对象的集成测试和面向对象的系统测试。通常,面向对象的单元测试与集成测试可纳入面向对象编程的测试活动,而面向对象的系统测试可单独作为一个活动。因此,可将面向对象软件测试分为面向对象分析的测试、面向对象设计的测试、面向对象编程的测试和面向对象的系统测试活动。选项 A、B、D 均错误,选项 C 正确。18.下列关于面向对象软件测试模型的说法中,正确的是_。A面向对象软件的每一个测试活动,时间上都是连贯的B面向对象软件的各个测试活动之间都是首尾
28、相接的C面向对象软件的测试任务必须遵循严格的执行顺序D面向对象软件的测试活动通常是迭代与渐进的(分数:2.00)A.B.C.D. 解析:解析 面向对象的软件开发过程通常是一个迭代与渐进的过程,其测试活动也是迭代与渐进的。测试活动实际上只是一系列相关测试任务的集合,时间上并不一定是连贯的。测试活动之间,也是相互交错而非首尾相接的。一般情况下,在系统渐进的每一步,都应循环地执行各个测试活动中的某些任务。也就是说,面向对象软件的测试实际上是一个螺旋式上升的过程。因此,选项 A、B、C 均错误,选项 D 正确。19.下列_不属于面向对象单元测试考虑的范畴。A成员方法的测试 B类的测试C类树的测试 D多
29、个相互协作的类树的测试(分数:2.00)A.B.C.D. 解析:解析 面向对象的软件,“单元”变成了封装的类,甚至是一个类族,单元测试的意义也发生了较大变化。面向对象软件的单元测试包括方法层次的测试、类层次的测试及类树层次的测试,多个相互协作的类树的测试属于面向对象集成测试考虑的范畴。20.下列测试中不属于类层次测试的是_。A模态类测试 B非模态类测试C递归函数测试 D不变式边界测试(分数:2.00)A.B.C. D.解析:解析 面向对象软件很难对单个成员方法进行充分的测试,具有良好封装性的类成为单元测试的基本对象。类层次的测试主要包括不变式边界测试、模态类测试与非模态类测试,递归函数测试属于
30、方法层次的测试。21.下列关于面向对象集成测试的说法中,正确的是_。A大突击集成是面向对象集成测试最常用且最有效的方法B自底向上集成和自顶向下集成都需要为集成测试开发大量代码C协作集成在任何情况下都优于自底向上集成和自顶向下集成D高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试(分数:2.00)A.B. C.D.解析:解析 大突击集成就是将系统的所有组成成分一次集成在一起进行测试,只有在整个软件的可靠性有了基本保障时才可以考虑大突击集成测试,选项 A 错误。自底向上集成需要开发大量的测试驱动代码,自顶向下集成需要开发大量的测试桩代码,选项 B 正确。与自底向上集成和自顶向下集成相比,
31、在类间主要协作关系可以明确辨识而且每个功能只需要少数类协作即可完成的前提下,协作集成具有相当的优势,而当协作关系比较复杂时,协作集成的测试通常是不充分和不完备的,选项 C 错误。高频集成是指在软件开发过程中频繁地将新开发出来的代码与已经通过测试的代码集成测试,一般采用冒烟测试的方式,但并不是以自底向上集成为基础的,选项 D 错误。22.以下关于面向对象程序集成测试的说法中,正确的是_。A大突击集成是一种综合运用自底向上集成与自顶向下集成的测试策略B自底向上集成测试比自顶向下集成测试需要开发的代码更多C协作集成是指可以协作完成特定系统功能的类集成在一起进行测试D与自底向上集成和自顶向下集成相比,
32、基干集成是一种更充分的集成测试策略(分数:2.00)A.B.C. D.解析:解析 大突击集成是一种非渐增式集成,而自底向上集成与自顶向下集成均为渐增式集成,选项A 错误。自底向上集成需要开发大量的测试驱动代码,自顶向下集成需要开发大量的测试桩代码,两者难于比较,选项 B 错误。协作集成是指在集成测试时针对系统完成的功能,将可以相互协作完成特定系统功能的类集成在一起进行测试,选项 C 正确。基干集成集中了大突击集成、自底向上集成和自顶向下集成的优点,而对三者的缺点也进行了控制,但由于局部采用了大突击集成策略,导致某些接口测试不充分,选项 D 错误。23.针对类间连接的测试主要包括类关联的多重性测
33、试、受控异常测试、往返场景测试和_。A等价类划分测试 B基于判定表的测试C不变式边界测试 D模态机测试(分数:2.00)A.B.C.D. 解析:解析 针对类间连接的测试主要包括类关联的多重性测试、受控异常测试、往返场景测试和模态机测试。等价类划分测试和基于判定表的测试属于方法层次的测试,不变式边界测试属于类层次的测试。选项 A、B、C 均错误,选项 D 正确。24.以下关于类间连接测试的说法中,正确的是_。A类关联的多重性测试只关注与连接有关的增、删、改操作,而不关心连接的实现方式B模态机测试可以把多个类看做一个遵循全局状态转换图的大模态类C受控异常测试在任何情况下均无须编写异常模拟程序D往返
34、场景测试只能基于代码而不能基于顺序图(分数:2.00)A.B. C.D.解析:解析 类关联的多重性测试关注的重点是与连接关系有关的增删改操作,但也应注意连接的实现方式,因为特定的实现会隐含特定的多重性,选项 A 错误。受控异常测试有时需要编写异常模拟程序用来产生这些异常,以便测试到异常的处理代码,选项 C 错误。往返场景测试可以不基于代码而基于顺序图,从而使测试人员在设计测试用例时更关注类间的交互关系和控制结构,选项 D 错误。模态机测试实际上是把多个类看做一个大的模态类,而且该类遵循一个全局的状态转换图,选项 B 正确。25.下列测试中不属于系统测试的是_。A功能测试 B性能测试C标准符合性
35、测试 D模态机测试(分数:2.00)A.B.C.D. 解析:解析 系统测试通常包括功能测试、性能测试、标准符合性测试、兼容性测试、易用性测试和文档测试等。26.下列特征中不属于面向对象软件的是_。A封装性 B继承性 C多态性 D结构性(分数:2.00)A.B.C.D. 解析:解析 面向对象软件具有 3 个明显特征:封装性、继承性与多态性。27.下列关于面向对象软件测试活动的说法中,错误的是_。A面向对象软件的测试活动通常是迭代与渐进的B测试活动只是一系列相关测试任务的集合,时间上并不一定连贯C测试活动之间应该首尾相接D测试活动可能发生在系统渐进的每一阶段(分数:2.00)A.B.C. D.解析
36、:解析 面向对象的软件开发过程通常是一个迭代与渐进的过程,其测试活动也是迭代与渐进的。测试活动实际上只是一系列相关测试任务的集合,时间上并不一定是连贯的。测试活动之间,也是相互交错而非首尾相接的。一般情况下,在系统渐进的每一步,都应循环地执行各个测试活动中的某些任务。也就是说,面向对象软件的测试实际上是一个螺旋式上升的过程。28.下列关于面向对象软件集成测试的说法中,正确的是_。A大突击集成是一种渐增式集成B自底向上集成不必编写驱动代码C自顶向下集成不必编写测试桩代码D夹层式集成可以从底层和顶层同时开始向上和向下集成(分数:2.00)A.B.C.D. 解析:解析 夹层式集成在集成时可从底层或顶
37、层开始,每次向上或向下集成新的一层:也可以从底层和顶层同时开始向上和向下集成,最后集成某一中间层。29.C/S(客户机服务器)集成的优点不包括_。A避免了一次性集成的风险B有利于软件扩充和构件复用C测试可控制和可重复D测试驱动代码和测试桩代码的成本较低(分数:2.00)A.B.C.D. 解析:解析 C/S 集成的优点:(1)避免了一次性集成的风险;(2)集成次序没有大的约束,可结合风险或功能优先级决定集成次序;(3)有利于软件扩充和构件复用;(4)测试可控制和可重复。30.面向对象软件单元测试中,模态类测试基于_生成测试用例。A状态图 B用例图 C协作图 D对象图(分数:2.00)A. B.C
38、.D.解析:解析 模态类测试只针对一个类,该类遵循一个全局的状态转换图。31._增强了面向对象软件的灵活性,却同时使得程序内“同一”函数的行为复杂化,测试时不得不考虑对于不同类型参数具体执行的代码和产生的行为。A封装性 B继承性 C多态性 D抽象性(分数:2.00)A.B.C. D.解析:解析 多态性增强了面向对象软件的灵活性,却同时使得程序内“同一”函数的行为复杂化,测试时不得不考虑对于不同类型参数具体执行的代码和产生的行为。32._降低了面向对象软件的数据被任意修改和读/写的可能性,减少了传统测试中对数据非法操作的测试。A封装性 B继承性 C多态性 D重用性(分数:2.00)A. B.C.
39、D.解析:解析 封装性是对数据的隐藏,外界只能通过对象的操作来访问或修改对象的数据,从而降低了数据被任意修改和读/写的可能性,减少了传统测试中对数据非法操作的测试。33._提高了面向对象软件程序代码的重用性,但也加大了错误传播的概率。A封装性 B继承性 C多态性 D虚拟性(分数:2.00)A.B. C.D.解析:解析 继承性使得程序代码的重用性显著提高,但也加大了错误传播的概率。34.面向对象软件的单元测试中,测试的焦点从过程构件(模块)移向了_。A方法 B属性 C类 D关系(分数:2.00)A.B.C. D.解析:解析 面向对象软件测试的总体目标是以最小的工作量发现最多的错误,与传统软件测试
40、的目标是一致的,但面向对象软件测试的策略与传统软件测试有很大不同。其一,测试的焦点从过程构件(模块)移向了类;其二,测试的视角扩大到了分析和设计模型。35.面向对象软件的单元测试中,测试的视角从程序模型扩大到_。A分析模型 B设计模型C分析和设计模型 D用户模型(分数:2.00)A.B.C. D.解析:解析 面向对象软件测试的总体目标是以最小的工作量发现最多的错误,与传统软件测试的目标是一致的,但面向对象软件测试的策略与传统软件测试有很大不同。其一,测试的焦点从过程构件(模块)移向了类:其二,测试的视角扩大到了分析和设计模型。36.面向对象设计软件的测试活动不包括_。A设计模型本身的测试B设计
41、模型与分析模型的一致性测试C设计模型对编程的支持D设计模型是否满足用户需求(分数:2.00)A.B.C.D. 解析:解析 对于一般的设计模型,可以从以下几方面测试:(1)设计模型本身的测试;(2)设计模型与分析模型的一致性测试;(3)设计模型对编程的支持。二、论述题(总题数:4,分数:40.00)37.列举常用的性能测试工具(最少 3 个)。(分数:10.00)_正确答案:(在性能测试中会用到的工具有:HPs LoadRunner、JMeter、OpenSTA、WebLoad、SilkPerformer 及 IBM Rational Performance Tester 等。)解析:38.简述
42、类树层次的测试。(分数:10.00)_正确答案:(面向对象软件的继承性与多态性使得子类的测试不仅要考虑其自身的成员变量与成员方法,还应考虑其父类和祖先类的影响。类树层次的测试主要包括:(1)多态服务测试。在对子类进行测试时,从其父类测试用例集(如果已存在)中选取涉及多态方法的测试用例,并把子类的实例当做父类的实例进行测试。(2)展平测试。将子类自身定义的成员方法和成员变量,以及从父类和祖先类继承来的成员方法和成员变量组成一个新类,并对其进行测试。)解析:39.简述分布式集成。(分数:10.00)_正确答案:(对于没有专门的服务器层、由许多并发运行且没有专门控制轨迹的构件所组成的分布式系统,可采
43、用分布式集成测试策略,用于测试松耦合的同级构件的交互关系。常用的集成顺序有以下几种:(1)风险驱动。(2)反风险驱动。(3)依赖性驱动。(4)优先级驱动。分布式集成的优缺点:类似于 C/S 集成。分布式集成的适用范围:分布式软件系统。)解析:40.论述针对类间连接的测试。(分数:10.00)_正确答案:(集成策略确定之后,还需关注如何充分测试类间的各种连接。(1)类关联的多重性测试:在面向对象的软件中,类间的关联关系存在多重性方面的限制,多重性测试关注的重点是与连接关系有关的增、删、改操作,通常可考虑可能会导致多重性限制被破坏的调用序列构成的测试用例。测试时还应注意连接的实现方式,因为特定的实
44、现会隐含特定的多重性。(2)受控异常测试:面向对象的软件允许出现异常情况时控制流跳转到特定的位置。由于异常的抛出和异常的接收可以被放在不同的类中,实际上形成了类间隐含的控制依赖关系,测试时需要尽可能地覆盖这些隐式的依赖关系。有时需要编写异常模拟程序用来产生这些异常,以便测试到异常的处理代码。(3)往返场景测试:在面向对象的软件中,一段代码可能用于多个场景,充分的测试应该保证该段代码在每个场景的测试中都得到完全的覆盖。往返场景测试就是把与实现特定场景相联系的代码抽取出来,针对这些代码设计具有完全覆盖的测试用例集。往返场景测试可以不基于代码而基于顺序图,从而使测试人员在设计测试用例时更关注类间的交互关系和控制结构。(4)模态机测试:模态机测试类似于类层次的模态类测试,但模态类测试只针对一个类,而模态机测试则针对多个类,实际上是把多个类看做一个大的模态类,而且该类遵循一个全局的状态转换图。)解析: