2015年软件工程期末考试试题及答案(机密)解析
软件工程期末考试参考题及答案

软件工程期末考试参考题及答案1. 考试题目:软件需求工程考试要求:根据给定的需求文档,完成以下题目。
题目一:根据给定的需求文档,设计一个在线购物系统。
请根据以下要求完成系统设计:(1)使用UML类图绘制系统的类结构;(2)使用UML时序图描述用户登录和浏览商品的流程;(3)使用UML活动图描述用户下订单的流程。
答案:(1)类图如下所示:[在这里插入UML类图图片](2)时序图如下所示:[在这里插入UML时序图图片](3)活动图如下所示:[在这里插入UML活动图图片]题目二:根据给定的需求文档,设计一个在线学习系统。
请根据以下要求完成系统设计:(1)使用UML用例图描述系统的功能需求;(2)使用UML活动图描述学生完成在线学习的流程;(3)使用UML状态图描述学生的学习状态变化。
答案:(1)用例图如下所示:[在这里插入UML用例图图片](2)活动图如下所示:[在这里插入UML活动图图片](3)状态图如下所示:[在这里插入UML状态图图片]2. 考试题目:软件设计模式考试要求:根据给定的题目,选择并解答以下问题。
题目一:分析以下代码,判断其使用了哪种设计模式,并阐述该设计模式的作用和优势。
```javapublic interface Car {void drive();}public class Sedan implements Car {@Overridepublic void drive() {System.out.println("Driving a sedan car."); }}public class SUV implements Car {@Overridepublic void drive() {System.out.println("Driving an SUV car."); }}public class CarFactory {public Car createCar(String type) {if (type.equals("sedan")) {return new Sedan();} else if (type.equals("suv")) {return new SUV();} else {throw new IllegalArgumentException("Invalid car type: " + type);}}}```答案:该代码使用了工厂模式。
2015年软件工程期末试卷(自己整理的_很完整的)

1、2、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。
八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。
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、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C )A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B )A、结构化方法B、原型化方法C、面向对象的方法D、控制流方法9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B )A、控制流B、数据流C、程序流D、指令流10、软件开发的结构化生命周期方法将软件生命周期划分成(A )A、计划阶段、开发阶段、运行阶段B、计划阶段、编程阶段、测试阶段C、总体设计、详细设计、编程调试D、需求分析、功能定义、系统设计11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是( C)A、分析阶段B、设计阶段C、编码阶段D、测试阶段三.判断1.软件的开发与运行经常受到硬件的限制和制约。
《软件工程》期末复习题及答案

《软件工程》期末复习题及答案1.运用所掌握的知识,通过抽象,给出该系统的结构,这就是A.系统建模B.软件开发C.问题求解D.验证确认3.结构化分析方法给出了一种能表达功能模型的工具是()。
A.HIP0图 B.PAD图 C.N-S图 D.DFD图7.在某大学学生学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是()。
A.可划分为2个有效等价类,2个无效等价类B.可划分为1个有效等价类,2个无效等价类C.可划分为2个有效等价类,1个无效等价类D.可划分为1个有效等价类,1个无效等价类10.是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;继承是指子类可以自动拥有父类的全部属性和服务;()是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。
A.继承B.多态C.消息D.封装11.分层DFD中父子平衡是指()。
A.父加工的数据流数目与子图中数据流数目相同B.父图应包含子图中的全部数据流C.子图应包含父图中的全部数据流D.父加工和子图的输入数据和输出数据应分别保持一致2.在建模过程中,可用以描述加工的工具是()。
A.数据流 B.判定树 C.数据字典 D.数据存储13.以下软件生存周期的活动中,要进行软件结构设计的是()。
A.测试用例设计 B.概要设计C.程序设计 D.详细设计16.CMMI 成熟度等级中的第四级为()。
A.已定义级B.已定量管理级C.持续优化级D.已重复17.以下选项中,最适合于用交互式计算机软件解决的问题是()。
A.非结构化决策问题B.半结构化决策问题C.结构化决策问题D.确定性问题18.系统测试是将软件系统与硬件、外设和网络等其他因素结合,对整个软件系统进行测试。
不是系统测试的内容()。
A.路径测试 B.可靠性测试 C.安装测试 D.安全测试19.项目管理工具中,将网络方法用于工作计划安排的评审和检查的是()。
2015年软件工程期末考试试题及答案(机密)解析

