软件课后习题答案

软件课后习题答案
软件课后习题答案

第一章

1.什么是程序,程序有哪些特性?

程序:是一个用计算机语言描述的某一问题的解决步骤,它的表示是静态的。

特性:静态与动态属性,由程序语言抽象的符号表达,是对数据施行算法的过程,是分层嵌套的。2.软件有哪些特性?

特性:功能、性能相对完备的程序系统,具有使用性能的软设备,软件是信息商品,易大批量生产、成本低,是极具竞争性的商品,投入的资金主要是人工费,是只有过时而无“磨损”的商品。

3.什么是群件,目前常见的群件产品有哪些?

群件:是近几年开发的一种基于电子邮件的应急系统软件,它拓

宽了电子邮件的的内涵,涵盖了很多通信协调功能。目前常见的群件产品有:IBM公司的lotus Note、Microsoft公司的Exchange Server 、Novell公司的Group Wise等

4.计算机的软件是由哪几部分组成的,各自的作用是什么?

软件由:软件程序(解题步骤)+数据(描述事物的属性和状态)+文档(功能性能的说明性信息)组成。

5.什么是程序开发环境,常见的开发环境有那些?

程序开发环境:即现在作用到的编程语言,一般以一个集成环境的形式出现。

此环境中包含了语言编辑器,调试工具,编译工具,运行工具,图标图像制作工具等。

6.常见的Internet工具有哪些?

Web服务器软件、web浏览器、文件传送工具FTP、远程访问工具Telnet、邮件软件、网络聊天、多媒体等。

7.操作系统的作用(功能)是什么?

1、处理器管理

2、存储器管理

3、设备管理

4、文件管理

5、作业管理。

8.文件系统足以支持程序运行,数据库的作用是什么?

克服文件系统的缺陷。

9.软件开发的核心是编制可运行的程序,还有比这跟重要的工作么?

系统分析和数据分析。

10.程序设计语言本身是软件么?

是,而且是系统软件。

第二章

1.程序设计语言有哪两种实现方式,各有什么优缺点?

方式一:编译(优:可进行优化,目标码效率很高。缺:费时)方式二:解释(优:可以逐句读入源代码,比较灵活,小巧。解释器不大,工作空间也不大,且能根据程序的执行情况决定下一步需做什么。缺:一句一句的难于优化,效率低)

2.结构化程序设计语言有那几种基本控制结构?

顺序、选择、循环。

3.为什么要引进过程,过程和函数的区别有哪些?

引进了过程或函数可以让程序语言更清晰,可以多次调用。使用过程还可以降低程序的复杂性,使程序结构变得清晰明了。过程是不带返回值,函数是带返回值。

4.什么是全局变量,什么是局部变量?

全局变量:出了程序便失去定义,作用范围,整个程序。

局部变量:局部的程序块中有定义。

5. 什么是指针变量?

指向数据的地址的变量。

6.过程参数传递的方式有哪几种,各有什么特点?

传值:优:很安全,不会改变全局变量的值。缺:占用双倍存储单元,传值时不能带回值。

引用:优:能带返回值,存储空间小。缺;局部有可能改变全局变量的值。

7.简述变量的生命期及变量的种类.

程序中变量的生命期随其声明时所在的程序块而异。程序执行完它的所有数据变量后均会失去意义。

种类:持久变量,全局变量,静态局变量,自动变量,循环控制变量。

8.简述面对对象程序设计语言的基本特点。

类和对象

9.到目前为止,程序设计语言一共分为4代,试简述每一代语言的特点并举出有代表性的语言。

把面向机器编程的第一代语言:机器码、汇编语言排除在外。第二代语言:早期的高级程序设计语言。第三代语言:结构化程序设计语言(面向算法过程的)。第四代语言:数据库查询语言(只描述程序应“做什么”,而不必编写“怎么做”的实现模块)

10.简述Internet环境编程语言的一些基本特性。

1、平台无关

2、编译—解释执行3更为纯粹的面向程序语言4、支持网络安全5、支持多线程6、接口作为类型7、支持网络上分布式应用。

11.简述程序分裂出过程(子例程)、过程/函数的型构和体的显示分离以及接口类和类分离对软件技术发展的影响。

12.为什么说Java的即时编译是当前编译技术的最新发展?

对于多次重复或耗时较长的段落进行编译后,作为模块暂存,下次遇到时则直接执行目标码。

第三章

1.算法、数据结构和程序

程序=算法+数据结构

2.什么是算法,它所包含的两个要素是什么?

算法:一个有穷规则的集合,规定了解决某段问题的运算序列。它是有穷的、确定的、能行的,并有0到多个1到多个输出。

所包含的两个要素:方法,步骤。

3.算法的控制结构有哪些形式?

算法的控制结构的形式:顺序、选择、循环。

4.算法的表述有哪几种方式?

自然语言、伪代码、流程图。

5.什么是数据结构,它所研究的内容包括几方面?

数据结构是相互有关联的数据元素的集合。

方面:算法、逻辑结构和物理结构,数据结构的图形表示。

6.线性和非线性数据结构的主要区别是什么,各包括哪些数据结构?

线性:栈、队、链表、顺序表。

非线性:树、图、文件。

7.试用类VC语言写出单链表的插入及删除算法。

8.一棵度为2的树与一棵二叉树有何区别?

度为2的树:树的最大结点的度为2

二叉树:不存在度大于2的结点.五种基本形态:空二叉树,仅有根节点的二叉树,左子树为空的二叉树,右子树为空的二叉树,左右子树均不为空的二叉数

