华东交通大学软件工程上机题目三
- 格式:doc
- 大小:219.50 KB
- 文档页数:10
华东交大计算机操作系统试题一填空:1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。
2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA方式和通道控制方式。
3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。
4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。
5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。
6.文件的逻辑结构分流式文件和记录式文件二种。
7.进程由程度、数据和FCB组成。
8.对信号量S的操作只能通过原语操作进行,对应每一个信号量设置了一个等待队列。
9.操作系统是运行在计算机裸机系统上的最基本的系统软件。
10.虚拟设备是指采用SPOOLING技术,将某个独享设备改进为供多个用户使用的的共享设备。
11.文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。
12.段式管理中,以段为单位,每段分配一个连续区。
由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。
13.逻辑设备表(LUT)的主要功能是实现设备独立性。
14在采用请求分页式存储管理的系统中,地址变换过程可能会因为缺页和越界等原因而产生中断。
16. 段的共享是通过共享段表实现的。
17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。
18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。
19. UNIX的文件系统空闲空间的管理是采用成组链接法。
20分页管理储管理方式能使存储碎片尽可能少,而且使内存利用率较高,管理开销小。
20.计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。
21.操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
1.某旅馆的电话服务如下:可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:写出在数据字典中,电话号码的数据流条目的定义即组成。
电话号码=[分机号|外线号码]分机号=7201 (7299)外线号码=9+[市话号码|长话号码]长话号码=区号+市话号码区号=100 (300)市话号码=局号+分局号局号=[455|466|888|552]分局号=4{数字}4数字=[0|1|2|3|4|5|6|7|8|9]2.为以下程序流程图分别设计语句覆盖和判定覆盖测试用例,并标明程序执行路径。
(1)语句覆盖测试用例令x=2,y=0,z=4作为测试数据,程序执行路径为abcde。
(2)判定覆盖可以设计如下两组数据以满足判定覆盖:x=3,y=0,z=1(1分)(通过路径abce);x=2,y=1,z=2(1分)(通过路径acde)。
或者x=2,y=1,z=1;覆盖路径acdex=1,y=1,z=1;覆盖路径acex=3,y=0,z=1;覆盖路径abce(注意:本题也还可以有其他答案)3.请用判定表画出以下问题的行为逻辑。
人们往往根据天气情况决定出门时的行装。
天气可能下雨,也可能不下雨;下雨或不下雨天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
4.对下列子程序进行调试:procedure example(y,z: real; var x: real)beginif (y>1)and (z=0) then x:=x/y;if (y=2) or (x>l) then x:=x+l;end.该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。
数据流图实验一、实验目的通过绘制数据流图掌握数据流图的基本原理,并能对简单问题进行数据流图的分析,独立地完成数据流图的分析与设计。
此外,学会使用Case工具完成数据流图和系统流程图的分析与实现。
二、实验内容实验内容如下:a)用visio绘制出如下定货系统的SFD(系统流程图)的模型。
图1 某定货系统SFDb)用visio绘制教材中分别绘制出定货系统的DFD的顶层模型、第一层模型和第二层模型。
(具体参考课本上P69~P70的图3.4,图3.5和图3.6)c)用visio 绘制如下图所示的取款手续的数据流图。
图2 取款手续d)请结合目前的银行柜台取款手续,对图2的取款数据流图进行改进,绘制当前银行柜台取款过程的顶层和第一层数据流图。
三、实验结果一张系统流程图和六张数据流图,要求把画出的系统流程图和数据流图打印后粘贴在实验报告中。
实验报告一份。
四、附录:Visio中SFD和DFD绘制的基本使用Step1:安装Visio,本说明书中使用的是Visio2003,大家也可下载Visio2007等新版本,如下图:(注:下图表示计算机已经安装了Visio,大家只要根据安装向导StepbyStep的完成安装即可)图3 Visio安装Step2: 打开visio,绘制系统的系统流程图,选择“流程图”下的“基本流程图”,先选择好图形的基本物理元素,如下图:图4 系统流程图基本物理元素Step3:绘制数据流之后得到完整的系统流程图(SFD)图5 完整的系统流程图Step4: 绘制DFD,选择“软件”中的“数据流模型图”来进行DFD 的绘制,首先也是先将基本元素选择好,如下图:图6 顶层模型基本元素Step5: 绘制数据流,并为数据流命名,得到课本图2.5“定货系统”完整的顶层数据流图,如下图:图7 完整的顶层模型Step6: 绘制该顶层流图的细化L1层流图,如下图:图8 完整的L1层模型。
《软件工程练习题及参考答案》一、单向选择题(四选一、每小题3分,共18分)1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。
对应映射反映反射2、盒图也称为(D)或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序数据逻辑物理4、人机界面的风格大致经过了(B)代的演变。
三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档—一种数据媒体和其上所记录的(数据)。
2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性,指软件系统的时间和(空间)效率。
4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。
5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。
6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。
04027.一个软件的深度是指其控制的(层数)。
8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。
9.软件维护是软件生命周期的(最后)一个阶段。
三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
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、UML是在_____________技术研究基础之上继续延伸和拓展得到的。
A、 OOAB、 SAC、OOD、 CASE16、用例图中执行系统用例的称为_____________。
A、对象B、人C、执行者D、角色17、图图b图b(右图)的环路复杂度是(1)。
图b的环路复杂度(2)图a的环路复杂度。
(1)A、 1 B、 3 C、0 D、 2(2)A、 > B、 < C、= D、无法判断_____________。
A、共享聚集B、复合聚集 C 一般聚集 D特殊聚集19、在UML动态模型中,状态图、顺序图、协作图都使用到了__________这一基本要素。
A、角色B、消息C、属性D、关联二、填空题(20’)1.软件工程是指用计算机科学、数学及等原理,以_________的原则和方法来解决软件问题的工程。
2.结构化分析和结构化设计统称为面向___________的结构化方法。
1、用边界值分析法,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取_____边界值。
A.X=10,X=100 B.X=9,X=10,X=100,X=101 C.X=10,X=11,X=99,X=100 D.X=9,X=10,X=50,X=100 2、下面关于软件测试的说法,_______是错误的。
A.软件测试就是程序测试B.软件测试贯穿于软件定义和开发的整个期间C.需求规格说明、设计规格说明都是软件测试的对象D.程序是软件测试的对象3、软件测试类型按开发阶段划分是______。
A.需求测试、单元测试、集成测试、验证测试B.单元测试、集成测试、确认测试、系统测试、验收测试C.单元测试、集成测试、验证测试、确认测试、验收测试D.调试、单元测试、集成测试、用户测试4、对于软件的β测试,下列描述正确的是______。
A.β测试就是在软件公司内部展开的测试,由公司专业的测试人员执行的测试B.β测试就是在软件公司内部展开的测试,由公司的非专业测试人员执行的测试C.β测试就是在软件公司外部展开的测试,由专业的测试人员执行的测试D.β测试就是在软件公司外部展开的测试,可以由非专业的测试人员执行的测试5、如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用______和判定表驱动法。
A.等价类划分B.因果图法C.正交试验法D.场景法6、在某大学学籍管理信息系统中,假设学生年龄的输入范围为 16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是。
A.可划分为 2 个有效等价类,2 个无效等价类B.可划分为 1 个有效等价类,2 个无效等价类C.可划分为 2 个有效等价类,1 个无效等价类D.可划分为 1 个有效等价类,1 个无效等价类7、关于软件测试对软件质量的意义,有以下观点:①度量与评估软件的质量;②保证软件质量;③改进软件开发过程;④发现软件错误。
其中正确的是_________。
软件工程试题题库含答案一、软件开发过程1. 软件工程的定义是什么?答:软件工程是一门学科,研究并应用以系统化的方法开发和维护软件的原则、概念、方法和工具。
2. 请列举并解释软件开发过程的基本活动。
答:软件开发过程包括以下基本活动:- 需求分析与说明:收集和分析用户需求,并将其明确、清晰地记录下来。
- 软件设计:将需求转化为软件架构和设计规范,确定技术方案和实施计划。
- 编码和单元测试:根据设计规范进行编码,并进行单元测试以确保代码的正确性。
- 综合与测试:将各个模块进行综合,进行系统级测试以验证软件的正确性和稳定性。
- 软件发布与维护:发布软件版本,并对软件进行后续的维护和更新。
3. 请解释敏捷开发方法的基本原则。
答:敏捷开发方法的基本原则包括: - 个体和互动高于流程和工具:注重团队成员的沟通和合作,更加关注人与人之间的交互。
- 可工作的软件高于详尽的文档:重视软件的实际可用性和功能,减少过多的文档记录。
- 客户合作高于合同协商:与客户保持紧密的合作,及时获取反馈并调整软件开发进程。
- 相应变化高于遵循计划:灵活应对需求变化,允许在开发过程中根据实际需要进行调整。
二、需求工程1. 需求工程的目的是什么?答:需求工程的目的是准确、清晰地确定、分析和记录用户对软件系统的需求。
2. 请解释需求工程的关键活动。
答:需求工程的关键活动包括以下几项: - 需求获取:通过与用户交流和研究,确定用户的需求,并进行系统化的收集。
- 需求分析:对收集到的需求进行分析,确定需求的可行性和优先级,并拆解出软件需求规格说明。
- 需求规格说明:编写清晰、明确的需求规格文档,对软件需求进行详细描述和说明。
- 需求验证:与用户进行需求验证,确保需求规格与用户的期望一致,并能够满足用户的需求。
3. 请解释用户需求和系统需求的区别。
答:用户需求是用户对软件系统的需求和期望,通常表达为用户对系统功能和性能的描述。
而系统需求是对用户需求的进一步细化和明确化,包括对系统功能、性能、界面、输入输出等方面的具体要求。
新版华东交通⼤学软件⼯程考研经验考研参考书考研真题(附真题)在我决定考研的那⼀刻正⾯临着我⼈⽣中的灰暗时期,那时发⽣的事对当时的我来讲是⼀个重⼤的打击,我甚⾄⼀再怀疑⾃⼰可不可以继续⾛下去,⽽就是那个时候我决定考研,让⾃⼰进⼊⼀个新的阶段,新的⼈⽣⽅向。
那个时刻,很⼤意义上是想要转移⾃⼰的注意⼒,不再让⾃⼰纠结于⼀件耗费⼼⼒和情绪的事情。
⽽如今,已相隔⼀年的时间,虽然这⼀年相当漫长,但在整个⼈⽣道路上不过是短短的⼀个线段。
就在短短的⼀年中我发现⼀切都在不知不觉中发⽣了变化。
曾经让⾃⼰⼤为恼⽕,让⾃⼰费尽⼼⼒和⼼绪的事情现如今不过是弹指的⼀抹灰尘。
⽽之所以会有这样的⼼境变化,我认为,是因为,在备考的这段时间内,我的全⾝⼼进⼊了⼀个全然⾃我,不被外界所⼲扰的⼼境,⽇复⼀⽇年复⼀年的做着同样枯燥、琐碎、乏味的事情。
这不正是⼀种修⾏吗,若说在初期,只是把⾃⼰当作机器⼀样⽤以逃避现实⽣活的灾难的话,但在后期就是真的在这过程中慢慢发⽣了变化,不知不觉中进⼊到了忘记⾃⾝的状态⾥。
所以我就终于明⽩,佛家坐定,参禅为什么会叫作修⾏了。
本来⽆⼀物,何处惹尘埃。
所以经过这⼀年我不仅在⼼智上更加成熟,⽽且也成功上岸。
正如我预期的那样,我开始进⼊⼀个新的阶段,有了新的⼈⽣⽅向。
在此,只是想要把我这⼀年备考过程中的积累的种种⼲货和经验记录下来,也希望各位看到后能够有所帮助,只不过考研毕竟是⼤⼯程,所以本篇内容会⽐较长,希望⼤家可以耐⼼看完,⽂章结尾会附上我的学习资料供⼤家下载。
华东交通⼤学软件⼯程初试科⽬:(101)思想政治理论(201)英语⼀(301)数学⼀(837)软件⼯程(837)软件⼯程参考书《软件⼯程》张海藩编著 2008年2⽉第五版清华⼤学出版社⾸先简单介绍⼀下我的英语复习经验。
⑴单词:英语的单词基础⼀定要打好,如果单词过不了关,那你其他可以看懂吗??单词可以⽤⽊糖英语单词闪电版就够了。
也可以⽤app软件。
但是这样就会导致玩⼿机(如果你⾃制⼒超强),单词的话到考前也不能停⽌的。
《软件工程》练习题一答案一、单选题1.C 2.A 3.C 4.D 5.B6.C 7.C 8.C 9.D 10.D11.D 12.A 13.B 14.A 15.A16.A 17.D 18.A 19.D 20.B21.A 22.C 23.C 24.A 25.C26.C 27.B 28.C 29.B 30.C31.A 32.D 33.C 34.B 35.C36.A 37.B 38.C 39.C 40.D41.B 42.D 43.B 44.A 45.D46.C 47.B 48.D 49.D 50.B51.A二、填空题1.软件配置管理2.容错功能3.11 4.模块5.F/(1+(n*i))6.管理技术7.软件工具软件开发环境8.数据字典DD9.可测试性10.父图子图11.数据结构12.防错程序设计13.空间14.可行性研究15.需求16.需求建模技术17.层数18.经济19.概率20.过程21.IPO 22.资源23.数学24.重复25.模块数26.系统约束27.从属28.软件工程29.复杂30.外部31.风险估算32.文档33.数据源34.动态多变量35.数据流图36.三种基本控制结构37.事务分析设计38.功能39.用户组织的管理模式及规范40.符号表示习惯41.不可再分解的42..软件需求明确43.累计经济效益(折合成现在值)44.硬件/操作系统45.差别估算法三、判断题1.错2.对3.对4.错5.错6.错7.对四、名词解释1.软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
2.数据字典是用来定义数据流图中的各个成分的具体含义的。
它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。
软件工程习题含答案一、单选题(共56题,每题1分,共56分)1.会话侦听与劫持技术属于()技术A、密码分析还原B、协议漏洞渗透C、应用漏洞分析与渗透D、DOS攻击正确答案:B2.若一棵二叉树具有8个度为2的结点,5个度为1的结点,则度为0的结点个数是?A、不确定B、6C、11D、9正确答案:D3.A、B、C、D、E、F依次入栈,其出栈顺序为B、D、C、F、E、A,则该栈最小容量为A、6B、5C、4D、3正确答案:D4.进程由执行状态到阻塞状态的原因可能是()。
A、请求某种资源B、处于执行状态的进程的时间片结束C、释放某种资源正确答案:A5.下列哪一项不是激活函数A、batch normalizationB、reluC、tanhD、sigmoid正确答案:A6.网络安全法规定,网络运营者应当制定(),及时处置系统漏洞、计算机病毒、网络攻击、网络侵入等安全风险。
A、网络安全事件应急演练方案B、网络安全事件应急预案C、网络安全事件补救措施D、网络安全规章制度正确答案:B7.下列哪种算法更适合做时间序列建模A、CNNB、决策树C、LSTMD、贝叶斯算法正确答案:C8.下面()不是数据字典的内容。
A、外部实体B、程序C、数据结构D、处理逻辑正确答案:B9.通过网页上的钓鱼攻击来获取密码的方式,实质上是一种()。
A、旁路攻击B、社会工程学攻击C、暴力破解攻击D、密码分析学正确答案:B10.已知 10*12的二维数组 A ,以行序为主序进行存储,每个元素占1个存储单元,已知A[1][1]的存储地址为 420 ,则 A[5][5] 的存储地址为A、470B、471C、472D、473正确答案:C11.不属于进程关键要素的是________。
A、进程控制块B、数据和栈C、原语D、程序正确答案:C12.下列哪一项不是卷积神经网络的典型代表A、ALEXNETB、LSTMC、VGGD、RCNN正确答案:B13.关闭系统多余的服务有什么安全方面的好处?A、使黑客选择攻击的余地更小B、没有任何好处C、使系统进程信息简单,易于管理D、关闭多余的服务以节省系统资源正确答案:A14.为了简化管理,通常对访问者(),以避免访问控制表过于庞大。
软件工程基础练习试卷3(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.在图7-2所示的流程图中,如果标记为b的运算执行了m次(m>1),那么标记为a的运算的执行次数为______。
A.1B.m-1C.mD.m+1正确答案:D解析:根据题目所给的流程图,只有当标记为a的运算返回Y(真)时,b运算才会得以执行,而后继续返回到a运算。
而当a运算返回N(假)时,整个流程执行完毕。
由此可见,如果b运算执行了m次,则a运算必定执行并返回了m 次Y。
而在第m+1次执行a运算时,返回了N,执行完毕。
故a运算执行次数为m+l。
知识模块:软件工程基础2.软件的复杂性与许多因素有关。
______不属于软件的复杂性参数。
A.源程序的代码行数B.程序的结构C.算法的难易程度D.程序中注释的多少正确答案:D解析:注释是程序员对程序某部分的功能和作用所做的说明,对编译和运行不起作用。
所以,注释跟软件的复杂性无关。
所以选项D为正确答案。
知识模块:软件工程基础3.______不是良好的编程风格。
A.变量名采用单字母符号或单字母加数字串B.程序代码采用缩进格式C.为变量设置初始值D.程序中包含必要的注释正确答案:A解析:程序的设计风格,指编写程序时源程序的格式。
良好的编程风格,可以帮助人们理解程序,查找错误。
在编程过程中,要注意养成良好的习惯,比如:选择含义明确的名字,使它能正确提示标识符所代表的实体,而且,名字中应当避免使用易混淆的数字。
显然,选项A的说法是错误的,为本题答案。
在程序要添加空格、空行和缩进,帮助人们在视觉上看清程序结构。
选项B符合这个要求。
显式说明一切变量。
选项C的为变量设置初始值,也是良好的编程习惯。
程序中包含必要的注释,可以帮助人们理解程序。
选项D符合这个要求。
知识模块:软件工程基础4.下列叙述中,良好编程风格的正确叙述,是______。
软件测试实验
一、实验目的
学会使用CASE工具完成软件测试用例的设计以及初步完成对单元测试,深刻理解单元测试的基本原理及CASE工具的基本使用。
二、实验内容
1、单元测试的逻辑覆盖测试验证实验:运用Nunit工具完成对如下例子的单元测试,要求分别完成语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖测试的测试用例编写以及测试。
要求首先按格式编写出该测试所需要的测试用例,然后编写测试程序,对其进行测试,最后把你写的测试用例按格式记录到实验报告中。
测试用例的格式如下:
{[输入], [期望结果]},对于本例请遵循如下格式:
{[A,B,X],[X]}
图1 单元测试逻辑覆盖的验证实验
此外,请测试如下情况:
(1).如果将第1个判定中的“AND”错写成了“OR”,用数据
{[2,0,3],[2.5]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。
(2).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数
据{[2,0,3],[2.5]}对程序进行测试,可否发现错误?为什么?
请先测试,然后把结论记录到实验报告中。
(3).如果将第1个判定中的“AND”错写成了“OR”,则用数
据{[3,0,1],[1/3]}和{[2,1,2],[3]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。
(4).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数
据{[3,0,1],[1/3]}和{[2,1,2],[3]})对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。
(5).如果将第2个判定中的“x>1”错写成了“x<=1”,则用数
据{[2,0,3],[2.5]}和{[1,1,1],[1]}(首先,该组数据满足何种逻辑覆盖)对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。
(6).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”
错写成了“b<>0”,则用数据{[2,1,1],[2]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?为什么?请先测试,然后把结论记录到实验报告中。
(7).如果将第1个判定中的“a>1”错写成了“a<=1”,且把“b=0”
错写成了“b<>0”,则用数据{[2,1,1],[2]}、{[2,0,2],[2]}、{[1,1,1],[1]}和{[1,0,2],[3]}对程序进行测试,可否发现错误?
为什么?请先测试,然后把结论记录到实验报告中。
2、循环结构测试
现有一个简单循环,需要对其进行测试,其程序伪代码如下:Int i,a;
Input(i,a);
While(i<=10)
{
a += 2;
if(a>4)
{
a *= 2;
a += 3;
}
Else
{
If(a>1)
a -= 4;
else
a += 5;
}
i++;
}
a *=4;
Output(a);
要求为该程序设计满足简单循环的所有测试用例,记录到实验报告中。
3、等价类划分及边界值测试的验证实验:有如下算法A和B均是非负整型变量(注:int型),如果10<A<100,则B=A*20-5,如果0<A<=10,则B=A*15+20,如果A>=100,则B=A*100-200,请分别用等价类划分方法和边界值分析方法设计测试用例,然后编写测试程序完成测试。
并把测试结论写入到实验报告中。
三、实验结果
包含测试用例、测试程序以及测试结论的实验报告一份。
四、成绩评定
五、附录:Nunit的基本配置
Step1:安装Nunit,本实验使用的是其2.4.7版本,大家可去其网站下载最新版本(/download.html)
图2 Nunit安装向导
Step2:如何在.NET环境中使用Nunit。
Step2.1:首先在.NET环境中创建一个新的工程,并选择其工程类型是Class Library模板(当然也可以是其它类型的模板,只是后面的配置会不一样),将工程命名为ZhbTest1,如下图:
图3 C#创建程序向导
Step2.2:然后为测试程序增加一个Nunit.Framework.dll的引用(目的是让你的程序可以支持Nunit测试,一般只要Nunit程序成功安装,都会在“添加引用”中找到该库),如下图在解决方案的项目中右击鼠标,然后选择“添加引用”,找到Nunit.Framework
(当前版本是2.4.7),确定。
图4 在应用程序中引入Nunit
Step2.3:添加头部引用以及待测试代码如下图所示:
图5 编写测试程序
Step2.4: 使得当前的应用程序可以自动运行Nunit程序,如下设置,右键选择项目的属性,然后在Debug中选择启动操作,启动外部程序,然后确定:
图6 设置C#应用程序可以启动Nunit
Step3:在.NET环境下运行程序,在弹出Nunit界面之后,运用File
菜单下的Open Project菜单打开需要进行测试的当前.NET程序的表现(注意:当前是ZhbdogTest1.dll),确定后即可开始测试,如下图:
图8 在Nunit中引入需要测试的对象(可以是程序或类库)
点击Run,即可完成测试工作,如下图是一个正常测试的结果:
图9 成功测试的界面
如果,修改程序,将”3”修改为”2”,会得到如下界面,表示该函数未通过测试,程序存在错误:
图10 失败测试的界面。