2015年软件工程期末考试试题及答案(机密)解析班级姓名学号一.简要回答下列各问题(共40分,每个小题5分)(1) 阐述软件工程的定义。
答:●是指导计算机软件开发和维护的一门工程学科;●采用工程的概念、原理、技术和方法来开发和维护软件;●把证明正确的管理技术和最好技术综合运用到软件开发中;●研究经济地开发出高质量的软件方法和技术;●研究有效维护软件的方法和技术。
(2) 简述软件危机的原因。
答:●缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。
●软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
●软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
●随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
●缺少有效的软件评测手段,提交用户的软件质量不能完全保证。
(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。
(4) 画出软件生存周期的增量模型的示意图,并简述其优点。
优点:●可强迫开发人员采用规范化的方法。
●严格地规定了每个阶段必须提交的文档。
●要求每个阶段交出的所有产品都必须是经过验证的。
缺点●由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格说明与用户需求之间有差异,就会发生这种情况。
●瀑布模型只适用于项目开始时需求已确定的情况。
1-2 瀑布模型示意图●能在较短时间内向用户提交可完成一些有用的工作产品,即从第1个构件交付之日起,用户就能做一些有用的工作。
●逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。
●项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。
●优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。
因此,最重要的系统服务将接受最多的测试。
软件工程期末试题(含答案)

软件工程期末试题(含答案)预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制一、填空题(每空1分,共25分)1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试和运行和维护。
2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。
3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方案可行性等方面研究。
4.系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文件。
6.结构化分析方法是面向_数据流_进行需求分析的方法。
结构化分析方法使用_数据流图DFD_与_数据字典_来描述。
7.继承性是自动地共享类、子类和对象中的方法和数据的机制。
8.软件详细设计工具可分为3类,即_图示工具_、_设计语言_和_表格工具_。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___测试_。
10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。
二、单项选择题(每小题2分,共20分)1.软件设计中划分模块的一个准则是( C )。
A、低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D.高内聚高耦合2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。
A、对象 B.数据流 C.数据结构 D.控制结构3.试判断下列叙述中,哪个(些)是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.( A )是用户和设计交换最频繁的方法。
A、原型化方法B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )。
《软件工程》期末考试试卷附答案

《软件工程》期末考试试卷附答案一、选择题(每小题3分,共10小题,共30分)1. 软件需求规格说明的内容不应包括()。
A.主要功能B.算法的详细描述C.用户界面及运行环境D.软件的性能2. 程序的三种基本控制结构是()。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、迭代和回溯D.调用、返回和转移3. 在E-R模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、联系、属性D.实体、属性、操作4.软件测试的目标是()。
A.证明软件是正确的B.发现错误、降低错误带来的风险C.排除软件中所有的错误D.与软件调试相同5.软件是()。
A.处理对象和处理规则的描述B.程序C.程序及其文档D.计算机系统6. <!--[endif]-->面向对象的分析方法主要是建立三类模型,即()。
A.系统模型、ER模型、应用模型B.对象模型、动态模型、应用模型C.E-R模型、对象模型、功能模型D.对象模型、动态模型、功能模型7. <!--[endif]-->各种软件维护的类型中最重要的是( )。
A.完善性维护B.纠错性维护C.适应性维护D.预防性维护8.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法9.在软件开发模型中,提出最早,应用最广泛的模型是()A,瀑布B,螺旋C,演化D,智能10.软件工程方法是在实践中不断发展着的,而早期的软件工程方法一般是()A,原型化方法B,结构化方法C,面向对象方法D,功能分解法二、判断题(每小题3分,共10小题,共30分)()1、开发软件就是编写程序。
()2、系统测试的主要方法是白盒法和黑盒法。
()3、编程序时应尽可能利用硬件特点以提高程序效率.()4、软件需求分析的任务是建立软件模块结构图。
软件工程期末试题及答案

软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASEB.人工智能CASEC.结构的基于图形CASED.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性B.可重用性C.适应性D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()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.软件生命周期中所花费用最多的阶段是()A.详细设计B.软件编码C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的()A.代码的规模B.运行速度C.质量D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么B.用户使用界面C.输入的信息D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
软件工程-期末考试题(含答案)