10.已知某二叉树的前序遍历序列为ABDEGCFHIJ,中序遍历为DBGEAHFIJC,写出该二叉树后序遍历的序列DGEBHJIFCA

11.试用VC语言写出起泡排序的算法

#include

int sort(int n)

{ int i,j,temp;

for (i=1;i

for (j=0;j

if (a[j]>a[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}

int main(void)

{ int i,n;

scanf("%d",&n);

int *a=new int[n];

for (i=0;i

scanf("%d",&n);

sort(n);

for (i=0;i

printf("%d ",a[i]);

return 0;}

12.试分别说明堆栈、队列和数组之间的相同于不同点。

相同:都是线性。不同:堆栈只在一端操作。

第五章

1.什么是多媒体,它由哪些信息表示元素组成?

通过计算机技术,把文字,图形,图像,动画,音频,视频等信息表示元素集成起来而形成的一种新的数字化信息表示媒体。

2.多媒体有哪些特性?

集成性,数字化,时间相关性,交互性,数据量大

3.对于多媒体的应用,做了简单的讨论后,试再举出几个多媒体应用的例子

教育培训,演示系统,电子出版物,企业应用

4.什么是多媒体计算机系统,多媒体计算机与一般计算机的差别是什么?

多媒体计算机系统:能综合处理多种媒体信息,包括文字,图形,图像,音频,视频,动画等,使多种信息建立联系,并且具有交互性的计算机系统。

多媒体计算机有一般的计算机相比:处理的数据量大,各种媒体要综合处理。

5.用于多媒体计算机的外部设备有哪些,各有什么用途?

音频设备:实现模拟音频与数字音频之间的转换

视频设备: 存储光盘:

6.多媒体应用系统的制作过程与一般应用系统的制作有什么不同?

与传统的开发计算机应用程序方法不同,多媒体程序开发是一种现代计算机应用软件开发与创意相结合的崭新制作方式,也是人民正在实践与探索的研究课题。多媒体应用程序制作一般要经过项目的需求分析、脚本编写、软件结构设计、采集和制作多媒体素材、代码编写、运行测试等几个环节,最后才能完成一个多媒体应用程序的制作。

第六章

1.操作系统主要功能是什么?

1)处理器管理 2)存储器管理3)设备管理 4)文件管理 5)作业管理。

2.简述操作系统与计算机硬件和其他软件的关系

1.)操作系统是加到计算机硬件上的第一层软件,它是直接操作计算机硬件的软件,其它的所有软件,都是以操作系统为基础运行的虚拟机上。只有首先运行操作系统之后,才能运行其它软件。

2.)操作系统是管理和操纵计算机硬件的软件3)操作系统是用户与计算机硬件设备之间的接口。

3.操作系统有哪些基本特性,为什么?

1并发性:所谓“并发”是指两个或两个以上的事件在同一时间间隔中发生。

2共享性:资源的共享是指计算机系统中的硬件资源和软件资源不仅为某一程序或者某一用户所独享,多个拥有授权的程序或用户也可以使用。

3虚拟性:所谓“虚拟”就是把物理实体映射为一个或者多个逻辑实体。物理实体是实际存在的,而逻辑实体则是“虚拟”的,只是用户的一种看法和感觉。

4.操作系统的体系结构有哪几种,各有什么优缺点?

1)整体式结构:

2)层次式结构:

3)客户/服务器式结构:

5.简述进程与程序的区别与联系以及线程的概念

进程是一个可并发执行的程序在其数据集上的一次运行,是操作系统进行资源分配的单位和运行单位。

程序静态的进程,进程是动态的程序执行。进程是一个能够独立运行的基本单位。

线程:线程是是进程内的一个可调度实体,是一个执行单元,是更小的轻量级的进程。

6.内存管理的功能有哪些?

1)存储空间的分配和回收;2)地址映射,即把程序使用的地址映射成内存空间地址;3)内存的保护,即系统必须保证内存中的进程不会相互干扰,影响整个系统的稳定性、可靠性。

7.设备驱动程序的功能有哪些?

负责接收和分析从设备分配程序转来的信息以及设备控制表中的信息,并结合设备特性进行信息格式转换,把执行信息转换成设备能够执行的形式,驱动设备进行I/O操作,进行必要的错误处理。

8.文件的存储方式有哪几种,各有哪些优缺点?

1)连续分配:优点:比较简单,易于实现,只需记录每一个文件用到的第一个磁盘块。文件系统的性能比较高缺点:必须在创建文件时就确定文件的长度,否则无法分配磁盘空间

2)链接分配:优点:磁盘利用率高,实现简单缺点:文件随机读取的效率比较低

3)索引分配:缺点:每次操作都要首先从磁盘上从头读取链表查找到正确的数据块所在的位置

4)i-结点分配:

9.目录的用途是什么,采用树形目录有哪些好处?

目录的用途:用来归类文件的,它描述了文件系统中文件的存储结构。采用树形目录有哪些好处:

10.简述UNIX系统的结构和特性。

结构具体可分为两大部分:一部分是由是由用户程序和系统提供的服务构成,称为外核程序。另一部分是操作系统内核,其中两个最主要的部分是文件子系统和进程控制子系统。

特性:1是一个分时的,多用户,多任务操作系统。2系统大部分是用高级语言编写,可移植性好。3提供了丰富的经过精心挑选的系统调用。4系统提供了功能强大的可编写Shell语言(即外壳语言)作为用户界面。 5系统采用的是属树形文件系统,有基本的文件系统和若干子文件系统组成。6系统对文件和设备进行统一的处理。 7系统提供了多种通信机制。8系统包括了丰富的外核程序。

