《(4.1.4)--第三章 软件工程基础.ppt》由会员分享,可在线阅读,更多相关《(4.1.4)--第三章 软件工程基础.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章 软件工程基础软件工程基础主要内容主要内容3.1 软件工程基本概念软件工程基本概念 3.2 结构化分析方法结构化分析方法 3.3 结构化设计方法结构化设计方法3.4 软件测试软件测试 3.5 程序的调试程序的调试区分两组容易混淆名词:区分两组容易混淆名词:程序:程序:软件的组成部分。软件的组成部分。软件:软件:包括包括程序、数据和相关文档程序、数据和相关文档的完整组合。的完整组合。程序设计:程序设计:只是软件开发过程中的必要环节。只是软件开发过程中的必要环节。软件开发:软件开发:还包括需求分析、概要和详细设计、还包括需求分析、概要和详细设计、软件测试、运行和维护等多个环节。软件测试
2、、运行和维护等多个环节。如如:8(二二)3.1 软件工程基本概念软件工程基本概念3.1.1 软件定义与特点软件定义与特点 定义:定义:是指包括程序、数据以及相关文档的是指包括程序、数据以及相关文档的完整组合。完整组合。组成:组成:(1)机器可执行的程序和数据机器可执行的程序和数据 (2)机器不可执行的,与软件开发、运行、机器不可执行的,与软件开发、运行、维护和使用等有关的文档。维护和使用等有关的文档。分类:分类:系统软件、应用软件和支撑软件系统软件、应用软件和支撑软件(或工具软件或工具软件)。特点特点(6(6点点):具有抽象性具有抽象性(不是物理实体不是物理实体);没有明显制作过程;没有明显制
3、作过程;在运行、使用期间不存在磨损和老化问题;在运行、使用期间不存在磨损和老化问题;软件开发、运行对计算机系统具有依赖性。软件开发、运行对计算机系统具有依赖性。软件复杂性高、成本昂贵;软件复杂性高、成本昂贵;软件开发涉及诸多社会因素。软件开发涉及诸多社会因素。软件危机软件危机3.1.2 软件危机与软件工程软件危机与软件工程 定义:泛指在计算机软件的开发和维护过程中所定义:泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。遇到的一系列严重问题。软件工程软件工程 软件工程是应用于计算机软件的定义、开发和维软件工程是应用于计算机软件的定义、开发和维护的护的三要素:三要素:(1)(1)方法:方
4、法:完成软件工程项目的技术手段。完成软件工程项目的技术手段。(2)(2)工具:工具:支持软件的开发、管理和文档生成。支持软件的开发、管理和文档生成。(3)(3)过程:过程:支持软件开发各个环节的控制、管理。支持软件开发各个环节的控制、管理。为了消除软件危机,逐步形成了软件工程概念,为了消除软件危机,逐步形成了软件工程概念,开辟了工程学新兴领域开辟了工程学新兴领域软件工程学软件工程学。一整套方法、工具、文档、实践标准和工序。一整套方法、工具、文档、实践标准和工序。如如:2(7)如如:4(7)如如:6(三三)定义:软件产品从提出、实现、使用维护到定义:软件产品从提出、实现、使用维护到停止使用的过程
5、称为停止使用的过程称为软件生命周期软件生命周期。3.1.3 软件生命周期软件生命周期分三个阶段:软件定义、软件开发、运行维护分三个阶段:软件定义、软件开发、运行维护(1)(1)可行性研究与计划制定可行性研究与计划制定:确定开发目标和总:确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实的要求,给出功能、可靠性等可能方案,制定实施计划。施计划。(2)(2)需求分析需求分析:对软件需求进行分析并给出详细:对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,定义,编写软件规格说明书及初步的用户手册,提交评审。提交评审。1 软件定义:软件定义:如如:1(四四)(1)(1)软件
6、设计软件设计:概要设计和详细设计,给出软件的:概要设计和详细设计,给出软件的结构、模块和功能的划分等。编写概要设计、详细结构、模块和功能的划分等。编写概要设计、详细设计说明书和测试计划初稿。设计说明书和测试计划初稿。(2)(2)软件实现软件实现:源程序编码,把软件设计转换成计:源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。册和单元测试计划。(3)(3)软件测试软件测试:设计测试用例,检验软件各个组成:设计测试用例,检验软件各个组成部分。编写测试分析报告。部分。编写测试分析报告。3 3 软件运行软件运行和维
7、护和维护 软件投入运行,维护软件投入运行,维护(进行扩充和删改进行扩充和删改)。2 2 软件开发软件开发如如:预预1(一一),预预2(7)3.1.4 软件工程的目标与原则软件工程的目标与原则 基本目标:基本目标:较低开发成本达到要求软件功能较低开发成本达到要求软件功能,取得较取得较好性能;软件易于移植,维护费用低;按时完成开好性能;软件易于移植,维护费用低;按时完成开发,及时交付使用。发,及时交付使用。软件工程的理论和技术性研究的内容主要包括:软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理软件开发技术和软件工程管理。软件开发技术包括:软件开发方法学、开发过软件开发技术包括
8、:软件开发方法学、开发过程、开发工具和软件工程环境。程、开发工具和软件工程环境。软件工程管理包括:软件管理学、软件工程经软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。济学、软件心理学等内容。如如:4(二二)软件开发工具:软件开发工具:是用于帮助软件开发人员开发和是用于帮助软件开发人员开发和维护软件的一类特殊软件,它可以大大提高软件维护软件的一类特殊软件,它可以大大提高软件开发的效率。开发的效率。软件开发环境:软件开发环境:是全面支持软件开发全过程的是全面支持软件开发全过程的软软件工具件工具集合。这些软件工具按照一定的方法或模集合。这些软件工具按照一定的方法或模式组合起来,支持
9、软件生命周期内的各个阶段和式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。各项任务的完成。3.1.5 软件开发工具与软件开发环境软件开发工具与软件开发环境 3.2 分析方法分析方法 3.2.1 需求分析与需求分析方法需求分析与需求分析方法 1.1.需求分析:需求分析:需求分析定义:需求分析定义:开发人员准确理解用户的要求,开发人员准确理解用户的要求,调查分析,将用户非成形的需求陈述转化为完整的调查分析,将用户非成形的需求陈述转化为完整的需求定义,再转换到相应的需求格式说明的过程。需求定义,再转换到相应的需求格式说明的过程。软件开发方法包括:分析方法、设计方法、程软件开发方法包括:分析
10、方法、设计方法、程序设计方法。序设计方法。(1)需求获取需求获取:目的是确定系统各方面需求。与:目的是确定系统各方面需求。与用用户户交流、沟通全面地提炼出系统的功能性与非功能交流、沟通全面地提炼出系统的功能性与非功能性需求,即需求信息的来源是软件用户。性需求,即需求信息的来源是软件用户。(2)需求分析需求分析:对获取的需求分析和综合,给出系:对获取的需求分析和综合,给出系统解决方案和逻辑模型。统解决方案和逻辑模型。(3)编写需求规格说明书编写需求规格说明书:为用户、设计人员的交:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。流提供方便,还可作为控制软件开发进程的依据。(4)需
11、求评审需求评审:复审需求分析阶段的工作,验证需:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。求文档的一致性、可行性等。需求分析阶段的工作需求分析阶段的工作(四方面四方面):如如:7(2)如如:7(6)3.2.2 结构化结构化分析方法分析方法 结构化方法已成为系统、成熟的软件开发方法结构化方法已成为系统、成熟的软件开发方法之一。结之一。结构化方法的核心和基础是结构化程序设计构化方法的核心和基础是结构化程序设计理论。理论。结构化分析方法的实质:面向数据流,自顶向结构化分析方法的实质:面向数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图下,逐层分解,建立系统的处理流程,以数据流
12、图和数据字典为主要工具,建立系统的逻辑模型。和数据字典为主要工具,建立系统的逻辑模型。2.2.需求分析方法:需求分析方法:(1)1)结构化分析方法:主要包括面向数据流的结构结构化分析方法:主要包括面向数据流的结构化分析方法;面向数据结构的化分析方法;面向数据结构的JacksonJackson方法。方法。(2)(2)面向对象的分析方法。面向对象的分析方法。1.1.数据流图数据流图(DFDData Flow Diagram)作用:作用:以图形的方式描述数据在系统中流动和以图形的方式描述数据在系统中流动和处理的过程,使用处理的过程,使用DFD为系统建立逻辑模型。为系统建立逻辑模型。基本符号基本符号(
13、四种四种):箭头表示箭头表示数据流数据流,旁边标上数据流名称,旁边标上数据流名称。圆或椭圆表述圆或椭圆表述加工加工。双杠表示双杠表示数据存储数据存储,即保存的数据文件。,即保存的数据文件。矩形表示系统和环境的接口,即系统外部的实体。矩形表示系统和环境的接口,即系统外部的实体。结构化分析的常用工具结构化分析的常用工具:数据流图、数据字典、:数据流图、数据字典、判定树、判定表。判定树、判定表。数据流图包括数据流图包括4个方面:个方面:加工、数据流、存储文件、源和潭加工、数据流、存储文件、源和潭如如:1(3)如如:3(7)如如:5(1)如如:7(5)举例:举例:2.2.数据字典数据字典(DDData
14、 Dictionary)定义:是定义:是所有与系统相关的数据元素的一个有所有与系统相关的数据元素的一个有组织的列表,以及精确、严格的详细定义。组织的列表,以及精确、严格的详细定义。作用:作用:对对DFD中出现的被命名的图形元素的中出现的被命名的图形元素的确切解释。数据字典与确切解释。数据字典与DFD共同构成了系统的逻共同构成了系统的逻辑模型。辑模型。数据字典是各类数据描述的集合,它通常包括数据字典是各类数据描述的集合,它通常包括5 5个部分,即个部分,即数据项、数据结构、数据流、数据存数据项、数据结构、数据流、数据存储和处理过程储和处理过程。如如:5(一一),8(五五)3.2.3 软件需求规格
15、说明书软件需求规格说明书 定义:定义:是需求分析阶段的最后成果是需求分析阶段的最后成果。它对所。它对所开发的软件的功能、性能、用户界面及运行环境开发的软件的功能、性能、用户界面及运行环境等进行详细说明。等进行详细说明。作用作用:便于用户与开发人员交流;作为软件便于用户与开发人员交流;作为软件开发的依据;作为测试和验收的依据开发的依据;作为测试和验收的依据。内容:内容:制定出完整的数据描述、详细的功能制定出完整的数据描述、详细的功能说明、恰当的检验标准以及其他有关数据。说明、恰当的检验标准以及其他有关数据。特点:特点:正确而无歧义性,简明易懂正确而无歧义性,简明易懂,可修改可修改性,可验证性等。
16、性,可验证性等。如如:2(6)如如:6(4)3.3 结构化设计方法结构化设计方法 3.3.1 软件设计过程及原则软件设计过程及原则 1.1.软件设计基础知识软件设计基础知识 定义:定义:软件设计是把软件需求转换为软件的具体设计软件设计是把软件需求转换为软件的具体设计方案,即模块结构的过程。确定系统的物理模型。方案,即模块结构的过程。确定系统的物理模型。内容:内容:从技术观点:包括软件结构设计、数据设计、接从技术观点:包括软件结构设计、数据设计、接口设计、过程设计。口设计、过程设计。从工程管理角度:从工程管理角度:概要设计:确定软件系统结构,模块划分。概要设计:确定软件系统结构,模块划分。详细设
17、计:确立每个模块的实现算法和局部数据结构。详细设计:确立每个模块的实现算法和局部数据结构。软件设计的一般过程:软件设计的一般过程:先进行高层次结构设计;再进先进行高层次结构设计;再进行低层次过程设计;穿插数据设计和接口设计。行低层次过程设计;穿插数据设计和接口设计。2.2.软件设计基本原则软件设计基本原则(1)(1)抽象:抽象:抽出事物的本质特性而不考虑其他细节。抽出事物的本质特性而不考虑其他细节。(2)(2)模块化:模块化:指解决一个复杂问题时自顶向下逐层把软件系指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。统划分成若干模块的过程。(3)(3)信息隐蔽:信息隐蔽:模块内包含
18、的信息,不允许其他不需要这些模块内包含的信息,不允许其他不需要这些信息的模块访问。信息的模块访问。(4)(4)模块独立性:模块独立性:每个模块只完成系统要求的独立的子功能,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。并且与其他模块的联系最少且接口简单。度量标准度量标准耦合性:耦合性:模块间互相连接的紧密程度。模块间互相连接的紧密程度。内聚性:内聚性:一个模块内部各个元素间彼此结合一个模块内部各个元素间彼此结合的紧密程度。的紧密程度。一个设计良好的软件系统应具有一个设计良好的软件系统应具有高内聚、低耦合高内聚、低耦合的特征。的特征。如如:2(三三)如如:5(5)如如
19、:预预2(6)内聚可以分为下列几种内聚可以分为下列几种,它们之它们之间的内聚度间的内聚度由弱到强由弱到强排列排列:1.偶然内聚2.逻辑内聚3.时间内聚4.过程内聚5.通信内聚6.顺序内聚7.功能内聚内聚度越高内聚度越高,独立性越强独立性越强,反之反之,独立性越弱。独立性越弱。弱弱强强如如:3(4)耦合可以分为下列几种耦合可以分为下列几种,它们之它们之间的耦合度间的耦合度由高到低由高到低排列排列:1.内容耦合2.公共耦合3.外部耦合4.控制耦合5.标记耦合6.数据耦合7.非直接耦合耦合度越高耦合度越高,独立性越弱独立性越弱,反之反之,独立性越强。独立性越强。高高低低如如:1(6)3.3.2 结构
20、化设计方法结构化设计方法 基本思想:基本思想:将软件设计成由相对独立且具有单一将软件设计成由相对独立且具有单一功能的模块组成的结构功能的模块组成的结构。1.1.概要设计概要设计基本任务基本任务(四点四点):(1)设计软件系统结设计软件系统结构构 概要设计阶段:进一步划分为模块以及模块的层次结构。概要设计阶段:进一步划分为模块以及模块的层次结构。(2)数据结构及数据库设计:实现需求定义和规格说明数据结构及数据库设计:实现需求定义和规格说明过程中提出的数据对象的逻辑表示过程中提出的数据对象的逻辑表示。(3)编写概要设计文档:包括概要设计说明书、数据库编写概要设计文档:包括概要设计说明书、数据库设计
21、说明书,集成测试计划等。设计说明书,集成测试计划等。(4)概要设计文档评审概要设计文档评审 2.2.数据流图到结构图的变换数据流图到结构图的变换 结构化设计方法的任务就是把需求分析得到的结构化设计方法的任务就是把需求分析得到的数据流图变换为结构图。数据流图变换为结构图。(1)(1)数据流图到结构图的变换数据流图到结构图的变换 数据流分为:变换型和事务型。数据流分为:变换型和事务型。变换型:变换型:信息沿输入通路进入系统信息沿输入通路进入系统,通过变换通过变换中心,经加工处理以后再沿输出通路变换成外部形中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。式离开软件系统。变换型数据处理的工
22、作过程变换型数据处理的工作过程分三步分三步:取得数据、变换数取得数据、变换数据、输出数据。据、输出数据。变换型系统结构图变换型系统结构图分三部分分三部分:输入、中心变换、输出。输入、中心变换、输出。如如:4(四四)事务型:事务型:数据流的特点是接受一项事务,根据数据流的特点是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处事务处理的特点和性质,选择分派一个适当的处理单元理单元(事务处理中心事务处理中心),然后给出结果。,然后给出结果。3.3.3 3.3.3 详细设计及工具详细设计及工具 详细设计任务:详细设计任务:为软件结构图中的每一个模块为软件结构图中的每一个模块确定其实现算法和
23、局部数据结构,并用某种选定的确定其实现算法和局部数据结构,并用某种选定的表达工具表示算法和数据结构的细节。表达工具表示算法和数据结构的细节。设计工具:设计工具:图形工具:图形工具:程序流程图、程序流程图、N-S图、图、问题分析图问题分析图(PAD图图)表格工具:判定表表格工具:判定表语言工具:语言工具:PDL(伪码语言伪码语言)如如:8(6)3.4 软件测试软件测试 3.4.1 软件测试的目的与准则软件测试的目的与准则1.1.目的目的 软件测试软件测试是为了发现错误而执行程序的过程。是为了发现错误而执行程序的过程。2.2.准则准则(六点六点):(1)所有测试都应追溯到需求:最严重的错误为程序无
24、所有测试都应追溯到需求:最严重的错误为程序无法满足用户需求。法满足用户需求。(2)严格执行测试计划,排除测试的随意性。严格执行测试计划,排除测试的随意性。(3)注意测试中的群集现象,程序中存在错误的概率与注意测试中的群集现象,程序中存在错误的概率与该程序中已发现的错误数成正比,应集中对付那些错误群该程序中已发现的错误数成正比,应集中对付那些错误群集的程序。集的程序。(4)程序员应避免检查自己的程序。程序员应避免检查自己的程序。(5)穷举测试不现实。穷举测试不现实。(6)妥善保存测试计划、测试用例和最终分析报告等。妥善保存测试计划、测试用例和最终分析报告等。如如:8(7),预预2(10)3.4.
25、2 软件测试方法软件测试方法 研究内容:如何用最少的测试用例集合来测试出研究内容:如何用最少的测试用例集合来测试出程序中更多的潜在错误。程序中更多的潜在错误。关键技术:如何进行彻底的测试,如何设计测试关键技术:如何进行彻底的测试,如何设计测试用例等。用例等。分类:分类:1.1.静态测试与动态测试静态测试与动态测试(是否需要执行被测软件是否需要执行被测软件)(1)(1)静态测试:静态测试:包括代码检查、静态结构分析、包括代码检查、静态结构分析、代码质量度量等。可以由人工进行或软件工具自动代码质量度量等。可以由人工进行或软件工具自动进行。进行。(2)(2)动态测试:动态测试:设计一批测试用例,利用
26、它们去运设计一批测试用例,利用它们去运行程序,以发现程序错误的过程。行程序,以发现程序错误的过程。2.2.白盒测试与黑盒测试白盒测试与黑盒测试(按照功能划分按照功能划分)(1)(1)白盒测试:白盒测试:也叫结构测试或逻辑驱动测试也叫结构测试或逻辑驱动测试 在程序内部进行,完成软件内部操作的验证。在程序内部进行,完成软件内部操作的验证。被测软件看作一个透明的盒子,测试人员对程序被测软件看作一个透明的盒子,测试人员对程序内部的逻辑结构及处理过程完全了解内部的逻辑结构及处理过程完全了解。(2)黑盒测试:也叫功能测试或数据驱动测试黑盒测试:也叫功能测试或数据驱动测试 对软件已经实现的功能是否满足需求进
27、行测试和验对软件已经实现的功能是否满足需求进行测试和验证。在软件接口处进行。证。在软件接口处进行。被测软件看作一个不透明的黑盒子,完全不考虑程被测软件看作一个不透明的黑盒子,完全不考虑程序内部的逻辑结构和内部特性序内部的逻辑结构和内部特性。如如:3(四四)3.白盒测试原则及测试用例白盒测试原则及测试用例 基本原则:基本原则:保证所测模块中每一独立路径至保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一分支少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内条件和一
28、般条件下至少各执行一次;验证所有内部数据结构的有效性。部数据结构的有效性。局限性:局限性:“白盒法白盒法”是穷举路径测试,贯穿是穷举路径测试,贯穿程序独立路径数是天文数字,即使每条路径都经程序独立路径数是天文数字,即使每条路径都经过了测试,仍可能有未发现错误。过了测试,仍可能有未发现错误。主要方法:主要方法:逻辑覆盖测试、基本路径测试逻辑覆盖测试、基本路径测试(1)(1)逻辑覆盖测试逻辑覆盖测试 逻辑覆盖:逻辑覆盖:指以程序内部的逻辑结构为基指以程序内部的逻辑结构为基础的测试用例设计技术。础的测试用例设计技术。逻辑表示:逻辑表示:判断、分支、条件等几种。判断、分支、条件等几种。语句覆盖:语句覆
29、盖:选择足够多测试数据,使程序中每选择足够多测试数据,使程序中每个语句至少执行一次。个语句至少执行一次。路径覆盖:路径覆盖:选择足够多测试用例,使程序中所选择足够多测试用例,使程序中所有可能的路径都至少执行有可能的路径都至少执行次。次。如如:5(10),5(四四),8(三三),预预1(四四)判定覆盖:判定覆盖:保证程序中每个判断的每个分支保证程序中每个判断的每个分支(“真真”或或“假假”)至少执行一次。至少执行一次。条件覆盖:条件覆盖:每个判断的每个条件的可能取值至每个判断的每个条件的可能取值至少执行少执行次。例如次。例如“x0 x10 x10”判断判断条件覆盖:条件覆盖:每个条件的所有可能取
30、值至每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支少执行一次,同时每个判断的所有可能取值分支至少执行一次。至少执行一次。(2)(2)基本路径测试基本路径测试 思想和步骤:思想和步骤:根据软件过程性描述中的控制流程根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径确定程序的环路复杂性度量,用此度量定义基本路径集合。集合。环路复杂度环路复杂度=程序流程图中的判断框个数程序流程图中的判断框个数+1 举例:举例:输出输出x x程序流程图程序流程图输出输出x x与与y yy0y0endx x0 0假假真真假假真真输出输出y y程序复杂度为程序复杂度为3x=-
31、10,y=-10 覆盖路径:覆盖路径:A B Fx=10,y=-10 覆盖路径:覆盖路径:A C D Fx=10,y=10 覆盖路径:覆盖路径:A C E F4.4.黑盒测试原则及测试用例黑盒测试原则及测试用例 内容:内容:检查程序功能是否能按照规格说明书的检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并保持外部信息完整性。生正确的输出信息,并保持外部信息完整性。主要诊断功能不对或遗漏、界面错误、数据结主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终构或外部数据库访
32、问错误、性能错误、初始化和终止条件错,用于软件确认。主要方法有止条件错,用于软件确认。主要方法有等价类划分等价类划分法、边界值分析法、错误推测法、因果图法、边界值分析法、错误推测法、因果图等。等。3.4.3 软件测试的实施软件测试的实施 四个步骤:四个步骤:单元测试、集成测试、确认测试和系单元测试、集成测试、确认测试和系统测试。统测试。1.1.单元测试:单元测试:定义:定义:对模块对模块(软件设计最小单位软件设计最小单位)进行正确性进行正确性检验的测试。检验的测试。目的:目的:发现各模块内部可能存在的各种错误。发现各模块内部可能存在的各种错误。技术:技术:静态分析和动态测试静态分析和动态测试
33、依据:依据:详细设计说明书和源程序详细设计说明书和源程序 2.2.集成测试:集成测试:定义:定义:把模块在按照设计要求组装起来的同时进把模块在按照设计要求组装起来的同时进行测试行测试。目的:目的:发现与接口有关的错误发现与接口有关的错误 依据:依据:概要设计说明书概要设计说明书集成测试时将模块组装成程序通常采用两种方式:集成测试时将模块组装成程序通常采用两种方式:(1)(1)非增量方式:非增量方式:也称为一次性组装方式。将测也称为一次性组装方式。将测试好的每一个软件单元一次组装在一起再进行整体试好的每一个软件单元一次组装在一起再进行整体测试。测试。(2)(2)增量方式:增量方式:测试好的模块逐
34、步组装成较大系测试好的模块逐步组装成较大系统,边连接边测试,以发现连接过程中产生的问题。统,边连接边测试,以发现连接过程中产生的问题。3.3.确认测试:确认测试:任务:任务:验证软件的功能和性能及其他特性是否满验证软件的功能和性能及其他特性是否满足了需求规格说明中确定的各种需求,以及软件配置足了需求规格说明中确定的各种需求,以及软件配置是否完全正确。是否完全正确。实施:实施:先用黑盒测试,验证被测软件是否满足需先用黑盒测试,验证被测软件是否满足需求规格说明确认的标准。再复审保证软件配置齐全。求规格说明确认的标准。再复审保证软件配置齐全。4.4.系统测试:系统测试:定义:定义:将通过测试确认的软
35、件,作为整个基于计将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、人员等算机系统的一个元素,与计算机硬件、外设、人员等其他系统元素组合在一起,在实际运行环境下对计算其他系统元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试。机系统进行一系列的集成测试和确认测试。目的:目的:在真实的系统工作环境下检验软件是否能在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。与系统正确连接,发现软件与系统需求不一致的地方。如如:3(6)3.5 程序调试程序调试 任务:任务:诊断和改正程序中的错误。诊断和改正程序中的错误。基本步
36、骤:基本步骤:错误定位错误定位修改设计和代码修改设计和代码进行回归测试:进行回归测试:重复进行某些有关测试,确认该错误是否被排除,以重复进行某些有关测试,确认该错误是否被排除,以及是否引进了新的错误。及是否引进了新的错误。3.5.1 基本概念基本概念3.5.2 软件调试的方法软件调试的方法分类:分类:静态调试静态调试动态调试动态调试通过(借助)通过(借助)人的思维人的思维运行环境辅助工具运行环境辅助工具排错排错调试方法调试方法 (选择题或填空题选择题或填空题)1.1.强行排错法:强行排错法:设置断点和监视表达式。程序执行设置断点和监视表达式。程序执行到某一行时,自动停止运行,保留各变量状态,方
37、到某一行时,自动停止运行,保留各变量状态,方便检查校对。便检查校对。如如:1(5)如如:6(五五)2.2.回朔法:回朔法:一旦发现错误,从最先发现一旦发现错误,从最先发现“症状症状”的地的地方开始,沿程序的控制流程,逆向跟踪源程序代码,方开始,沿程序的控制流程,逆向跟踪源程序代码,找到错误根源。找到错误根源。3.3.原因排错法:原因排错法:(1)(1)演绎法:从一般原理出发导出结论。设想及枚举演绎法:从一般原理出发导出结论。设想及枚举出所有可能出错的原因作为假设。用测试数据逐个验出所有可能出错的原因作为假设。用测试数据逐个验证假设,确定出错的原因。证假设,确定出错的原因。(2)(2)归纳法:从特殊推出一般。从一些线索归纳法:从特殊推出一般。从一些线索(错误征兆错误征兆或与错误发生有关的数据等或与错误发生有关的数据等)着手,分析寻找潜在的着手,分析寻找潜在的原因,找出错误。原因,找出错误。(3)(3)二分法:已知每个变量在程序中若干个关键点的二分法:已知每个变量在程序中若干个关键点的正确值,用赋值语句等在某点附近给变量赋正确值,正确值,用赋值语句等在某点附近给变量赋正确值,运行程序检查输出。结果正确,错误原因在前半部分运行程序检查输出。结果正确,错误原因在前半部分反之在后半部分。反之在后半部分。