还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《软件工程与软件测试技术》课程期末复习资料
一、客观部分(单项选择、多项选择)
(一)、单项选择1模块独立性是由内聚性和耦合性来度量的,其中内聚性是(A)A.模块间的联系程度B.模块的功能强度C.信息隐藏程度D.接口的复杂程度
2.成本/效益分析是(A)的一项重要内容A.可行性研究B.需求分析C.软件测试D.软件维护
3.软件开发模型不包括(B)A.瀑布模型B.用例模型C.增量模型D.螺旋模型
4.(D)是关于数据的信息集合,是结构化分析模型的核心A.数据流图B.数据字典C.状态转换图D.实体关系图
5.在实体-关系图中,包含以下基本成分(C)A.实体、关系、控制B.状态、事件、关系C.数据对象、属性、关系D.数据、对象、实体
6.以下对状态转换图描述错误的是(C)A.状态转换图通过描绘系统的状态及引用系统状态转换的事件,来表示系统的行为B.状态图的状态有初态、终态和中间状态,在一张图中三种状态都可以有0至多个C.状态图中事件是引起系统做动作或(和)转换状态的控制信息D.状态图提供了行为建模机制
7.在面向数据流的设计方法中,一般将数据流分为(C)A.信息流和控制流B.变换流和控制流C.变换流和事务流D.事务流和控制流
8.逻辑覆盖测试法中,条件覆盖的目的是(C)A.使程序中每个语句至少执行一次B.使程序每个语句至少执行一次,且每个判定表达式中条件的各种可能组合都至少出现一次C.使程序中每个语句至少执行一次,且每个判定表达式至少获得一次真值和假值D.使程序中每个语句至少执行一次,且使判定表达式中的每个条件都取到各种原则五穷举测试是不可能的原则六测试要有独立性
5.有哪些常用的黑盒测试方法?有哪些常用的白盒测试方法?用黑盒技术设计测试用例一般有等价类划分、边界值分析、错误推测和因果图4种方法常用的白盒测试方法包括逻辑覆盖测试法、循环测试法、基本路径测试法在逻辑覆盖法中大致又可以分为语句覆盖、判定覆盖、条件覆盖、判定条件覆盖和条件组合覆盖
6.简述等价类划分以及等价类划分原则等价类划分法是把所有可能的输入数据(有效的和无效的)划分成若干个等价类则可以合理地做出下述假定每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同用少量有代表性的测试数据代替大量测试目的相同的例子,能有效提高测试效率,并取得良好的测试效果在划分等价类时,可以将其划分为两类有效等价类和无效等价类有效等价类是指完全满足程序输入的规范说明,是合理的、有意义的输入数据所构成的集合利用有效等价类可以检验程序是否满足规范说明书所规定的功能和性能无效等价类是指不满足程序输入的规范说明,是不合理的、无意义的输入数据所构成的集合利用无效等价类可以检验程序的容错性等价类划分原则1)如果规定了输入取值范围或输入数据的个数,则可划分出一个有效等价类(在范围内)和两个无效等价类(输入值小于最小值或大于最大值)2)如果规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,还有一个无效等价类(不允许的输入值)3)如果规定了输入数据必须遵循的规则,则可划分出一个有效等价类(符合规则)和若干个无效等价类(从各种不同角度违反规则)4)如果规定了输入数据为整型,则可以划分出正整数、零、负整数3个有效等价类,其他为无效等价类
6.简述边界值分析法及边界值分析的原则边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充,人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部因此针对各种边界情况设计测试用例,可以查出更多的错误这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况通常输入等价类与输出等价类的边界,是重点测试的内容,应当选取正好等于、刚刚大于、或刚刚小于边界的值作为测试数据边界值分析原则1)刚刚达到这个范围的边界值,以及刚刚超越这个范围的边界值作为测试输入数据;2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多
1、比最小个数少1的数作为测试数据;3)根据规格说明书的每个输出条件,使用前面的原则1和2;4)规格说明书给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
7.什么是类,什么是对象,类和对象是什么关系?类是具有相同属性和操作的一组相似对象(实体)的集合也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明类为属于该类的全部对象提供了统一的抽象描述同类的对象具有相同的属性和方法对象是对问题域中客观存在的事物的抽象,是一组属性和在这些属性上的操作的封装体在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西由于客观世界中的实体通常都既具有静态的属性,又具有动态的行为,因此,面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体因此,对象又称为是类的一个“实例(Instance),类又称为是对象的“模板Template MO另外,类是静态的,类的语义和类之间的关系在程序执行之前已经定义,但对象是动态的,在程序执行过程中可以动态地创建和删除对象;类代表一类抽象的概念或事物,对象是在客观世界中实际存在的类的实例
8.简述面向对象方法学中类与类之间的关系类与类之间的关系包括继承、多态性、关联、依赖、实现、聚集与组合继承是子类自动地共享父类中定义的数据和方法的机制反过来,从子类抽取共同通用的特征形成父类的过程也叫做泛化(Generalization)继承可以表示类与类、接口与接口之间的继承关系,或类与接口之间的实现关系具有继承关系的类之间,既具有共享特性又具有差别或新增,并且类之间具有层次结构继承具有传递性多态性指子类对象可以像父类对象那样使用,它们可以共享一个操作名,然而却有不同的实现方法关联体现的是两个类之间语义级别的一种强依赖关系,长期性的,平等的关联可以是单向的、双向的依赖就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A关于关联关系和依赖关系有一个简单的判断原则某个类以成员变量的形式出现在另一个类中,二者是关联关系;某个类以局部变量的形式出现在另一个类中,二者是依赖关系实现是用来规定接口和实现接口的类之间的关系,接口是操作的集合,而这些操作就用于规定类或者构件的一种服务一个类可由一个或多类部分类组成,表示组成关系的整体和部分类之间的关联又可以细分为聚集和组合整体拥有各部分,部分与整体不是相同的生存期,如整体不存在了,部分还存在,称为聚集;还有一种情况,整体拥有各部分,部分与整体具有同样的生存期,如整体不存在了,部分也会随之消失,称为组合
9.面向对象分析主要建立哪几种模型?各自的特点是什么?面向对象分析过程,首要的是先建模,通常需要建立4种形式的模型由用例和场景表示的用例(功能)模型;用类和对象表示的对象(静态)模型;由状态机图和交互图表示的动态行为模型;由构件图和部署图表示的物理实现模型这4种模型从4个不同的角度描述目标系统,从不同侧面反映系统的实质内容,总体可以全面反映对目标系统的需求其中对象(静态)模型是上述分析阶段几个模型的核心,是动态模型和功能模型的框架用例(功能)模型往往是从用户需求的角度来描述系统,指明系统应该“做什么”,直接反映用户对目标系统的需求,描述数据在系统中的变换过程及系统的功能对象模型是面向对象方法最基础、最核心,也是最重要的模型无论解决什么问题,都需要从客观世界对象及对象之间的联系中抽象出有价值的信息,用于表示静态的、结构化的、系统的数据性质该模型主要关心系统中对象的结构、属性与操作,以及对象与对象之间关系的映射对象模型是对模拟客观世界的对象及对象彼此间的关系静态结构的描述,为建立动态模型和用例(功能)模型提供了实质性的框架一旦建立起对象模型之后,就需要考察对象的动态行为动态模型可以借助于交互(顺序图或通信图)或状态机(状态图或活动图)进行建模交互主要用于对共同工作的群体对象的行为建模,而状态机则是对单个对象的行为建模动态模型表示瞬时的、行为化的、系统的“控制性质,定义对象模型中对象的合法变化序列,描述系统中不同对象类之间的交互当问题系统涉及交互作用和时序,如用户界面交互和过程控制时,动态模型是重点物理实现模型关注的是系统实现过程的建模常常用构件图和部署图表示静态的物理实现模型,用交互图和状态机描述动态实现模型物理实现模型从实现子系统和实现元素(即构件)的角度来表现系统实现的物理组成
10.建立动态行为模型借助哪些UML图?这些UML图如何描述动态行为建立动态行为模型动态行为是系统中的对象在执行期间的不同时间点如何通信以及通信的结果如何交互图和状态机都用于系统的动态行为方面建模其中交互图包括顺序图和通信图,顺序图表示类(对象)按时间顺序的消息交换过程,体现出系统用例的行为顺序图是用来显示参与者如何采用若干顺序步骤与系统对象交互的模型通信图描述对象之间的关联及它们彼此之间的消息通信顺序图强调交互的时间次序,而通信图强调交互的空间结构,这两者在语义上是等价的,二者可以相互转换,而不会丢失信息状态机可以用两种方式来可视化执行的动态,一种是强调包括从活动到活动的控制流,用活动图表示;另一种是强调对象潜在的状态和这些状态之间的转移,用状态图表示状态图通过建立类对象的生存周期模型来描述对象的状态、触发状态转换的事件及对象随时间变化的动态行为(对事件的响应)状态是给定类对象中的一组属性值,这组属性值是对象所有属性的子集在状态图中定义的状态主要有初态(即初始状态)、终态(即最终状态)和中间状态在一张状态图中只能有一个初态,而终态则可以有至多个事件表示在某一特定的时间或空间出现的能够引发状态改变的一种运动变化转换表示当一个特定事件发生或者某些条件得到满足时,一个源状态下的对象在完成一定的动作后将发生状态转变活动是某件事情正在进行的状态,活动具体表现为由一系列动作组成的执行过程将各种活动及不同活动之间的转换用图形进行表示,就构成了活动图,对系统的行为建模活动图的UML图形表示中,如果一个活动引发下一个活动,两个活动的图标之间用带箭头的直线连接与状态图类似,活动图也有起点和终点,表示法和状态图相同UML的活动图中包含的图形元素有动作状态、活动状态、动作流、分支与合并、分叉与汇合、分区和对象流等II.简述可行性研究的目的、任务和具体步骤可行性研究的目的用最小的代价在尽可能短的时间内确定问题是否能够解决需要明确,这个阶段不是解决用户提出的问题,而是确定这个问题是否值得去解决可行性研究的主要任务首先需要进一步分析和澄清问题定义,在问题定义阶段初步确定的规模和目标,如果是正确的就进一步加以肯定,如果有错误就应该及时改正,如果对目标系统有任何约束和限制,也必须把它们清楚地列举出来;在澄清了问题定义之后,分析员应该导出系统的逻辑模型;然后从系统逻辑模型出发,探索若干种可供选择的主要解法,也就是系统实现方案;分析每种解法可行性和利弊,从而判定系统的目标和规模是否现实,系统完成后带来的效益是否达到值得投资开发这个系统的程度可行性的研究实际上是一次大大简化了的系统分析和系统设计的过程,即以抽象的方式进行分析和研究可行性研究的步骤典型的可行性研究一般要经过以下步骤1)复查并确定系统规模和目标;2)研究目前正在使用的系统;3)建立新系统的高层逻辑模型;4)导出和评价各种方案;5)推荐可行方案;6)草拟初步的开发计划;7)编写可行性研究报告提交审查可能的结果
9.(B)是面向对象系统中对象之间交互的途径,是向另外一个对象发出的服务请求A.类B.消息C,封装D.调用
10.应该在(D),完整地定义每个类的服务A.建立对象模型之时B.建立功能模型之后C.建立动态模型之后D.建立动态模型和功能模型之后
(二)、多项选择
1.软件过程是为了获得高质量所需要完成的一系列任务的框架,它包括(ABC)A.实现过程B.管理过程C.支持过程D.测试过程
2.下述任务中,属于软件工程需求分析阶段的是(AB)A.确定对系统的综合需求B.分析系统的数据需求C.确定系统由哪些模型组成及每个模块的功能D.建立软件的逻辑模型
3.软件设计是把软件需求转换为软件表示的过程,软件设计的任务包括(ABCD)A.数据设计B.体系结构设计C.接口设计D.过程设计
4.结构化程序设计所使用的结构有(AB)A.顺序B.选择C.重复D.GOTO
5.以下哪些是软件详细设计工具(ABC)A.程序流程图B.盒图(N-S图)C.问题分析图(PAD图)D.HIPO图
6.从发展历程来看,程序设计语言可以分为(ABCD)几代A.机器语言B.汇编语言C.高级语言D.非过程化语言
7.软件产品在交付使用之前一般要经过(ABCD)A.单元测试B.集成测试C.确认测试D.系统测试
8.下列关于软件测试和调试的说法正确的是(ABCD)A.测试的目的是为找出软件中所有存在的错误B.调试的目的是为了解决软件中存在的错误C.成功的测试是发现了至今为止尚未发现的错误的测试D.调试能够证明软件的正确性
9.软件维护活动可以归结为以下(ABCD)几类A.改正性维护B.适应性维护C.完善性维护D.预防性维护
10.统一建模语言UML的表示方法有(ABCD)A,视图B.图C.模型元素D.公共机制
11.在面向对象的设计中,应遵循的设计准则包括(ABCD)A.高内聚、低耦合B.信息隐藏C.模块化、抽象D.可重用
12.面向对象系统的逻辑设计模型划分为若干部分,分别对应组成目标系统的(ABCD)o A.问题域子系统B.人机交互子系统C.任务管理子系统D.数据管理子系统13,在面向对象的服务设计中,确定类中应用的服务包括(ABC)A.从对象模型中引入服务B.从用例模型中引入服务C,从动态模型中引入服务D.从物理模型中引入服务
二、主观部分
(一)、名词解释
1.软件工程软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件
2.软件过程软件过程(software process)是为了获得高质量所需要完成的一系列任务的框架,它规定了完成多项任务的工作步骤
3.软件生命周期软件生命周期是指某一软件项目被提出来并着手实现开始直到该软件报废或停止使用为止的生命周期,又称软件生存期
4.数据流图数据流图(Data FlowDiagram,DFD)用于表示系统逻辑模型的一种工具,它以直观的图形清晰地描述了系统数据的流动和处理过程数据流图是系统逻辑功能的图形展示图中没有任何具体的物理元素,主要强调的是数据流和处理过程即使不是计算机专业人员也很容易理解,因此是软件开发人员和用户之间极好的通信工具设计数据流图时只需考虑软件系统必须完成的基本逻辑功能,不需要考虑如何具体实现这些功能,所以它也是今后进行软件设计开发的很好的出发点数据流图有4种基本符号方框或立方体,表示数据的源点或终点,是系统之外的实体;圆形或者圆角矩形,表示加工(变换数据的处理);两行平行线或者开口矩形表示数据存储;箭头表示数据流,即特定数据的流动方向
5.数据字典数据字典是关于数据的信息集合,也是对数据流图包含的所有元素的定义的集合数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息数据流图和数据字典共同构成系统的逻辑模型没有数据字典,数据流图就不严格;然而没有数据流图,数据字典也难于发挥作用对数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明
6.软件总体设计软件总体设计是将软件需求转化为数据结构和软件的系统结构的过程总体设计是软件结构的建立过程,它将软件系统分解成许多个模块,并决定每个模块的外部特征,即功能和界面(输入和输出)
7.结构化设计方法结构化设计(Structured Design,简称SD)方法,也称为面向数据流的设计方法,与结构化分析方法相衔接结构化设计方法目标是通过对数据流的分析来设计软件结构,将数据流图映射为软件结构图
8.判定表当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系判定表用于表示程序的静态逻辑,在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理,要求将程序流程图中的多分支判断都改成两分支判断一张判定表由4部分组成左上部列出所有条件;左下部是所有可能做的动作;右上部是表示各种条件组合的一个矩阵;右下部是和每种条件组合相对应的动作判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作
9.静态测试静态测试,就是静态分析,指被测程序不在机器上运行,对模块的源代码进行研读,查找错误或收集一些度量数据,检测只进行特性分析
10.动态测试动态测试是指通过运行程序发现错误
11.黑盒测试黑盒测试,也称功能测试或数据驱动测试它不考虑程序内部结构和处理过程把被测程序看成一个黑盒子,只在软件接口处进行测试测试者只知道该程序输入和输出之间的关系或程序的功能,依靠能够反映这一关系和程序功能的需求规格说明书考虑确定测试用例和推断测试结果的正确性,检查程序是否满足功能要求黑盒测试被用来证实软件功能的正确性和可操作性
12.白盒测试白盒测试,也称结构测试或逻辑驱动测试白盒测试法与黑盒测试法不同,测试人员将程序视为一个透明的白盒子,测试人员需了解程序的内部结构和处理过程以检查处理过程的细节为基础,要求对程序的结构特性做到一定程度的覆盖,对程序中的所有逻辑路径进行测试,并检验内部控制结构是否有错,确定实际的运行状态与预期的状态是否一致
13.测试用例测试用例是针对特定测试对象而开发的一组输入、预置条件和预期结果测试用例的基本目的是确定一组最有可能发现某个错误或某类错误的测试数据测试用例的不足在于不可能测试程序的每条路径,也不能把所有数据都试一遍
14.集成测试集成测试是在单元测试基础上,将所有模块按要求组装成一个完整的系统而进行的测试集成测试用于组装软件的一种系统的技术,是要把模块按照设计要求组装起来的同时进行测试,用以发现和接口相联系的问题
15.确认测试确认测试,又称为有效性测试或验收测试,是从质量的角度,在功能、性能、可靠性、易用性等方面对软件做全面的质量检测
16.系统测试系统测试是将经过单元测试、集成测试、确认测试以后的软件,作为计算机系统中的一个组成部分,需要与系统中的硬件、外部设备、支持软件、数据及操作人员结合起来,在实际运行环境下对计算机系统进行一系列的严格有效的测试来发现软件的潜在问题,以保证各组成部分不仅单独的正常运行,而且在系统各部分统一协调下也能正常运行系统测试不同于功能测试功能测试主要是验证软件功能是否符合用户需求,并不考虑各种环境及非功能问题,如安全性、可靠性、性能等,而系统测试是在更大范围内进行的测试,着重对系统的性能、特性进行测试
17.Q测试a测试是用户在开发者的场所进行,并且在开发者对用户的“指导下进行测试开发者负责记录发现的错误和使用中遇到的问题
18.B测试B测试是由软件的最终用户们在一个或多个客户场所进行,在开发者不能控制的环境中的“真实”应用用户记录下在B测试过程中遇到的一切问题(真实的或想象的),并且定期把这些问题报告给开发者开发者对产品进行修改和完善,最终得到正式的发布版本
16.软件可维护性软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度软件可维护性是软件开发阶段各个时期的关键目标
17.封装封装指把对象的属性和操作结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,又称信息隐藏通过对象的封装特性,用户只能看到对象封装界面上的信息,对象内部对用户是隐蔽的,有效地实现了模块化功能封装的目的是将对象的使用者与设计者分开
18.构件构件是一个相对独立的可装配的物理块,一般作为一个独立的文件存在构件具有确定的接口,相互之间可以调用,构件之间存在依赖关系构件定义了一个系统的功能,一个构件是一个或多个类的实现
(二)、简答
1.简述软件危机的表现形式,产生软件危机的原因,软件危机的解决途径软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题软件危机的表现形式1)对软件开发成本和研制进度的估计常常很不精确2)“已完成的软件不能满足用户要求3)软件产品质量差,可靠性得不到保证4)软件产品可维护性差5)软件成本在计算机系统总成本中所占的比例逐年上升6)软件开发生产率提高的速度,远远跟不上计算机应用速度普及深入的趋势产生软件危机的原因1)软件是计算机系统中的逻辑部件,软件产品往往规模庞大,结构复杂2)软件开发的管理困难3)软件开发费用不断增加,维护费用急剧上升,直接威胁计算机应用的扩大4)软件开发技术落后5)生产方式落后6)开发工具落后,生产效率提高缓慢软件危机的解决途径1)首先应该对计算机软件有一个正确的认识,彻底清除“软件就是程序”的错误观念2)要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法尽快消除在计算机系统早期发展阶段形成的一些错误观念和作法3)要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务充分认识软件开发不是某种个体劳动的神秘技巧
2.简述软件工程的基本目标软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发和维护软件软件工程的宗旨是为了提高软件生产率、降低生产成本,以较小的代价获得高质量的软件产品软件工程的基本目标包括1)付出较低的开发成本2)达到用户要求的全部软件功能3)取得较好的软件性能4)具有较好的易用性、可重用性和可移植性5)需要较低的维护费用,较高的可靠性6)能按时完成开发工作,及时交付用户使用
3.什么是软件的生命周期?典型的软件生命周期包括哪些阶段?软件生命周期中软件开发时期包含哪些阶段?并简述各阶段的主要任务软件生命周期是借用工程中产品生命周期的概念而得来的,是指某一软件项目被提出来并着手实现开始直到该软件报废或停止使用为止的生命周期,又称软件生存期软件的生命周期一般分为软件定义、软件开发和软件运行三个时期软件定义时期一般有问题定义、可行性研究和需求分析三个阶段;软件开发时期有概要设计、详细设计、编码和单元测试、综合测试阶段;软件维护时期完成运行维护阶段软件开发时期通常由下述4个阶段组成概要设计、详细设计、编码和单元测试、综合测试其中前两个阶段又称为系统设计,后两个阶段又称为系统实现
(1)概要设计又称为总体设计、初步设计、逻辑设计或高层设计这个阶段是要概括地回答“怎样实现目标系统?,主要任务是将需求转变为软件的表示形式开发人员要把确定的各项功能需求转换成需求的体系结构,即从需求规格说明书导出软件结构图(体系结构设计),确定由哪些模块组成以及模块之间的关系(接口设计、组件设计),同时还要设计该项目的应用系统的总体数据结构和数据库结构(数据库设计),撰写出总体设计说明书
(2)详细设计也称为模块设计、物理设计或低层设计,详细设计阶段的任务是要回答“应该怎样具体地实现这个系统?”,为概要设计阶段得到的软件结构图中的每个模块完成的功能进行具体描述、内部特征,要把功能描述转变为精确的、结构化的过程描述,即确定实现模块功能所需要的算法和数据结构,并用相应的详细设计工具表示出来,撰写软件的详细设计说明书
(3)编码和单元测试这个阶段的关键任务将软件设计转换成程序代码,写出正确的,容易理解、容易维护的程序模块程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块最终提交源程序、详尽的程序说明和单元测试报告
(4)测试是开发时期的最后一个阶段,是保证软件质量的重要手段这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求最基本的测试是集成测试和验收测试必要时还可以再通过现场测试或平行运行等方法对目标系统进一步测试检验集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试验收测试则是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参加下)对目标系统进行验收最终提交测试计划、详细测试方案以及实际测试结果等
4.什么是模块、模块化?软件设计为什么要模块化★考核知识点软件设计模块化模块,又称“组件,是软件结构的基础,是软件元素,是能够单独命名、独立完成一定功能的程序语句的集合模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程模块化是为了使一个复杂的大型程序能被人的智力所管理如果一个大型程序仅由一个模块组成,它将很难被人所理解模块化的目的是降低软件复杂性,使软件设计、测试、维护等操作变得容易运用模块化技术还可以防止错误蔓延,从而可以提高系统的可靠性
4.简述软件模块设计准则软件模块设计需要遵循的准则如下1)降低模块之间的耦合性,提高模块的内聚性2)模块结构的深度、宽度、扇出和扇入应适当3)模块的作用范围应该在控制范围内4)模块接口设计要简单,以便降低复杂程度和冗余度5)设计功能可预测并能得到验证的模块6)适当划分模块规模,以保持其独立性
5.简述软件测试的原则原则一所有的测试都应该能追溯到用户需求原则二测试工作具有创造性,但很困难
1.测试用例既要有输入数据,又要有对应的输出结果
2.测试用例不仅要选用合理的输入数据,还应选择不合理的输入数据
3.除了检查程序是否做了它应该做的工作,还应该检查程序是否做了它不应该做的工作原则三测试要有计划性
1.应该远在测试开始之前就制定测试计划
2.测试计划、测试用例、测试报告必须作为文档长期保存
3.严格执行测试计划,排除测试的随意性原则四把Pareto原理应用于软件测试。