11.常见的UXIX系统主要有哪些,各有什么特性?

常见的UNIX系统:IBM公司的AIX系统、SUN的SunOS系统、HP公司的HP-UX系统、Compaq公司的Digital UNIX系统等

常见UNIX系统的特性:Solaris:使用SUN公司自己的RISC芯片的工作站和服务器上。有不同寻常的装载能力和高性能。HP-UX:为公司网络运行和严格管理提供一个高稳定、高可靠的具有标准功能的设计目标;它有良好的开放性、互操作性和出色的软件功能。Open Server:以优良的多任务多用户环境,支持大量的输入、输出操作。

Digital:全部按照POSIX标准而实现的64位UNIX操作系统,它害支持FDDI、ATM等网络协议。

12.Linux系统有哪些特性?

1系统源代码公开 2系统完全免费 3 系统稳定性好 4系统可移植性好 5系统具有良好的用户界面 6系统具有很好的网络功能

13.智能手机系统有几类,各是什么?

智能手机系统:Symbian操作系统,Windows Mobile操作系统,Linux手机操作系统,Palm操作系统。

14.简述Mac Os X的特点

1先占式多工 2动态内存分配 3内存保护 4微内核处理。

15.讨论新一代操作系统应该具有哪些特点。

1.稳定性

2.安全性

3.高性能

4.易用性

5.移动性

6.娱乐性。

第七章

6.试比较星型,环型,网状,总线型网络拓扑结构的特点。

总线型:

优:可构建简单,可靠的小型网络,易于使用和掌握;需要的电缆数量最少;扩展方便可用中

继器扩展总线网络

缺:网络负载过多时会降低网络的传输速度;出现故障时,难以隔离;一个节点坏了,整个变

没用了

星型:

优:提供集中的资源管理,易于扩展和维护;故障易于隔离。

缺:要求中央节点的可靠性较高;中心设备出了问题,整个网络会瘫痪。

环型:

缺:环型网多用于高性能的网络,要求预约宽带,以便提供同步性要求很高的信息,如:视频和音频信号等。在环型网络中,所有计算机平等访问,网络性能均衡。

优:每台计算机都有相同的令牌。

7.客户/服务器网络和对等网络各有什么特点?

对等网络:特点:整个网络没有中央控制手段,简单,降低网络的费用。

客户/服务器网络:主要特征是网络中存在着专门的服务器,他提供集中的管理机制和安全控制

第八章

2、分层的原则有哪些?

答:分层时遵循这样的原则:层次间相对独立,每一层使用下层所提供的服务实现自己的功能;层次应足够多,以免不同功能混杂在同一层中,但也不能太多,否则体系结构会过于庞大;每一层的目的都是向其上一层提供服务并且向上一层屏蔽实现细节。下层对上层来说是透明的,对下层的任何修改都不会影响到上层;任何一层只能通过服务与相邻层进行通信,对任何一层来说,除相邻层外,都看不到其他层。

3、一个都市网由两个位于城市不同地点的办公室通过56Kbps租用线路组成。但是,每个办公室中的计

算机不能与其他办公室中的计算机通信。如果认为路由器配置存在问题,试说明这个问题存在于OSI 模型的哪一层?

答:第三层网络层

5、OSI模型的哪一层把原始数据位打包成数据帧?

答:第二层数据链路层

6、面向连接的服务和无连接的服务各有什么特点?

答:A面向连接的服务是一种可靠的,顺序的数据传输服务。面向连接的服务具有建立连接、数据传输和连接释放3个阶段。面向连接的服务比较适合于在一定时间内向同一目的连续发送大量报文,而对于较短的零星报文来说,面向连接的服务的开销就会显得过大。

B无连接的数据传输服务和邮政传递系统类似。通信双方不需要首先建立连接,而是在数据报文中记录了源地址和目的地址(相当于信封),系统根据报文中的地址信息选择合适的传输线路,完成数据的传输。无连接服务并不能保证数据的顺利到达。不能防止报文的丢失、重复和失序。每个报文都必须记录地址信息,其开销也比较大,因此无连接服务是和实时性要求不高、传送数据不多的情形。

7、125.212.134.25是哪类地址,它的标准子网掩码是什么?10.100.10.11的子网掩码是255.224.0.0,它的

子网地址是什么?答:A类地址,255.0.0.0 10.96.0.0

8、196.16.128.0是哪一类地址?试写出它的子网掩码。答:C类地址,255.255.255.0

9、若将网络分成多个子网,每个子网最多有12台主机,要得到最大可能的子网数,应如何设计子网掩

码? 答:255.255.255.240

10、网络管理包括那几个方面?

答:包括用户管理、软件管理、设备管理、流量和性能检测、数据备份和故障恢复等。

第九章

1、数据库的主要用途是什么?

答:使用数据库可以最大限度地减少纸张浪费。数据库为数据的查询、添加、删除和修改都提供了很大的方便,还为数据提供了共享、安全等诸多功能。

2、文件系统与关系数据库之间的主要区别是什么?

答:A、以文件为基础的数据管理有很多不足之处:(1)程序与数据不独立(2)数据重复不可避免(3)难于保证数据的一致性(4)难以提供符合用户不同要求的信息提取方式(5)难以保障安全B、数据库具有如下特点:(1)数据是集成的(2)数据重复少(3)程序与数据相对独立(4)易于提供符合用户不同要求的信息提取方式(5)易于提供安全保障

3、数据模型有哪几种?

答:层次、网状、关系和对象等模型

4、什么是关系数据库?

答:关系模型是运用数学知识来研究数据库的结构和定义对数据的操作,因此基于关系模型的关系数据库具有模型简单、数据独立性高、有较为坚实的理论基础等特点。

