GCT复试-软件工程测试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

x1.概念题以下概念是否正确,为什么?(1)软件就是程序。(不是:软件=程序+数据+文档)(2)采用面向对象方法后,软件危机迎刃而解(不是:面向对象方法是解决软件危机的一种有效途径,不能够彻底的解决软件危机问题,只是让软件危机问题得到了一定的缓解)。(3)界面设计应该在需求分析阶段进行。(是:界面设计是属于需求分析阶段的范畴)(4)E-R图中的实体和OOD中的对象不一样。(是:OOD中的实体表示的是问题领域中的实体,而E-R图中的实体则是数据库中具体的表)(5)类图是面向对象方法中的基本模型。(是:类图是最重要的模型图,它描述了系统中各类对象以及他们之间的各种关系)(6)总体设计的主要任务是设计系统流程图。(不是:总体设计的主要任务是设计软件的模块结构和计算机物理系统的配置方案,包括数据流图、系统流程图、划分子系统、系统软硬件配置、通信网络系统的配置、机房设备的配置等)(7)单元测试主要是分析程序代码是否正确。(是:单元测试就是模块测试,其过程就是为了发现编码和详细设计的错误)(8)单独开发的一个模块就表示该模块具有独立性。(不是:一个具有独立性的模块应该是只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,是由内聚和耦合来度量的一种衡量标准,而单独开发未必一定能做到这一点)2.论述题(1)在对一个应用软件开发项目进行结题验收时,用户应该得到什么资料?为什么?答:在结题验收阶段,用户应该得到相关合同、各种审核报告、测试报告、操作手册,还需根据个别情况提供源代码,因为用户在验收阶段要进行用户验收测试,其中包括了文档审核、源代码审核、配置脚本审核、测试程序或脚本审核、可执行程序测试。(2)当用户向软件开发人员提出一个简单的功能修改要求时,可能得不到对方的及时响应,你认为技术上的主要原因可能是什么?答:有可能该功能是嵌套在另一功能中的,虽然对简单的功能进行修改,但也有可能是“牵一发而动全身”,会引起其他功能方面的大问题,所以得不到及时的响应。(3)什么是软件危机?简述软件危机的具体表现和解决方法。软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。具体表现:软件开发费用和进度失控、软件的可靠性差、生产出来的软件难以维护、用户对“已完成”的系统不满意现象经常发生。解决方法:软件工程,研究软件生产的客观规律性,明确提出了软件生命周期的模型;软件工具;3.分析设计题某公司提出要在我校校园网上为学校开发一个“财务管理系统”,用户可在校园网上办理缴费、借还款和查询账户信息等功能。(1)请从技术、经济和操作三个方面简要分析系统开发的可行性(包括可能存在的风险)。答:技术可行性:现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术的条件,并且高校的财务管理系统也是依附于校园网中建设的,也有一些成功的实例,因此在技术技术方面也有了雄厚的基础。经济可行性:该系统的建设改善了原有劳动力的成本,只要该系统一经使用,在经费方面就会减少手工管理的支出。用户使用新的系统只需花一定的资金购买一台电脑和软件就能够实现自动化管理。并且财务管理系统的建设也满足了数字化校园的建设,能够得到领导的大力支持与帮助。操作可行性:传统的财务管理方法一般都为手工似管理方法,其存在着效率低下、出错率高、不够规范的缺点,但财务管理系统就能够充分解决传统管理方法所带来的缺陷,具有简便、高效、可靠、规范的特点,强化了现代数字化校园的建设。(2)假设可行,请用原型模型描述系统的开发过程,并分析该模型的优缺点。答:原型模型是由开发人员先开发出一个简单系统的原型,供用户使用。然后,再利用该系统作为原型,获取用户的反馈,通过用户的需求来不断的完善系统,最后达到用户的需求。根据用户要求制作demo-根据demo作分析设计-编程-测试-上线使用,在过程中逐步优化改进原型开发方法的优点:原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型。原型开发方法的缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。不宜利用原型系统作为最终产品(3)假设可行,请用数据流图或用例图描述系统的功能需求。答:(4)假设可行,请定义数据库的一个表(关系),并分析该表的范式。User表:用于存储系统中用户的表:字段名类型长度主键为空唯一描述U_accountNvarchar32YesNoYes用户帐户U_passwordNvarchar32NoNoNo用户密码U_E_Mailnvarchar50NoNoNo邮箱U_sqNvarchar50NoNoNo安全问题U_sanvarchar50NoNoNo安全答案U_namenvarchar50NoNoNo真实姓名U_phonevarchar20NoNoNo联系方式U_addressnvarchar50NoNoNo联系地址U_postalcodevarchar10NoNoNo邮政编码U_industrynvarchar20NoNoNo所在行业U_introducenvarchar100NoNoNo简介U_typenvarchar10NoNoNo用户类型通过分析的用户表中不存在部分函数依赖关系,所以该数据表满足3NF。3.某公司提出要为政府开发一个“互联网户籍管理系统”,用户可在互联网上办理和查询户籍信息。(1)请从技术、经济和操作三个方面简要分析系统开发的可行性(包括可能存在的风险)。(10分)答:技术可行性:现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术的条件,各种防火墙机制也保障了安全性,并且目前各个省市部门已经有一些成功的实例,因此在技术技术方面也有了雄厚的基础。经济可行性:极大的减少了资源浪费,成本低、性能好。计算机已经成为我们学习和工作的得力助手,今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使户籍档案更加安全,等等。一台或几台拥有足够硬件配置的计算机,就能实现目标管理。大大减少了人力、物力、财力,极大地降低了户籍管理得成本,节省了开销,缩减了经济开支。操作可行性:以计算机为操作工具,操作方法简单、便捷、迅速。使用现行开发的户籍管理系统查找一个户的信息或一个户成员的具体情况时,在几秒钟之内获得全部相关信息。改变了以往人工操作为主的管理方式,大大减轻了户籍管理人员的日常工作量。(2)假设可行,请用瀑布模型描述系统的开发过程,并分析该模型的优缺点。1)、对目标系统进行可行性调研和分析2)、和客户交流并进行需求分析,编写需求规格说明书,同时兼顾其对可行性的影响3)、根据需求分析结果进行系统概要设计和详细设计,同时兼顾其对需求分析文档的影响4)、根据需求、设计文档进行编程,过程的修改需兼顾其对需求、设计分析文档的影响5)、系统工程测试,测出BUG协同开发人员进行修改,6)、测试完成后,发布上线,进入运行维护期优点1)为项目提供了按阶段划分的检查点。2)当前一阶段完成后,您只需要去关注后续阶段。3)可在迭代模型中应用瀑布模型。4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。缺点1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。4)瀑布模型的突出缺点是不适应用户需求的变化。(3)假设可行,请定义数据库的一个表(关系),并分析该表的范式。(10分)User表:用于存储系统中用户的表:字段名类型长度主键为空唯一描述idint10NoNoYes主键U_accountvarchar32NoNoYes登录帐户U_passwordvarchar32NoNoNo登录密码U_uservarchar32NoNoNo用户编码U_E_Mailvarchar50NoNoNo邮箱U_sqvarchar50NoNoNo安全问题U_sanvarchar50NoNoNo安全答案U_namevarchar50NoNoNo真实姓名U_phonevarchar20NoNoNo联系方式U_addressvarchar50NoNoNo联系地址U_postalcodevarchar10NoNoNo邮政编码U_statevarchar10NoNoNo用户状态U_typevarchar10NoNoNo用户类型create_timedata20NoNoNo创建时间通过分析的用户表中不存在部分函数依赖关系,所以该数据表满足3NF。4.在用面向数据流的方法定义模块时,关键是要保证模块的独立性。(1)如何判断模块的独立性?(10分)模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单.是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。(2)在用面向对象方法设计构件时,构件的独立性是否一定就好?为什么这个应该不是程度上的问题,而考虑的是功能边界与解耦的问题,耦合度越低越好,是依赖的问题,这样才能使得系统容易开发、可靠性高且容易维护模块独立性原则是指其中任一模块在运行时,与另一个模块存在无关。独立性只是一个相对的概念。具有独立功能而且和其他模块之间相互作用少的模块,称为独立性高的模块。5.面向对象方法是围绕数据(对象)来构造系统,而不是围绕功能,为什么?请从功能模型和对象模型之间的关系来论述。(10分)面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。功能模型和对象模型之间有以下关系:对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。而功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户关系;动态模型展示了每个对象的状态以及它接收事件和改变状态时所执行的操作。6.请例举两个软件开发中的错误做法,并说明错误的原因。(5分)问题一:大家每天固定位子就坐(一个萝卜一个坑)大家是不是每天上班都坐同一个位子呢?选哪个电脑有什么影响吗?是不是每台电脑都有你需要的全部工具,同时配置完善足够你完成所有任务呢?如果不是,证明你们不经常结对,也不常交换结对伙伴。解决方法:(真正地)结对编程结对编程并且经常轮换结对伙伴是需要纪律性的。如果你没做,只能说明你不相信这有用。为了共享知识和技能,在看板系统中你可以安排学习和一些缓冲时间。你可能需要拒绝一些客户的要求,但短暂的损失将带来长期的收益:你整装待发,开始一起协作的极限编程之旅。而正是由于扫清了知识方面的瓶颈,你将会快速前进。试试结对吧。问题二:强调头衔我记得有个团队刚刚开始实施敏捷时,某个团队成员拿着组织结构图,义正言辞地跳出来指正:在程序员完成故事编码之前应该禁止测试人员介入。其实没必要把头衔搞得跟完整团队势不两立。但如果某个重要成员一意孤行,或者团队因为角色不同而不敢质疑技术主管,再或者团队期望“测试人员”完成所有测试,那我们就该担心自己实施完整团队的效果了。解决方法:打破角色和职责界限如果你把工作简单地看作是一些待完成的活动的集合,那么你就可以打破角色和职责的界限,允许队员在多重领域创造价值。比如,解放程序员,让他们探索测试。类似地,当测试人员发现一个他们能修复的缺陷时,放手让他们去修复吧。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功