D.组合覆盖要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合
最多出现一次 【答案】D 【解析】
白盒测试也称为结构测试,主要用于软件单元测试阶段,测试人员按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确丁作。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。
控制流测试根据程序的内部逻辑结构设计测试用例,常用的技术是逻辑覆盖。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。
判定覆盖也称为分支覆盖,它是指不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。
条件覆盖是指不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。
条件/判定覆盖同时满足判定覆盖和条件覆盖。它的含义是选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。
条件组合覆盖是指选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。
修正的条件/判定覆盖。需要足够的测试用例来确定各个条件能够影响到包含的判定结果。
路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路栏都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。
以下关于面向对象软件测试的叙述中,正确的是(39)。
(39)A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试
B.存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测
试
C.假设类B是类A的子类,如果类A已经进行了充分的测试,那么在测试类B时不
必测试任何类B继承自类A的成员方法
D.对于一棵继承树上的多个类,只有处于叶子节点的类需要测试
【答案】B 【解析】
面向对象系统的测试目标与传统信息系统的测试目标是一致的,但面向对象系统的测试
策略与传统结构化系统的测试策略有很大的不同,这主要体现在两个方面,分别是测试的焦点从模块移向了类,以及测试的视角扩大到了分析和设计模型。
与传统的结构化系统相比,面向对象系统具有三个明显特征,即封装性、继承性与多态性。封装性决定了面向对象系统的测试必须考虑到信息隐蔽原则对测试的影响,以及对象状态与类的测试序列,因此在测试一个类时,仅对该类的每个方法进行测试是不够的;继承性决定了面向对象系统的测试必须考虑到继承对测试充分性的影响,以及误用引起的错误;多态性决定了面向对象系统的测试必须考虑到动态绑定对测试充分性的影响、抽象类的测试以及误用对测试的影响。
软件系统架构是关于软件系统的结构、(40)和属性的高级抽象。在描述阶段,主要描述直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件的(41)。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。软件系统架构不仅指定了软件系统的组织和(42)结构,而且显示了系统需求和组件之间的对应关系,包括设计决策的基本方法和基本原理。
(40)A.行为
B.组织
C.性能
D.功能 D.功能依赖 D.数据
(41)A.交互关系 (42)A.进程 【答案】A A B
B.实现关系 B.拓扑
C.数据依赖 C.处理
【解析】本题主要考查软件系统架构的基础知识。
软件系统架构是关于软件系统的结构、行为和属性的高级抽象。在描述阶段,主要描述直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件的交互关系。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。软件系统架构不仅指定了软件系统的组织和拓扑结构,而且显示了系统需求和组件之间的对应关系,包
括设计决策的基本方法和基本原理。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构(43).
(43)A.描述 【答案】C
【解析】本题主要考查软件架构风格的定义。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构约束。
以下叙述,(44)不是软件架构的主要作用。
(44)A.在设计变更相对容易的阶段,考虑系统结构的可选方案
B.便于技术人员与非技术人员就软件设计进行交互 C.展现软件的结构、属性与内部交互关系
D.表达系统是否满足用户的功能性需求
B.组织
C.约束
D.接口
【答案】D
【解析】本题主要考查软件架构基础知识。
软件架构能够在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性与内部交互关系。但是软件架构与用户对系统的功能性需求没有直接的对应关系。
特定领域软件架构(Domain Specific Software Architecture,DSSA)是在一个特定应用领域中,为一组应用提供组织结构参考的标准软件体系结构。DSSA通常是一个具有三个层次的系统模型,包括(45)环境、领域特定应用开发环境和应用执行环境,其中(46)主要在领域特定应用开发环境中工作。
(45)A.领域需求 (46)A.操作员 【答案】B C
【解析】本题主要考查特定领域软件架构的基础知识。
特定领域软件架构(Domain Specific Software Architecture,DSSA)是在一个特定应
B.领域开发 B.领域架构师
C.领域执行 C.应用工程师
D.领域应用 D.程序员
用领域中,为一组应用提供组织结构参考的标准软件体系结构。DSSA通常是一个具有三个层次的系统模型,包括领域开发环境、领域特定应用开发环境和应用执行环境,其中应用工程师主要在领域特定应用开发环境中工作。
“编译器”是一种非常重要的基础软件,其核心功能是对源代码形态的单个或一组源程序依次进行预处理、词法分析、语法分析、语义分析、代码生成、代码优化等处理,最终生成目标机器的可执行代码。考虑以下与编译器相关的软件架构设计场景:
传统的编译器设计中,上述处理过程都以独立功能模块的形式存在,程序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用(47)架构风格比较合适。
随着编译、链接、调试、执行等开发过程的一体化趋势发展,集成开发环境(IDE)随之出现。IDE集成了编译器、连接器、调试器等多种工具,支持代码的增量修改与处理,能够实现不同工具之间的信息交互,覆盖整个软件开发生命周期。针对这种需求,IDE采用(48)架构风格比较合适。IDE强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,针对这种需求,通常采用(49)架构风格比较合适。
某公司己经开发了一款针对某种嵌入式操作系统专用编程语言的IDE,随着一种新的嵌入式操作系统上市并迅速占领市场,公司决定对IDE进行适应性改造,支持釆用现有编程语言进行编程,生成符合新操作系统要求的运行代码,并能够在现有操作系统上模拟出新操作系统的运行环境,以支持代码调试工作。针对上述要求,为了使IDE能够生成符合新操作系统要求的运行代码,采用基于(50)的架构设计策略比较合适;为了模拟新操作系统的运行环境,通常采用(51)架构风格比较合适。
(47)A.管道一过滤器 (48)A.规则引擎 (49)A.隐式调用 (50)A.代理
B.顺序批处理 B.解释器
C.过程控制 C.数据共享
D.独立进程 D.黑板 D.层次结构 D.模拟 D.虚拟机
B.显式调用 B.适配
C.主程序一子程序 C.包装
(51)A.隐式调用 【答案】B C A B D
B.仓库结构 C.基于规则
【解析】本题主要考查软件架构风格的理解和掌握。
根据题干描述,传统的编译器设计中,编译处理过程都以独立功能模块的形弍存在,程
序源代码作为一个整体,依次在不同模块中进行传递,最终完成编译过程。针对这种设计思路,传统的编译器采用顺序批处理架构风格比较合适,因为在顺序批处理架构风格中,数据以整体的方式在不同的处理模块之间传递,符合题目要求。
集成开发环境(IDE)需要面对不同的数据结构,不同的数据类型与形态,在这种以数据为核心的系统中,采用数据共享机制显然是最为合适的。IDE强调交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现,这一需求的核心在于根据事件进行动作响应,采用隐式调用的架构风格最为合适。 根据题干描述,公司需要对IDE进行适应性改造,支持采用现有编程语言进行编程,生成符合新操作系统要求的运行代码,并能够在现有操作系统上模拟出新操作系统的运行环境,以支持代码调试工作。针对上述要求,为了使IDE能够生成符合新操作系统要求的运行代码,应该是现有操作系统对新系统的一个适配过程,因此应该采用适配器架构设计策略比较合适,模拟新操作系统的运行模式通常会采用虚拟机架构风格。
某公司采用基于架构的软件设计(Architecture-Based Software Design,ABSD)方法进行软件设计与开发。ABSD方法有三个基础,分别是对系统进行功能分解、采用(52)实现质量属性与商业需求、采用软件模板设计软件结构。ABSD方法主要包括架构需求等6个主要活动,其中(53)活动的目标是标识潜在的风险,及早发现架构设计中的缺陷和错误;(54)活动针对用户的需求变化,修改应用架构,满足新的需求。
小王是该公司的一位新任架构师,在某项目中主要负责架构文档化方面的工作。小王(55)的做法不符合架构文档化的原则。架构文档化的主要输出结果是架构规格说明书和(56)。
(52)A.架构风格 (53)A.架构设计 (54)A.架构设计
B.设计模式 B.架构实现 B.架构实现
C.架构策略 C.架构复审 C.架构复审
D.架构描述 D.架构演化 D.架构演化
(55)A.从使用者的角度书写文档
C.将文档分发给相关人员
B.随时保证文档都是最新的
D.针对不同背景的人员书写文档的方式不同
B.架构实现说明书 D.架构评审说明书
(56)A.架构需求说明书
C.架构质量说明书
【答案】A C D B C
【解析】本题主要考查采用基于架构的软件设计的基础知识与应用。
基于架构的软件设计(Architecture-Based Software Design,ABSD)方法有三个基础,