5、为什么要有关系规范化?

答:关系数据库的规范化理论是解决如何设计数据库的基本表,设计几张表比较合适,怎么样才算是好的数据库设计等问题的依据。把一个不好的表变成一个好的表(消除了数据冗余和操作异常)的过程就是关系规范化的过程。规范化实际就是对不好的表进行分解,使其成为好的表。

6、什么是实体,什么是联系,什么是实体—联系图?

答:A、实体:实体是客观存在并可以相互区分的事物。B、联系:在现实世界中,事物内部以及事物之间是有联系的。联系是数据之间的关联集合,是客观存在的应用语义链。C、E-R模型是用E-R图来描述数据库的概念模型。在E-R图中,用矩形表示实体,用椭圆形表示属性,用菱形表示实体之间的联系7、数据的完整性有哪几类,在数据库系统中是如何保证数据的完整性的?

答:A、(1)实体完整性(2)引用完整性(3)应用语义完整性B、数据完整性用来确保数据库中数据的正确和有效。在关系数据库范畴,数据完整性大多数是由约束条件来控制的。约束条件可以检验进入数据库的数据值,在表一级(记录集)和列一级(属性)上都可以定义约束条件。完整性约束条件可以防止不符合语义的数据进入数据库。通过主键保证数据的实体完整性,外键保证引用完整性,将数据分成若干表和创建表之间的关联关系的的规范化处理,保证数据的完整性。

8、假设有如下表:

employee(emp_id,name,dept,salary,skill),代表雇员(雇员编号,姓名,所属部门,工资,技能),雇员编号为主键,所属部门为引用工作表的工作编号的外键。

写出满足如下要求的SQL语句:

(1)查询全部雇员所属部门的信息。

Select 姓名,所属部门from 代表雇员

(2)查询工资在2000-3000范围内的雇员的姓名和所属部门以及工资数。

Select 姓名,所属部门,工资from 代表雇员where 工资between 2000 and 3000

(3)查询“销售”部门的雇员的姓名和技能。

Select 姓名,技能from 代表雇员where 所属部门=”销售”

(4)统计雇员的总数。

Select count(*) from 代表雇员

9、什么是事务,为什么要引进事务,事务有哪些特点?

答:A、事务是一个完整的工作单元,此工作单元中可以包含多个操作,但这些操作共同构成一个完整的单元,事务中的操作要么全部成功,要么全部不成功。B、事务中的操作必须作为一个完整的工作单元,如果不作为一个完整的工作单元,将会发生严重的后果。在现实生活中是不允许这种事情发生的,

数据库是写实的系统,同样必须保证不能发生这种事情,这就是引入事务的原因。C、事务一般具有如下4个特性(即所谓的ACID):(1)原子性(2)一致性(3)隔离性(4)永久性

第十章

2、试简述VC6.0中的数据库访问方法。VC中的数据库访问方法有什么特点?

答:一、使用ADO数据控件访问数据库A、建立VC工程B、使用ADO数据控件1,将Adodc控件加入到工程中2,设置ADO控件的属性和方法C、DataGrid控件1,将网络控件添加到工程2,配置网络控件的属性3,运行程序二、使用ADO API访问数据库A、建立VC工程B、连接数据源1,导入库文件2,初始化COM环境3,打开到数据库的连接4,打开记录集C、使用结果集对象操纵数据1,读取数据2,滚动结果集3,添加记录

特点:在VC6.0中使用ActiveX数据库访问控件可以使用户几乎不用编写代码就可以快速的生成数据库应用程序; VC6.0中提供的Crystal Reports可用于生成报表。如果应用程序比较复杂,仍需要用户编写一些代码,就使用ADO数据控件访问数据库;对于一些较复杂的程序,仅仅使用空间是不够的,还要编写一些代码,就使用ADO API访问数据库

7、简述Web数据库技术的特点,构建一个Web信息系统应该完成哪些工作?

答:Web技术与数据库技术的相互融合已经成为企业应用的热点方向之一。充分发挥数据库管理系统高效的数据存储和管理能力以及Web浏览器简单、平台无关等特点,为用户提供使用简便、内容丰富的服务。建立一个Web信息系统,要确定使用的动态网页技术、选用的数据库、数据库接口以及Web服务器等因素。

最新软件测试期末考试试题及答案

一,判断 1 √ 2.× 3.√ 4.× 5. × 6. ×7. ×8. ×9.√10. ×二,选择 1. D 2. D 3. B 4. B 5. B 6. A 7. D 8. B 9. C 10. A 三填空 1. 测试计划、测试用例 2. 稳定性测试、负载测试、压力测试 3. 非增量是集成测试自顶向下增量式测试、自底向上增量式测试 4. 回归 5. 软件需求 四简答题(30分) 1.试描述软件测试的定义?(3分) 答:利用手工或者自动化的方式,按照测试方案对系统执行测试用例的过程叫做软件测试。 2.什么是软件缺陷?(4分) 答:满足以下条件的问题都叫缺陷: 软件未达到产品说明书中已标明的功能 软件出现了产品说明书中指明不会出现的错误 软件功能超出了产品说明书指明的范围 软件未达到产品说明书虽未指出但应达到的目标 软件测试员认为软件难以理解,不易使用,运行速度缓慢,或者最终用户认为该软件使用效果不好。 3.常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。(8分)答:等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。 决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具 因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对

