软件工程12道复习题(2013~20142)
- 格式:doc
- 大小:643.03 KB
- 文档页数:10
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
第三章软件工程基础习题部分一、选择题(1) 软件工程的出现是由于______。
A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展(2) 下列描述中正确的是______。
A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题(3) 下列描述中正确的是______。
A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合(4) 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做______。
A)软件投机B)软件危机C)软件工程D)软件产生(5) 软件开发的结构化生命周期方法将软件生命周期划分成______。
A. 定义、开发、运行维护B. 设计阶段、编程阶段、测试阶段C. 总体设计、详细设计、编程调试D. 需求分析、功能定义、系统设计(6) 需求分析阶段的任务是确定______。
A. 软件开发方法B. 软件开发工具C. 软件开发费用D. 软件系统功能(9) 需求分析中,开发人员要从用户那里了解______。
A)软件做什么B)用户使用界面C)输入的信息D)软件的规模(10) 软件生命周期中所花费用最多的阶段是______。
A)详细设计B)软件编码C)软件测试D)软件维护(11) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A. 阶段性报告B. 需求评审C. 总结D. 都不正确(12) 下面不属于软件工程的3个要素的是______。
A. 工具B. 过程C. 方法D. 环境(13) 下面不属于软件设计原则的是______。
A. 抽象B. 模块化C. 自底向上D. 信息隐蔽(16) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
《软件工程》期末复习题及答案一、单项选择题(本大题共60小题,在每小题的四个备选答案中,选出一个正确答案,并将正确答案填涂在答题卡上)1. 软件危机产生的主要原因是 A 。
A.软件日益庞大B.不能与用户良好地沟通C.开发人员编写程序能力差D.没有适应的开发模型2.软件工程的发展不包括以下那个阶段 B 。
A.传统软件工程阶段B.自主化开发阶段C.过程软件工程阶段D.构件软件工程阶段3. 现代软件工程研究的内容不包括 D 。
A.软件开发模型B.软件开发方法C.软件支持过程D.软件开发质量4.以下哪个软件生存周期模型是一种风险驱动的模型 C 。
A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型5.软件的开发方法不包括 C 。
A.结构化开发方法B.面向对象开发方法C.面向管理的开发方法D. 面向数据结构的开发方法6.软件生存周期中,准确地确定软件系统必须做什么的阶段是 B 。
A.可行性分析和项目开发计划 B.需求分析 C.概要设计D.详细设计7. 需求分析中开发人员要从用户那里了解 A 。
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模8. 结构化分析建立功能模型的工具是 A 。
A.DFDB.判定树/判定表C.SCD.结构化语言9. 数据词典是对数据定义信息的集合,它所定义的对象都包含于 B 。
A.数据流图B.程序框图C.软件结构D.方框图10.用于描述结构化分析中数据流加工逻辑的是 A 。
A.判定 B.ER图 C.状态 D.用例图11.下列几种耦合类型,耦合性最高的是 A 。
A.公共耦 B.控制耦合 C.标记耦 D.数据耦合12. 通信内聚是指 B 。
A. 把需要同时执行的动作组合在一起形成的模块 B各处理使用相同的输入数据或者产生相同的输出数据C一个模块中各个处理元素都密切相关于同一功能且必须顺序执行 D模块内所有元素共同完成一个功能,缺一不可13.模块 B 定义为受该模块内一个判定影响的所有模块集合。
《软件工程》复习题一、单项选择题1.螺旋模型是一种将瀑布模型和 _________ 结合起来的软件开发模型。
( )A. 增量模型B.专家系统C. 喷泉模型D. 变换模型2.UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。
消息序列可用两种图来表示,分别是(D)A.状态图和顺序图B.活动图和协作图C.状态图和活动图D.顺序图和协作图3.()模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
A.瀑布模型 B. 原型模型 C. 增量模型 D. 螺旋模型4.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象5.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析B.黑盒法C.路径覆盖D.边界值分析6.类通常可以分为实体类,()和边界类A.父类 B. 子类 C. 控制类 D. 祖先类7.UML中有四种关系是:依赖,泛化,关联和()A. 继承B. 合作C. 实现D. 抽象8.用白盒法技术设计测试用例的方法包括()A .错误推测B .因果图C .基本路径测试D .边界值分析9.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护10.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( )A. 前者属于静态测试,后者属于动态测试B. 前者属于动态测试,后者属于静态测试C. 都属于静态测试D. 都属于动态测试11.程序的三种基本控制结构的共同特点是( )A. 只能用来描述简单程序B.不能嵌套使用C.单入口,单出口D.仅用于自动控制系统12.下面哪个不是UML中的静态视图()A.状态图 B. 用例图 C. 对象图 D. 类图13.()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A. 泳道B. 分叉汇合C. 分支D. 转移14.软件生存期包括计划,需求分析和定义,(),编码,软件测试和运行维护。
软件工程复习题及答案软件工程复习题(一)一、选择题1、瀑布模型本质上是一种()A、线性顺序模型B、顺序迭代模型C、线性迭代模型D、及早见产品模型2、使用程序设计的控制结构导出测试用例的测试方法是()A、黑盒测试B、白盒测试C、边界测试D、系统测试3、软件结构图的形态特征能反映程序重用率的是()A、深度B、宽度C、扇入D、扇出4、软件结构图中,模块框之间若有直线连接,表示它们之间存在()A、调用关系B、组成关系C、链接关系D、顺序执行关系5、需求分析最终结果是产生()A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告6、快速原型模型的主要特点之一是( )A、开发完毕才见到产品B、及早提供全部完整的软件产品C、开发完毕后才见到工作软件D、及早提供工作软件7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是( )A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法8、软件详细设计主要采用的方法是( )A、模块设计B、结构化设计C、PDL语言D、结构化程序设计9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A、.软件工程B、软件周期C、软件危机D、软件产生10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作()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、CASE工具的支持B、如何开发演化型模型C、项目主管的支持D、开发人员的素质16、程序流程图(框图)中的箭头代表( )。
一、填空题(每小题1分,共15分)1. 衡量模块的独立性的两个标准是内聚、耦合。
2.软件是由文档、程序两个方面组成。
3. 在软件开发时,按照工程学的角度可分为:可行性研究、需求分析、:概要设计、详细设计、编码、测试和维护过程。
4. 软件的内聚性越高、软件的独立性越强,软件的耦合性越高、软件的独立性越弱。
5. 如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、机器人视觉等人工智能领域内的系统,应选择事件处理软件、人工智能软件。
6. 面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
7.软件测试分为单元测试、综合测试、确认测试、系统测试四个阶段8.软件详细设计阶段采用的工具有程序流程图,盒图(N -S图),PAD图,判定表,判定树,过程设计语言(PDL)。
9.程序中的注释分为序言性注释和功能性注释两类。
10.软件项目工程包括软件开发和软件管理两大部分工作。
11.软件维护的类型由:完善性维护、改正性维护、适应性维护和预防性维护四大部分构成。
12.对象模型的五个层次对应着面向对象分析过程中的五项主要活动:找出类与对象,主题层,结构层,属性层,服务层。
13.数据流图中带有箭头的线段表示的是数据流流动的方向、而程序流程图中带有箭头的线段表示的是控制流流动的方向。
14. 在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是程序流程图/程序框图。
15. 软件成分的重用可以进一步划分为功能抽象、数据抽象和过程抽象三个级别。
16.软件开发模型:瀑布模型,增量模型,快速原型模型,螺旋模型,喷泉模型,智能模型。
二、选择题(每小题1分,共10分)1. 在形式化方法中,可以表示非功能性需求(诸如时间需求),但不能很好地表示并发性的方法有 (A) 。
A. Z语言B. Petri网C. 有穷状态机 C. 时序逻辑2.软件开发的生命周期中,编码阶段主要完成的工作是(D )。
2013软考试题及答案1. 单项选择题1.1 以下哪个选项是面向对象编程的核心概念?A. 封装B. 继承C. 多态D. 抽象答案:A1.2 在软件开发过程中,需求分析阶段的主要任务是什么?A. 编写代码B. 设计数据库C. 确定软件需求D. 测试软件答案:C1.3 以下哪个不是敏捷开发的原则?A. 客户合作高于合同谈判B. 可工作的软件高于详尽的文档C. 遵循严格的开发流程D. 响应变化高于遵循计划答案:C2. 多项选择题2.1 以下哪些是软件测试的类型?A. 单元测试B. 集成测试C. 系统测试D. 性能测试答案:A, B, C, D2.2 在软件工程中,以下哪些是软件开发生命周期的阶段?A. 需求分析B. 设计C. 实现D. 维护答案:A, B, C, D2.3 以下哪些是面向对象编程的特征?A. 封装B. 继承C. 多态D. 过程化答案:A, B, C3. 简答题3.1 请简述软件危机的四个主要表现。
答案:软件危机的四个主要表现包括:a. 软件项目经常超过预定的完成时间;b. 软件项目经常超出预算;c. 软件产品的质量难以满足用户需求;d. 软件维护困难,成本高昂。
3.2 请简述软件工程的目标。
答案:软件工程的目标是生产具有以下特征的软件:a. 高质量;b. 低成本;c. 快速开发;d. 易于维护。
4. 案例分析题4.1 某公司开发了一个在线购物系统,但在用户使用过程中发现系统响应速度慢,用户界面不友好,且经常出现错误。
请分析可能的原因,并提出改进建议。
答案:可能的原因包括:a. 系统设计不合理,导致响应速度慢;b. 用户界面设计缺乏用户友好性;c. 代码质量不高,导致错误频繁发生。
改进建议:a. 对系统进行性能优化,提高响应速度;b. 重新设计用户界面,提高用户友好性;c. 加强代码审查,提高代码质量。
5. 编程题5.1 编写一个函数,实现计算一个整数数组中所有元素的和。
答案:```pythondef sum_array(arr):total = 0for num in arr:total += numreturn total```6. 论述题6.1 论述软件测试的重要性。
软件工程复习题及答案选择题1.在结构化设计SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性2.软件维护产生的副作用,是指( C )A.开发时的错误B.隐含的错误C.因修改软件而带来的错误D.运行时误操作3.软件详细设计的主要任务是确定每个模块的( A )A.算法和使用的数据结构 B.外部接口 C.功能 D.编程4.为了提高模块的独立性,模块内部最好是( C )A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚5.软件是一种( C )A.程序B.数据C.逻辑产品D.物理产品6.下列那个模型不是面向对象的分析中建立的模型( B )A.对象模型B.瀑布模型C.动态模型D.功能模型7.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于A.集成测试B.恢复测试C.验收测试D.单元测试8.采用Gantt图表示软件项目进度安排,下列说法中正确的是( D )A.能够反映多个任务之间的复杂关系B.能够直观表示任务之间相互依赖制约关系C.能够表示哪些任务是关键任务D.能够表示子任务之间的并行和串行关系9.程序的三种基本控制结构是( B )A.过程、子过程和分过程B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移10.软件生存周期中时间最长的是( D )阶段A.总体设计B.需求分析C.软件测试D.软件维护11.为使得开发人员对软件产品的各个阶段工作都进行周密的思考,所以( C )的编制是很重要的。
A.需求说明B.概要设计C.软件文档D.测试计划12.软件部件的内部实现和外部可访问性的分离,是指软件的( C )。
A.继承性B.共享性C.封装性D.抽象性13.单元测试是发现编码错误,集成测试时发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( C )错误。
A.接口错误B.编码错误C.性能、质量不合要求D.功能测试14.软件工程管理对软件项目的开发管理,即对整个软件( B )的一切活动的管理。
一、 选择 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。 对
2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。 错 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。 错 4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 错 5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。错
6、软件配置管理是一组标识、组织和控制修改源程序的活动。 错 7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。 错 8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。 对 9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。 对 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 11、 (D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A 软件过程 B 软件测试 C 软件生存周期 D 软件工程 12、 ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。 A 质量控制 B 质量管理 C 质量策划 D 质量改进 13、 CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。 A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程 14、 在软件开发的各种资源中,(D)是最重要的资源。 A 开发工具 B 方法 C 硬件环境 D 人员 15、 软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的 B 人为的 C 可消除的 D 不可降低的 16、 在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。 A 业务需求 B 功能需求 C 非功能需求 D 用户需求 17、 原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。 A 需求不确定的 B 需求确定的 C 管理信息 D 决策支持 18、 (A)意味着一个操作在不同的类中可以有不同的实现方式。 A 多态性 B 多继承 C 类的可复用 D 信息隐蔽 19、 时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。 A 用例图 B 类图 C 活动图 D 协作图 20、 单元测试的测试用例主要根据(D)的结果来设计。 A 需求分析 B 源程序 C 概要设计 D 详细设计 二、 填空题 1、 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是关联关系。 2、 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。 3、 用例及其协作之间是实现关系。 4、接口及其实现类或构件之间是实现关系。 5、 动物与老虎之间是泛化关系。 三、 问答题 1、 软件复用的范围不仅仅涉及源程序代码,请至少列出5种可能复用的软件元素。 可复用的软件元素包括(选5种): 项目计划、成本估计、体系结构、需求模型和规格说明、设计、用户文档和技术文档、用户界面、数据结构、测试用例。 2、 传统"瀑布模型"的主要缺陷是什么?试说明造成缺陷的原因。 传统"瀑布模型"的主要缺陷及其原因:在项目的早期,用户常常很难清楚地给出所有需求,瀑布模型却要求如此。由于瀑布模型的特点,早期的错误直到开发晚期才能被发现,开发的风险较大。 3、某学校需要开发一个学生成绩管理系统,教务人员可以通过该系统维护学生信息、课程信息和成绩信息,学生可以随时查询自己的成绩单,该系统的实体关系图如下所示:
第一章: 1.什么是软件危机?有什么表现?P1-2 2.什么是软件工程?软件工程的基本目标是什么?软件工程与基本目标之间的关系? 软件工程的基本目标是: ①付出较低的开发成本 ②达到要求的软件功能 ③取得较好的软件性能 ④开发的软件易于移植 ⑤需要较低的维护费用 ⑥能按时完成开发任务,及时完成开发任务,及时交付费用 ⑦开发的软件可靠性高 在具体项目的实际开发中,企图让以上几个目标都达到理想的程度往往是非常困难的。
软件工程目标之间的关系如上图: 表明了软件工程目标之间存在的相互关系。其中有些目标之间是互补关系,例如,易于维护和高可靠性之间,低开发成本与按时交付之间。还有一些目标是彼此互斥的,例如,低开发成本与软件可靠性之间,提高软件性能与软件可移植性之间,就存在冲突。
3.软件工程方法学有哪些要素?方法、工具和过程 4.软件生命周期(选择正确的模型) (1)假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完成后,该产品将被抛弃。你打算采用哪种软件生命周期模型?请说明你的理由。 对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,即无须通过原型来分析需求也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。 因此,开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了。
(2)假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么? 对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时应该着重考虑哪种模型有助于加快产品开发的速度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。 这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可以得出3点结论:1.旧版本相当于一个原型,通过收集用户对旧版本的意见,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;2.该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;3.该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把软件的体系结构设计成开放式的,以有利于今后的改进和扩充。 综上所述,采用增量模型来完成这个项目比较恰当。
命运如同手中的掌纹,无论多曲折,终掌握在自己手中。 你今天的日积月累,终会变成别人的望尘莫及。 二、应用题(50分) 1. 将下面给出的伪码转换为N-S图和PAD图。 void root(float root1,float root2) { i=1; j=0; while (i<=10) { 输入一元二次方程的系数a,b,c; p=b*b-4*a*c; if(p<0) 输出“方程i无实数根”; else if (p>0) 求出要做并输出; if (p==0) { 求出重根并输出; j=j+1; } i=i+1; } 输出重根的方程的个数j; } 答: 盒图:
命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 PAD图:
2. 下面给出了用盒图描绘的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到用语句覆盖和路径覆盖。
答: (1) 实现语句覆盖的测试方案如下: 1) 覆盖THEN部分的语句,即使得条件(A>0)AND (B>0)和条件(C>A)OR(D输入:A=1,B=1,C=0,D=1 预期输出:X=2,Y=2 2) 覆盖ELSE部分的语句,即使得条件(A>0)AND (B>0)和条件(C>A)OR(D输入:A=0,B=-1,C=0,D=1 预期输出:X=1,Y=1 (2) 实现路径覆盖的测试方案如下: 1) 覆盖两个条件均为假的路径 输入:A=-1,B=-2,C=-3,D=3 预期输出:X=1,Y=0 2) 覆盖第一个条件为假第二个条件为真的路径 输入:A=-1,B=-2,C=1,D=-3 预期输出:X=1,Y=4 3) 覆盖第一个条件为真第二个条件为假的路径 命运如同手中的掌纹,无论多曲折,终掌握在自己手中。 你今天的日积月累,终会变成别人的望尘莫及。 输入:A=1,B=1,C=0,D=2 预期输出:X=2,Y=2 4) 覆盖两个条件均为真的路径 输入:A=-1,B=-2,C=2,D=1 预期输出:X=3,Y=1 3. 某高中打算投资4万元改造现在的学生成绩管理系统,现有系统的维护费用每年为2.6万元,新系统运行后,新系统的维护费用为每年8000元,假设年利率为5%,请分析此项目中等成本方案的经济可行性(计算回收期和纯收入)。 答:
4. 有一个长度为24000条机器指令的程序,第一个月由甲、乙二人分别测试它。甲改正了20个错误,使程序的平均无故障时间达到了8小时。乙在测试该程序的另一个副本时改正了24个错误,其中6个错误与甲改正的相同。然后,由甲一个人继续测试这个程序。请问 (1) 刚开始测试时程序逻辑中的错误总数ET是多少? (2) 为使平均无故障时间达到240h,如果甲不利用乙的工作成果,则他还需再改正多少个错误? 答: (1) 刚开始测试时程序中的错误总数为:
ET (2) 由方程 8=)20(48000ETK 解得 K=100)2080(848000 由方程
开发成本 4.0万元 新系统的运行费用 0.8万元/年 现有系统的运行费用 2.6万元/年 每年节省的费用 2.2万元 年 节省 现在值(5%) 累计现在值 1 18000元 17142.86元 17142.86元 2 18000元 16363.64元 33506.5元 3 18000元 15517.24元 49023.7元 投资回收期=2+(40000-33506.5)/15517.24 2.42年 纯收入=49023.7-40000 9023.7元
8020624命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 240=)180(10048000Ec 解得 EC1=78 78-20=58 即,为使平均无故障时间达到240h,如果甲不利用乙的工作成果,则他还需再改正58个错误。 5 画出下列伪代码的程序流程图,并计算其环形复杂度 START INPUT (A,B,C) IF A>5 THEN X=10 ELSE X=1 END IF IF B>10 THEN Y=20 ELSE Y=2 END IF IF C>15 THEN Z=30 ELSE Z=3 END IF PRINT (X,Y,Z) STOP 答: 程序流程图:
命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 程序流图:
6. 银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。 请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。 答:
环形复杂度=区域数=4 环形复杂度=边数-结点数+2 =14-12+2=4 环形复杂度=判定结点数+1=3+1=4 命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 7. 请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。 答: PDL语言: N=1 WHILE N<=10 DO IF A(N)<=A(N+1) MAX =A(N+1); ELSE MAX =A(N) ENDIF; N=N+1; ENDWHILE; PAD图:
8. 电话号码的组成如下: 地区码:空白(本地)或“0”为首的2~4位数; 分局码:非“0”或“1”开头的两位数; 客户号码:5位数字串。 欲测程控交换机系统中的识别电话号码程序,请完成如下要求: (1)划分等价类并编号 (2)为合理等价类设计测试用例 (3)为不合理等价类设计测试用例 答: (1)划分等价类并编号: 命运如同手中的掌纹,无论多曲折,终掌握在自己手中。 你今天的日积月累,终会变成别人的望尘莫及。 (2)为合理等价类设计测试用例: (3)为不合理等价类设计测试用例 请同学们自己为(10)~(18)无效等价类设计测试用例 9. 如图所示的程序流程图描绘了一个非结构化的程序。 (1) 为什么说它是非结构化的? (2) 利用附加变量flag设计一个等价的结构化程序,用盒图描绘设计结果。 (3) 不用附加变量,设计一个等价的结构化程序,用盒图描绘设计结果。 答: (1) 因为循环控制结构有两个出口,因此是非结构化的程序。 (2) 利用附加变量flag设计的等价的结构化程序如下图(左) (3) 不用附加变量flag设计的等价的结构化程序如下图(右)
开始 停止 g q<0
p>0 命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 10. 假设变量名的命名规则一般规定如下:变量名的长度不多于20个字符,第一个字符必须为英文字母,其他字符可以为英文字母、数字以及下划线的任意组合。请用等价划分类法设计测试用例。 答: (1) 划分等价类:
输入条件 合理等价类 不合理等价类 长度 ⑴ 小于20个字符 ⑵ 等于20个字符 ⑸ 大于40个字符
第一个字符 ⑶ 英文字符 ⑹ 非英文字符
其他字符 ⑷ 英文字母、数字或下划线的任意组合 ⑺ 空格 ⑻ 标点符号 ⑼ 运算符号 ⑽ 其他可显示字符
(2) 设计测试用例: 测试数据 测试范围 期望结果 ⑴ s name12 等价类 ⑴、⑶、⑷ 有效 ⑵ sh3u7ehd_u7eygdjjdu87dfg93847y 等价类 ⑵、⑶、⑷ 有效 ⑶ u7euh4hdiidju86ujfk8kl7(7frh57yfg 等价类 ⑸ 无效 ⑷ 345hfg 等价类 ⑹ 无效 ⑸ efdhj kj 等价类 ⑺ 无效 ⑹ hj!,jk 等价类 ⑻ 无效 ⑺ j+jklj 等价类 ⑼ 无效 ⑻ djh&$w2 等价类 ⑽ 无效
11. 一软件产品的功能:输入文件名,计算该文件中的字数,其数据流图如下:
请根据数据流图设计软件的结构图。要求有一级分解、二级分解和精化过程。 答: 一级分解:
字数统计程序
输入文件名 统计字数 输出字数 命运如同手中的掌纹,无论多曲折,终掌握在自己手中。
你今天的日积月累,终会变成别人的望尘莫及。 二级分解:
精化: 12. 商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折);一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折);一次购物累计等于或多于1000元,按D类标准收费(打7折)。请使用PAD图来设计收费算法。 答:
字数统计程序 输入文件名 统计字数 读取文件名 验证文件名 格式化字数 显示字数 输出字数
字数统计程序 输入文件名 统计字数 读取文件名 验证文件名 格式化字数 显示字数 输出字数