一、选择题1。
瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护.八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。
( C ),A .详细计划B .可行性分析C 。
运行阶段D。
测试与排错2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A )A 。
需求分析阶段B 。
详细设计阶段 C.概要设计阶段 D 。
可行性研究阶段,3。
软件工程的出现主要是由于(C ) ,A.程序设计方法学的影响B。
其它工程科学的影响C.软件危机的出现D。
计算机的发展,4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C)A。
硬件环境 B.软件开发的环境C。
软件开发工具和软件开发的环境D。
开发人员的素质5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A。
相互排斥B相互补充C独立使用 D.交替使用6。
UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法C.基于对象的面向对象的方法 D.基于数据的数据流开发方法7。
在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A.结构化方法B原型化方法C面向对象的方法D。
控制流方法8。
结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A.控制流B。
数据流 C.程序流D。
指令流9.软件开发的结构化生命周期方法将软件生命周期划分成(A)A。
计划阶段。
开发阶段。
运行阶段B。
计划阶段。
编程阶段。
测试阶段C.总体设计。
详细设计。
编程调试D。
需求分析.功能定义。
系统设计10。
软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A.分析阶段B。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级姓名学号一.简要回答下列各问题(共40分,每个小题5分)(1) 阐述软件工程的定义。
答:●是指导计算机软件开发和维护的一门工程学科;●采用工程的概念、原理、技术和方法来开发和维护软件;●把证明正确的管理技术和最好技术综合运用到软件开发中;●研究经济地开发出高质量的软件方法和技术;●研究有效维护软件的方法和技术。
(2) 简述软件危机的原因。
答:●缺乏软件开发的经验和有关软件开发数据的积累,使得开发计划很难制定。
●软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
●软件开发过程不规范。
如,没有真正了解用户的需求就开始编程序。
●随着软件规模的增大,其复杂性往往会呈指数级升高。
需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
●缺少有效的软件评测手段,提交用户的软件质量不能完全保证。
(3) 画出软件生存周期的瀑布模型的示意图,并简单评述其优缺点。
(4) 画出软件生存周期的增量模型的示意图,并简述其优点。
优点:●可强迫开发人员采用规范化的方法。
●严格地规定了每个阶段必须提交的文档。
●要求每个阶段交出的所有产品都必须是经过验证的。
缺点●由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格说明与用户需求之间有差异,就会发生这种情况。
●瀑布模型只适用于项目开始时需求已确定的情况。
1-2 瀑布模型示意图●能在较短时间内向用户提交可完成一些有用的工作产品,即从第1个构件交付之日起,用户就能做一些有用的工作。
●逐步增加产品的功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给用户组织带来的冲击。
●项目失败的风险较低,虽然在某些增量构件中可能遇到一些问题,但其他增量构件将能够成功地交付给客户。
●优先级最高的服务首先交付,然后再将其他增量构件逐次集成进来。
因此,最重要的系统服务将接受最多的测试。
(5) 画出D.Ross 提出的软件工程结构化分析方法的框架示意图,并解释数据字典和数据流的含义。
答:(6) 举例说明变换型和事务型流图的特点。
答:变换型流图由输入、中心变换和输出3部分组成,而且逐层展开。
如:事务型流图通常接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
(7) 给出下面变换型数据流图对应的模块结构图。
答:(8) 给出下面交易型数据流图对应的模块结构图。
答:(9) 举例说明模块结构图优化方法中的不同模块相似部分调整的原则。
答:● 完全相似的模块可以归并;● 两个模块部分相似的代码可以通过建立公共新模块,并设立对公共模块调用进行调整。
例如:(10) 举例说明模块结构图优化方法中作用域与控制域调整的原则。
答:作用域是指判断语句所在模块和他判断调用的下属模块,而控制域是指他本身以及他的下属模块;一般要求作用域在控制域内。
例如: D 通过B 判断调用C ,故D 的作用范围不在它的控制范围内,调整为右图。
(11) 试将下面的代码段进行局部调整,使其更容易理解。
1)要进行适当的缩排;2)增加必要的注释;3)增加必要的语句,以免产生错误;For(i=1;i<=n-1,i++){t=i;for(j=i+1,j<=n,j++)if(a[j]<a[t])t=j;if(t!=i){tm=a[t];a[t]=a[i];a[i]=tm}} 答:int i=0;/*实现***功能int t=0;int tm=0;For(i=1;i<=n-1,i++) /*实现***功能{t=i;for(j=i+1,j<=n,j++) /*实现***功能if(a[j]<a[t])t=j;if(t!=i){tm=a[t]; /*实现***功能a[t]=a[i];a[i]=tm}}(12)试按照规范编写一个求3个数中最小值的程序。
程序规范如下:1)禁止使用GOTO语句;2)使用缩排编写程序;3)变量命名明晰答:main() // a c code about finding out the small one in tree input number{int num1,num2,num3,min;printf("Please input three numbers:");scanf("%d,%d,%d",&num1,&num2,&num3);if (num1<num2)MIN=num1;elseMIN=num2;if (num3<MIN)MIN=num3;printf("The small one is:%d",small);(13)举例说明软件测试的不完备性。
答:就目前的软件测试方法而言,还无法做到对代码的完全覆盖测试,所以说软件测试是不完备的。
例如,下面的代码是无法完全测试的。
(14)试解释单元测试中“驱动模块”、“桩模块”与“被测模块”含义以及它们之间的关系。
答:● 驱动模块相当于被测模块的主程序,它接收测试数据,并把这些数据传送给被测模块,最后再输出实测结果。
● 桩模块也叫做存根模块,用以代替被测模块调用的子模块。
● 被测模块是单元测试要测试的模块,他与驱动模块和桩模块有被调用和调用的关系。
(15)简述软件改正性、适应性维护的含义。
答:改正性是为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应进行的诊断和改正错误的过程。
适应性维护是指,随着信息技术的飞速发展,软件运行的外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而修改软件的过程叫做适应性维护包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 × 24小时,要想把所有路径测试完,需3170年。
(16)举例说明影响维护工作量的因素。
答:(1)系统规模:系统规模大,维护困难;(2)程序设计语言:开发语言复杂,维护也困难;(3)系统年龄大小:时间久远的系统,维护困难;(4)数据库技术的应用水平:数据应用水平低,维护工作量大。
(5)所采用的软件开发技术及软件开发工程化的程度:工程化程度高,维护相对容易。
例如:商业企业进销存管理软件。
由于商品品种多,经营手段灵活,所以对数据库技术应用的水平要求比较高;一般大型商业企业,如沃尔玛是全球连锁,所以系统规模巨大,维护困难;商业企业管理软件一般要处理的内容多样,目前还没有一种语言可以完成整个系统的开发任务,所以选择功能相对强大的语言会减少开发困难。
二、已知程序框图如图2-1所示,试分别给出(a)语句覆盖,(b)条件覆盖,(c)判断覆盖,(d)条件组合覆盖,(e)判断/条件的最小测试用例和路径。
(每小题5分,共25分)答:(a)语句覆盖测试用例【(2, 0, 4),(2, 0, 3)】(b)条件覆盖路径:ace测试用例:【(2, 0, 4),(2, 0, 3)】路径:abd测试用例:【(1, 1, 1),(1, 1, 1)】(c)判断覆盖路径:ace测试用例:【(2, 0, 4),(2, 0, 3)】路径:abd测试用例:【(1, 1, 1),(1, 1, 1)】(d)条件组合覆盖路径:ace测试用例:【(2, 0, 4),(2, 0, 3)】路径:abd测试用例:【(1, 1, 1),(1, 1, 1)】路径:abe测试用例:【(2, 1, 1),(2, 1, 2)】路径:abe测试用例:【(1, 0, 3),(1, 0, 4)】(e)判断/条件覆盖路径:ace测试用例:【(2, 0, 4),(2, 0, 3)】路径:abd测试用例:【(1, 1, 1),(1, 1, 1)】三、现有一个PASCAL语言的编译器。
试采用黑盒测试法测试该编译器对语法规定:“标识符是由字母开头、后跟字母或数字的任意组合构成;有效字符数为8个,最大字符数为80个;标识符必须先说明,再使用;在同一说明语句中,标识符至少必须有一个。
”的一致性。
(每一个分类5分,共25分)答:等价类划分如下:测试用例:下面选取了8个测试用例,它们覆盖了所有的等价类。
① V AR x,T1234567:REAL;}(1)(2)(4)(7)(8)(11)(13)BEGIN x:=3.414;T1234567:=2.732;……② V AR :REAL;}(3)③ V AR x,:REAL;}(5)④ V AR T12345……:REAL;}(6)多于80个字符⑤ V AR T $:CHAR;}(9)⑥ V AR GOTO:INTEGER;}(10)⑦ V AR 2T:REAL;}(12)⑧ V AR PAR:REAL;}(14)BEGIN……PAP:=SIN(3.14*0.8)/6;四、已知程序伪代码如图4-1所示,试完成下列工作:1) 试用算法4.1给出对应的流图; 2) 计算流图的复杂性V(G);3) 求基本路径构成的基本集合(num 1,num 2,num 3各取一次最小值); 4) 给出每条路径执行的期望结果; 5) 给出每一条路径的测试用例。
(每小题3分,共15分)答:环形复杂性:3 基本路径集:12357 12457 12367 期望结果:12357的结果:num1是最小值 12457的结果:num2是最小值 12367的结果:num3是最小值测试用例:Num1=3;num2=4;num3=5 Num1=4;num2=3;num3=5 Num1=4;num2=5;num3=3main() // a c code about finding out the small one in tree input number {int num1,num2,num3,Min;printf("Please input three numbers:");(1)scanf("%d,%d,%d",&num1,&num2,&num3); (2)if (num1<num2) (3)MIN=num1; else(4)MIN=num2; (5)if (num3<MIN) (6)MIN=num3;(7)printf("The small one is:%d,Min); 图4-1 一个计算三个数中最小值的程序五、已知程序伪代码如图5-1所示,试完成下列工作:1)试用算法5.1给出对应的流图;2)计算流图的复杂性V(G);3)求基本路径构成的基本集合(num1,num2,num3各取一次最小值);4)给出每条路径执行的期望结果;5)给出每一条路径的测试用例。