性的设计测试用例的方法。 4. 列举常见的系统测试方法。答出来5个即可。(5分) 答:恢复测试 安全测试 强度测试 性能测试 正确性测试 可靠性测试 兼容性测试 Web测试 5.文档测试主要测试哪些内容?答出来5点即可(5分) 答:(1)检查产品说明书属性 (2)检查是否完整 (3)检查是否准确 (4)检查是否精确 (5)检查是否一致 (6)检查是否贴切 (7)检查是否合理 (8)检查代码无关 (9)检查可测试性 6. 单元测试主要测试那几方面的问题?(5分) 答:模块接口、局部数据结构、边界条件、独立的路径和错误处理。五,设计题

软件测试基础期末试卷及参考答案

1、判定覆盖设计足够多的测试用例,使得被测试程序中的每个判断的“真”、“假”分支_至少被执行一次。 2、黑盒测试的具体技术方法 ____________、 __________、 __________、____________。 等价类划分法,边界值分析法,决策表法,因果图法 3、黑盒测试又称之为___________测试。 功能 4、等价类划分有两种不同的情况:____________和____________。 有效等价类,无效等价类 5、根据覆盖目标的不同,逻辑覆盖又可分为:________________,_____________,_______________,__________________,条件组合覆盖,判断/条件覆盖。 语句覆盖,判定覆盖,条件覆盖,路径覆盖 6、根据软件生命周期中的定义,可以把自动化测试工具划分3大类____________,____________和 ____________。 白盒测试工具、黑盒测试工具、测试管理工具 7、软件测试是为发现程序中的______________而执行程序的______________。 错误,过程 8、测试用例是由______________和预期的______________两部分组成。 测试输入数据,输出数据 9、白盒测试又称为______________,可以分为______________和______________两大类。 结构测试,静态测试,动态测试 10、软件是包括____________﹑____________﹑____________的完整集合。 程序,数据,相关文档 11、边界值分析法属于____________。 黑盒测试 12、单元测试是以____________说明书为指导,测试源程序代码。 详细设计 13、集成测试以____________说明书指导,测试软件结构。 概要设计 14、确认测试以____________说明书为指导。 需求分析 15、软件开发的基本过程____________,_____________,_______________,_____________, _____________,______________。 需求分析、概要设计、详细设计,编码,测试、维护 16、代码复审属于____________,不实际运行程序。 静态测试 17、集成测试把模块组成成系统的测试方式:_____________和______________。 一次性集成测试,增量式集成测试 18、黑盒测试有两种基本方法,即:_____________和______________。 通过测试,失败测试 二、选择题(每题3分,共10题,分数为30分) 1. 下列哪一项不是白盒测试(C) A.单元测试 B.集成测试 C.系统测试 D.回归测试 2. 属于黑盒测试的方法(C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 3.在Assert类中断言对象为NULL是_____。(C) 4.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。(A)

软件测试技术习题参考答案

第1章软件测试概述 1、简述软件缺陷的含义。 答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。 2、说明软件缺陷、软件错误和软件失败的关系。 答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。 14、“软件测试是有风险的工作”,试解释这种说法的含义。 答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。 第2章软件测试基础 2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。答:条件覆盖是高于判断覆盖的逻辑覆盖程度。 a、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能取值至少执行一次。 b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历一次。 每个判断语句可能包含多个条件(比如,if(A>3 && B<7)……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。 4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。 答:(1)等价类划分

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程部分课后练习题答案

第一章 1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。 2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。 3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。 4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。 5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。 第三章 1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。 2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求。 3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。 4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象——行为模型。 5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。 第四章 1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。 2.传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,包括体系结构设计

和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。 3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点。 4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型:变换型系统结构图,事务型系统结构图。 5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。 第五章 1.与结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,应用数据设计(对象属性设计)、接口设计(消息模型开发)以及过程设计(子系统级设计)。 2.当两个子系统相互通信时,可以建立客户机/服务器连接或端对端连接。 3.系统设计不仅包括主要的业务需求子系统设计,还包括用户界面子系统设计、任务管理子系统设计、数据管理子系统设计。 4.对象设计强调从问题域的概念转换成计算机领域的概念,通过对象的描述、算法和数据结构设计、程序构件和接口,实现相关的类、关联、属性和操作。 5.在面向对象设计中系统设计的主要目标是表示软件体系结构。对象设计着重于对象及其交互的描述 第八章 1.软件程序测试的目的是发现程序中的错误,其主要任务是通过在计算机上执行程序,暴露

软件测试方法和技术重点和试题与答案

太原理工大学软件测试技术 适用专业:软件工程2011级考试日期:2014.1 时间:120 分钟 一、判断题 1. 测试是调试的一个部分(╳) 2. 软件测试的目的是尽可能多的找出软件的缺陷。(√ ) 3. 程序中隐藏错误的概率与其已发现的错误数成正比(√ ) 4. Beta 测试是验收测试的一种。(√ ) 5. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ ) 6. 项目立项前测试人员不需要提交任何工件。(╳) 7. 单元测试能发现约80%的软件缺陷。(√ ) 8. 测试的目的是发现软件中的错误。(√ ) 9. 代码评审是检查源代码是否达到模块设计的要求。(√ ) 10. 自底向上集成需要测试员编写驱动程序。(√ ) 11. 测试是证明软件正确的方法。(╳) 12. 负载测试是验证要检验的系统的能力最高能达到什么程度。(√ ) 13. 测试中应该对有效和无效、期望和不期望的输入都要测试。(√ )验收测试是由最终用户来实施的。(√ ) 14. 测试人员要坚持原则,缺陷未修复完坚决不予通过。(√ )黑盒测试也称为结构测试。(╳)集成测试计划在需求分析阶段末提交。(╳) 15. 软件测试的目的是尽可能多的找出软件的缺陷。(√) 16. 自底向上集成需要测试员编写驱动程序。(√) 17. 负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18. 测试程序仅仅按预期方式运行就行了。(╳) 19. 不存在质量很高但可靠性很差的产品。(╳) 20. 软件测试员可以对产品说明书进行白盒测试。(╳) 21. 静态白盒测试可以找出遗漏之处和问题。(√) 22. 总是首先设计白盒测试用例。(╳) 23. 可以发布具有配置缺陷的软件产品。(√) 24. 所有软件必须进行某种程度的兼容性测试。(√) 25. 所有软件都有一个用户界面,因此必须测试易用性。(╳) 26. 测试组负责软件质量。(╳) 27. 按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28. 好的测试员不懈追求完美。(×) 29. 测试程序仅仅按预期方式运行就行了。( ×) 30. 在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。( √) 31. 静态白盒测试可以找出遗漏之处和问题。( √) 32. 测试错误提示信息不属于文档测试范围。( ×)

软件测试方法和技术练习题与答案

一、判断题 1.测试是调试的一个部分(╳) 2.软件测试的目的是尽可能多的找出软件的缺陷。(√) 3.程序中隐藏错误的概率与其已发现的错误数成正比(√) 测试是验收测试的一种。(√) 5.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 6.项目立项前测试人员不需要提交任何工件。(╳) 7.单元测试能发现约80%的软件缺陷。(√) 8.测试的目的是发现软件中的错误。(√) 9.代码评审是检查源代码是否达到模块设计的要求。(√) 10.自底向上集成需要测试员编写驱动程序。(√) 11.测试是证明软件正确的方法。(╳) 12.负载测试是验证要检验的系统的能力最高能达到什么程度。(√) 13.测试中应该对有效和无效、期望和不期望的输入都要测试。(√)验收测试是由最终用户来实施的。(√) 14.测试人员要坚持原则,缺陷未修复完坚决不予通过。(√) 黑盒测试也称为结构测试。(╳) 集成测试计划在需求分析阶段末提交。(╳)15.软件测试的目的是尽可能多的找出软件的缺陷。(√) 16.自底向上集成需要测试员编写驱动程序。(√) 17.负载测试是验证要检验的系统的能力最高能达到什么程度。(╳) 18.测试程序仅仅按预期方式运行就行了。(╳) 19.不存在质量很高但可靠性很差的产品。(╳) 20.软件测试员可以对产品说明书进行白盒测试。(╳) 21.静态白盒测试可以找出遗漏之处和问题。(√) 22.总是首先设计白盒测试用例。(╳) 23.可以发布具有配置缺陷的软件产品。(√)24.所有软件必须进行某种程度的兼容性测试。(√) 25.所有软件都有一个用户界面,因此必须测试易用性。(╳) 26.测试组负责软件质量。(╳) 27.按照测试实施组织划分,可将软件测试分为开发方测试、用户测试和第三方测试。(√) 28.好的测试员不懈追求完美。(×) 29.测试程序仅仅按预期方式运行就行了。(×) 30.在没有产品说明书和需求文档的条件下可以进行动态黑盒测试。(√) 31.静态白盒测试可以找出遗漏之处和问题。(√) 32.测试错误提示信息不属于文档测试范围。(×) 33.代码评审是检查源代码是否达到模块设计的要求。(√) 34.总是首先设计黑盒测试用例。(√) 35.软件测试是有风险的行为,并非所有的软件缺陷都能够被修复。(∨) 36.软件质量保证和软件测试是同一层次的概念。(x) 37.程序员兼任测试员可以提高工作效率。(x) 38.在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。(∨) 39.传统测试是在开发的后期才介入,现在测试活动已经扩展到了整个生命周期。(∨)40.传统测试以发现错误为目的,现在测试已经扩展到了错误预防的范畴。∨ 41.软件测试的生命周期包括测试计划、测试设计、测试执行、缺陷跟踪、测试评估。(∨)42.软件生存周期是从软件开始开发到开发结束的整个时期。(x) 43.测试用例的数目越多,测试的效果越好。(x) 44.只要能够达到100%的逻辑覆盖率,就可以保证程序的正确性。(x) 45.单元测试属于动态测试。(∨) 46.验收测试是以最终用户为主的测试。(∨) 47.没有发现错误的测试是没有价值的。(∨) 48.可以把不合格的开发人员安排做测试。(x)

软件工程课后题答案

附加题: 1、对下列子程序进行调试: procedure example(y,z: real; var x: real) begin if (y>1) and (z=0) then x:=x/y; if (y=2) or (x=l) then x:=x+l; end. 该子程序接受x, y, z的值,并将计算结果x的值返回给调用程序。答题要求: (1)画出流程图。 (2)用白盒法设计测试用例,并写出它所满足的是何种覆盖标准、预期结果以及路径。 答:(1)流程图 (2)用白盒法中条件组合覆盖设计测试用例: ①y=2, z=0, x=4; ②y=2, z=1, x=1; ③y=1, z=0, x=2; ④y=1, z=1, x=1. 2、某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的6位数字字符组成,前四位代表年,后两位代表月。现要求用黑盒测试法中的边界值法写出测试用例。 答: 输入条件测试用例说明测试数据 报表日期的1个数字字符 5 类型及长度5个数字字符20035 7个数字字符2003005 有1个非数字字符2003.5 全部是非数字字符MAY--- 6个数字字符200305 日期范围在有效范围200301 边界上选取200812 数据200300

200813 月份范围月份为1月200301 月份为12月200312 月份<1 200300 月份>12 200313 3、对以下程序进行测试: PROCEDURE EX(A,B:REAL;VAR X:REAL); BEGIN IF(A=3)OR(B> 1)THEN X:=A×B IF(A>2)AND(B=0)THEN X:=A-3 END 先画出程序流程图。再按不同逻辑覆盖法设计一种(写出名称)测试数据。 答: 语句覆盖A=3 B=0 4、程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。 (1)按等价分类法设计测试用例(要求列出设计过程) (2)按边缘值分析法设计测试用例。 答: 1)合理等价类 选修1门 选修2门 选修3门 不合理等价类 没选课 选3门以上 测试用例 选修=2

软件测试试题及答案分析

单选 1. 属于黑盒测试的方法?( C) A.基于基本路径 B.控制流 C.基于用户需求测试 D.逻辑覆盖 2.在Assert类中断言对象为NULL是_____。(D) A.assertEquals B.assertTrue C.fail D.assertNull 3.___________的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求(A) A.系统测试B.集成测试 C.单元测试D.功能测试 4.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准___________。(B) A. 语句覆盖 B.判定覆盖 C.条件覆盖 D.路径覆盖 5.软件测试的目的是___________。(C) A.表明软件的正确性B.评价软件质量 C.尽可能发现软件中的错误D.判定软件是否合格 6.关于白盒测试与黑盒测试的最主要区别,正确的是___________。(A) A.白盒测试侧重于程序结构,黑盒测试侧重于功能 B.白盒测试可以使用测试工具,黑盒测试不能使用工具 C.白盒测试需要程序参与,黑盒测试不需要 D.黑盒测试比白盒测试应用更广泛 7.软件测试类型按开发阶段划分___________。(B) A.需要测试﹑单元测试﹑集成测试 B.单元测试﹑集成测试﹑确认测试﹑系统测试﹑验收测试 C.单元测试﹑集成测试﹑确认测试 D.调试﹑单元测试﹑功能测试 8.在Junit中,testXXX()方法就是一个测试用例,测试方法是______。(B) A.private void testXXX() B.public void testXXX() C.public float testXXX() D.public int testXXX() 9.软件测试是软件质量保证的重要手段,下述哪种测试是软件测试的最基础环节?(A)A.单元测试B.集成测试 C.目的测试D.确认测试 10.增量式集成测试有3种方式:自顶向下增量测试方法,和混合增量测试方式。(D ) A.自中向下增量测试方法B.多次性测试 C.维护D.自底向上增量测试方法 1)以下不属于软件测试的原则有(D )。 A.程序最好别让由编写该程序的程序员自己来测试

软件测试技术基础课后习题答案[1]

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮, 就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 6.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

软件工程习题答案参考

软件工程 绪论 1.什么是软件危机为什么会产生软件危机 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。 (2).软件生产技术进步缓慢 2.什么是软件生产工程化工程化生产方法与早期的程序设计方法主 要差别在哪里 答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程,同时这也是工程化生产方法。 3.分别说明(1)软件开发方法与开发工具;(2)软件技术与软件管 理的相互关系。 答:(1)工具和方法,是软件开发技术的两大支柱,它们密切相关。当一种方法提出来并证明有效后,往往随之研制出相应的工具,来帮助实现和推行这种方法。新方法在推行初期,总有人不愿接受和采用。若将新方法融合于工具之中,使人们通过使用工具来了解新方法,就能更快促进新方法的推广。(2)在工业生产中,即使有先进的技术和设备,管理不善的企业也不能获得良好的效益。软件在生产中不能按质按时完成计划,管理混乱往往是其中的重要原因。所以对于

一个理想的软件工程环境,应该同时具备技术和管理两个方面。 4.试从你的亲身实践,谈谈软件工具在软件开发中的作用。 答:用C++开发一个软件,是校园一卡通的模块。首先,要在编辑程序支持下在计算机中输入源程序。然后编译程序,把源程序翻译成目标程序。如果发现错误,就重新调入编辑程序对源程序进行修改。编译通过后,再调用连接程序吧所有通过了编译目标程序连同与之有关的程序连接起来,构成一个能在计算机上运行的可执行软件。编译程序,编辑程序,连接程序以及支持他们的计算机操作系统,都属于软件工具。离开这些工具,软件开发就是去了支持,变得十分困难和低效,甚至不能运行。 5.什么是软件工程环境谈谈你对环境重要性的认识。答:方法与工具相结合,再加上配套的软、硬件支持就形成环境。例如在批处理时代,用户开发的程序是分批送入计算机中心的计算机的,有了错误,就得下机修改。程序员对自己写的程序只能继续地跟踪,思路经常被迫中断,效率难于提高。分时系统的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点,就明显提高了开发的效率。 6. 何谓面向对象软件工程简述它与传统软件工程在各型软件开发中的作用。 答:以面向对象程序设计为基础。 7. 软件按规模大小可分成哪几类简述软件工程中各型软件开发中的作用。 答:按规模分为极小、小、中、大、甚大、极大。(1)中小型软件:

软件测试练习题及答案

一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对(35)在测试中发现缺陷多的地方,还有更多的缺陷将会被发现。对

软件工程课后参考答案

第一章 1.1什么是计算机软件?软件的特点是什么? 计算机软件是指计算机系统中的程序及其文档 软件的特点: ●软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。 ●软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可, 但其维护的工作量大。 ●软件的使用没有硬件那样的机械磨损和老化问题。 1.2简述软件的分类,并举例说明 1.系统软件 系统软件居于计算机系统中最接近硬件的一层,其他软件一般都通过系统软件发挥作用。例如:编译软件、操作系统。 2.支撑软件 支撑软件是支撑软件的开发和维护的软件。例如:数据库管理系统、网络软件、软件工具、软件开发环境。 3.应用软件 应用软件是特定应用领域专用的软件。例如:工程/科学计算机软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。 1.3简述软件语言的分类,并举例说明。 1.需求定义语言 是用于书写软件需求定义的语言。例如:PSL/PSA。 2.功能性语言 是用于书写软件功能规约的语言,通常又称为功能规约语言。例如:广谱语言、Z 语言。 3.设计性语言 是用于书写软件设计规约的语言。例如:PDL。 4.实现性语言 也称为程序设计语言,是用于书写计算机程序的语言。例如:C、java、PROLOG、FORTRAN、COBOL、Modula。 5.文档语言 是用于书写软件文档的语言。通常用自然语言或半形式化语言书写。 1.4什么是软件工程? 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。 1.5简述软件工程的基本原则。 软件工程原则包括围绕工程设计、工程支持和工程管理所提出的以下4条基本原则。 1.选取适宜的开发模型 必须认识需求定义的易变性,采用适宜的开发模型,保证软件产品满足用户的要求。 2.采用合适的设计方法

软件测试练习题及答案

练习题 一、判断 (01)测试是为了验证软件已正确地实现了用户的要求。错 (02)白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。对 (03)白盒测试不仅与程序的内部结构有关,还要考虑程序的功能要求。错 (04)程序员兼任测试员可以提高工作效率。错 (05)黑盒测试的测试用例是根据应用程序的功能需求设计的。对 (06)当软件代码开发结束时,软件测试过程才开始。错 (07)据有关数据统计,代码中60%以上的缺陷可以通过代码审查发现出来。对(08)无效等价类是无效的输入数据构成的集合,因此无需考虑无效的等价类划分。错(09)软件本地化就是将一个软件产品按特定国家或语言市场的需要翻译过来。错(10)在压力测试中通常采用的是黑盒测试方法。对 (11)软件测试员无法对产品说明书进行白盒测试。对 (12)功能测试工具主要适合于回归测试。对 (13)测试人员说:“没有可运行的程序,我无法进行测试工作”。错 (14)自底向上集成需要测试员编写驱动程序。对 (15)测试是可以穷尽的。错 (16)自动化测试相比手工测试而言,能发现更多的错误。错 (17)软件测试自动化可以提高测试效率,可以代替手工测试。错 (18)语句覆盖法的基本思想是设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。对 (19)Beta测试是验收测试的一种。对 (20)软件开发全过程的测试工作都可以实现自动化。错 (21)软件只要经过严格严谨的内部测试之后,可以做到没有缺陷。错 (22)结构性测试是根据软件的规格说明来设计测试用例。错 (23)软件测试工具可以代替软件测试员。错 (24)通过软件测试,可以证明程序的正确性。错 (25)在单元测试中,驱动程序模拟被测模块工作过程中所调用的下层模块。错(26)软件缺陷可能会被修复,可能会被保留或者标识出来。对 (27)测试用例是由测试输入数据和对应的实际输出结果这两部分组成。错(28)单元测试通常由开发人员进行。对 (29)现在人们普遍认为软件测试不应该贯穿整个软件生命周期,而应在编程完毕之后再进行,这样可以降低成本。错 (30)文档的错误不是软件缺陷。错 (31)Junit只是单元测试工具,并不能进行现回归测试。错 (32)判定表法是一种白盒测试方法。错 (33)白盒测试不考虑程序内部结构。错 (34)在单元测试中,桩程序模拟被测模块工作过程中所调用的下层模块。对

软件工程课后习题答案

第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。 软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。 (6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。 软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是 整体构架的错误。 三、什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机? 1993年IEEE的定义:软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 软件工程的本质特征: (1) 软件工程关注于大型程序(软件系统)的构造(2) 软件工程的中心课题是分解问题,控制复杂性(3) 软件是经常变化的,开发过程中必须考虑软件将来可能的变化 (4) 开发软件的效率非常重要,因此,软件工程的一个重要课题就是,寻求开发与维护软件的更好更有效的方法和工具 (5) 和谐地合作是开发软件的关键(6) 软件必须有效地支持它的用户 (7) 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人(完成一些工作)消除软件危机的途径: (1) 对计算机软件有一个正确的认识(软件≠程序) (2) 必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 (3) 推广使用在实践中总结出来的开发软件的成功技术和方法 (4) 开发和使用更好的软件工具

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件测试笔试题及答案修订

1、TCP是互联网中的(1)协议,使用(2)次握手协议建立连接。当主动发出SYN连接请求后,等待对方回答(3)。这种连接的方法可以防止(4),TCP使用的流量控制协议是(5)。 (1)A.传输层B.网络层C会话层D.应用层 (2)(3),,,,ACK (4)A.出现半连接B.无法连接C.假冒的连接D.产生错误的连接 (5)A.固定大小的滑动窗口协议B.可变大小的滑动窗口协议C.后退N帧ARQ协议D.选择重发ARQ 协议 2、下列叙述中,与提高软件可移植性相关的是。 A.选择时间效率高的算法 B.尽可能减少注释 C.选择空间效率高的算法 D.尽量用高级语言编写系统中对效率要求不高的部分 D软件可移植性是指与软件可从某一环境移植到另一环境的能力有关的一组属性。高级语言具有较好的可移植性,所以可以尽量用高级语言编写系统中对效率要求不高的部分。减少注释、选择时间/空间效率高的算法都不能提高软件的可移植性。 3、用边界值分析法,假定1

相关文档
最新文档