第三章软件工程基础_第1页
第三章软件工程基础_第2页
第三章软件工程基础_第3页
第三章软件工程基础_第4页
第三章软件工程基础_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全国计算机等级考试二级公共基础知识(软件工程基础)详细重点学习知识点 1. 软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5. 程序的调试,静态调试与动态调试。*软件的定义 1. 满足用户功能需求和性能的指令或计算机程序集合 2. 处理信息的数据结构 3. 描述程序功能以及程序如何操作和使用所要求的文档 以上三部分的组合构成了软件。软件的特点 1. 软件是一种逻辑实体

2、2. 软件的生产与硬件不同,它没有明显的制作过程 3. 软件在运行、使用期间不存在磨损、老化问题 4. 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题 5. 软件复杂性高,成本昂贵 6. 软件开发涉及诸多的社会因素*软件按功能分类 应用软件 系统软件 支撑软件(或工具软件)。软件危机 1. 软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。软件产品“供不应求”。 2. 软件成本在计算机系统总成本中所占的比例逐年上升。“开发成本高” 3. 软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。 4. 软件产品的

3、质量不容易保证。 5. 软件产品常常是不可维护的。 6. 软件产品的重用性差,同样的软件多次重复开发。 7. 软件通常没有适当的文档资料。*软件工程 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 其目的是提高软件生产率、提高软件质量、降低软件成本。*软件工程的三个要素 方法:完成软件工程项目的技术手段。 工具:支持软件的开发、管理、文档生成。 过程:支持软件开发的各个环节的控制、管理。软件工程过程 软件过程过程是把输入转化为输出的一组彼此相关的资源和活动。 软件过程过程是将方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。*软件生命周期

4、将软件产品从提出、实现、使用、维护到停止使用退役的过程称为软件生命周期。可行性研究初可行性研究初步项目计划步项目计划需求分析需求分析概要设计概要设计详细设计详细设计实现实现测试测试使用使用维护维护退役退役定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段可行性研究与计划制定 确定系统的总体目标,以及从技术、经济、时间等方面论证项目开发可行性。 参加人员:用户、项目负责人和系统分析师 产生文档:可行性分析报告、项目计划书等需求分析 要确定系统的功能、性能、数据、界面等要求,从而确定系统的逻辑模型,同时制定后期测试计划。 参加人员:用户、项目负责人和系统分析师 产生文档:需求规格说明书概要设计 在需

5、求定义的基础上,把各功能需求转换成需要的体系结构,即划分模块、模块的层次、模块之间的调用关系以及各模块的功能,同时设计应用系统的总体数据结构和数据库结构。 参加人员:系统分析师和软件设计师 产生文档:概要设计说明书、数据库设计说明书等详细设计 对概要设计阶段得出的各功能模块进行详细描述成精确的、结构化的过程描述,即各个功能模块具体怎么实现,用相应的工具把模块的控制结构表示出来,但还未进行编码。 参加人员:软件设计师和程序员 产生文档:详细设计说明书、测试计划初稿等软件实现 把详细设计阶段得出的各模块控制结构(图形)转变成计算机能识别的指令代码。 参加人员:程序员 产生文档:源程序清单、用户手册

6、、操作手册、单元测试计划等软件测试 由另一部门(单位)的软件设计师或系统分析师花费最少的人力物力找出程序最多、最大的错误(bug)。 参加人员:软件设计师、系统分析师 产生文档:测试分析报告运行和维护 将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。是软件生存周期中时间最长的阶段。 参加人员:用户、维护人员软件工程的目标 在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。 软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。软件工程的原则 抽象

7、 信息隐蔽 模块化 局部化 确定性 一致性 完备性 可验证性*软件开发工具 软件工具是指用于辅助软件开发、运行、维护、管理、支持等过程中的活动的软件。通常也称为CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具。 按软件过程的活动分为软件开发工具、软件维护工具和软件管理工具等。*软件开发环境 开发环境通常可由工具集和环境集成机制两部分组成,这种环境应具有开放性和可裁减性,环境集成机制主要有数据集成机制、控制集成机制和界面集成机制。 全面支持软件产品开发全过程的软件工具的集合。练习 下列不属于软件工程的3个要素的是 A) 工具B) 过程C)

8、 方法D) 环境 软件是程序、数据和_的集合。 软件工程研究的内容主要包括:_技术和软件工程管理。相关文档相关文档软件开发软件开发练习 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为_。 软件开发环境是全面支持软件开发全过程的_集合。 软件设计中,有利于提高模块独立性的一个准则是 A) 低内聚低耦合B) 低内聚高耦合 C) 高内聚低耦合D) 高内聚高耦合软件生命周期软件生命周期软件软件工具工具练习 软件生命周期中所用花费最多的阶段是_。 下列叙述中,不属于软件需求规格说明书的作用的是 A) 便于用户、开发人员进行理解和交流 B) 反映出用户问题的结构,可以作为软件开发工作的基础

9、和依据 C) 作为确认测试和验收的依据 D) 便于开发人员进行需求分析运行和维护运行和维护练习 下面不属于软件设计原则的是 A) 抽象B) 模块化C) 自底向上D) 信息隐蔽 软件开发的结构化生命周期方法将软件生命周期划分成 A) 定义阶段、开发阶段、运行维护阶段 B) 设计阶段、编程阶段、测试阶段 C) 总体设计、详细设计、编程调试 D) 需求分析、功能定义、系统设计练习 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是 A)编辑软件B)操作系统 C)教务管理系统D)浏览器软件开发方法 软件开发方法是软件开发过程所遵循的方法和步骤。 其目的在于有效地得到一

10、些工作产品,即程序和文档,并且满足质量要求。 软件开发方法包括分析方法、设计方法和程序设计方法。需求分析 对要解决的问题进行详细的分析,弄清楚问题的要求。需求分析的任务 1. 确定软件系统的综合要求 2. 分析系统的数据要求 3. 导出系统的逻辑模型 4. 修正项目开发计划*需求分析阶段的工作获取需求获取需求需求分析需求分析编写需求规格说明书编写需求规格说明书需求评审需求评审*需求分析方法 1. 结构化分析方法。主要包括面向数据流的结构化分析方法,面向数据结构的Jackson方法,面向数据结构的结构化数据系统开发方法。 2. 面向对象的分析方法。*结构化分析方法 结构化分析方法是结构化程序设计

11、理论在软件需求分析阶段的运用。 着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 结构化分析常用工具:数据流图、数据字典、判定树、判定表。*数据流图DFD 描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。 建立步骤:由外向里、自顶向下、逐层分解。数据流图的图形元素基本图形符号辅助图形符号存储文件存储文件(数据源数据源)源,潭源,潭加加 工工加工名数据流数据流数据流名文件名实体名箭箭 头头圆或椭圆圆或椭圆单或双杠单或双杠矩形框矩形框TAB*CTAB*CTAB+CTAB+CTABC+TABC+* 与与 + 或

12、或互斥+分层数据流图1.11.21.3x2132.12.22.31.11.2顶层第0层第1层基本系统模型系统的子功能分层数据流图例2.1 销售管理系统的数据流图常见错误数据源数据源没有输出!没有输出!没有输入!没有输入!加工加工每个加工至少有一每个加工至少有一个个输入数据输入数据流和一流和一个输出数据流个输出数据流数据数据终点终点加工加工常见错误数据源数据源数据终点数据终点数据源数据源数据存储数据存储数据终点数据终点数据存储数据存储数据存储数据存储数据存储数据存储数据流必须要么从某数据流必须要么从某个加工流出、要么流个加工流出、要么流入某个加工,而不能入某个加工,而不能直接从外部项流向数直接从

13、外部项流向数据存储等等据存储等等。常见错误待审核的帖子待审核的帖子帖子帖子帖子帖子输入数据和输出数据同名工龄、工龄、职位等职位等工资单工资单不需要标出激发条件1月月1日日*计算计算工资工资员工档案员工档案例题 2.1验证验证订单订单汇总汇总订单订单订单订单出版社出版社 订单订单图书目录文件图书目录文件顾客档案顾客档案待处理订单文件待处理订单文件正确正确订单订单出版社档案文件出版社档案文件订货存根文件订货存根文件顾客顾客出版社出版社提交提交档案档案修改修改档案档案档案档案数据数据正确正确档案档案正确正确订单订单一批一批订单订单*数据字典 数据字典是对所有与系统相关的数据元素的一个有组织的列表。

14、数据字典的作用是对数据流图中出现的被命名的图形元素的确切解释。 数据字典是各类数据描述的集合,它通常包括5个部分: 数据项、数据结构、数据流、数据存储、和处理过程。数据字典的符号符号符号含义含义=表示表示“等于等于”,“定义为定义为”,“由什么构成由什么构成”|表示表示“或或”,即选择括号中用,即选择括号中用“|”号分隔的各项中的某一项号分隔的各项中的某一项+表示表示“与与”,“和和”nm表示表示“重复重复”,即括号中的项要重复若干次,即括号中的项要重复若干次,n,m是重复次数的上下限是重复次数的上下限()表示表示“可选可选”,即括号中的项可以没有,即括号中的项可以没有* *表示表示“注释注释

15、”.连接符连接符例 2.2 存折=户名+所号+帐号+开户日+性质+(印密) 户名=2字母24 所号=“001”.“999” 开户日=年+月+日 性质=“ 1 ”. “ 6 ” 印密=“0”判定树 当数据流图中的加工依赖于多个逻辑时,可以使用判定树来描述。判定表 与判定树相似,当数据流图中的加工依赖于多个逻辑时,可以使用使用判定表来描述。软件需求规格说明书 需求分析结束时产生: 1. 数据流图( DFD )、数据字典( DD )、判定树、判定表 2. 软件需求规格说明书软件需求规格说明书的作用 1. 便于用户、开发人员进行理解和交流 2. 反映出用户问题的结构,可以作为软件开发工作的基础和依据

16、3. 作为确认测试和验收的依据软件需求规格说明书的内容 一、概述 二、数据描述 三、功能描述 四、性能描述 五、参考文献目录 六、附录软件需求规格说明书的特点 正确性 无歧义性 完整性 可验证性 一致性 可理解性 可修改性 可追踪性练习 下列不属于结构化分析的常用工具的是 A) 数据流图B) 数据字典C) 判定树D) PAD图 下列叙述中,不属于结构化分析方法的是 A) 面向数据流的结构化分析方法 B) 面向数据结构的Jackson方法 C) 面向数据结构的结构化数据系统开发方法 D) 面向对象的分析方法练习 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识

17、的图符不属于数据流图合法图符的是 A) 控制流B) 加工C) 数据存储D) 源和潭 下列工具中为需求分析常用工具的是 A)PAD B)PFD C)N-S D)DFD练习 在数据流图(DFD) 中,带有名字的箭头表示 A) 模块之间的调用关系B) 程序的组成成分 C) 控制程序的执行顺序D) 数据的流向*软件设计的基础 软件设计是开发阶段最重要的步骤,是一个把软件需求转化为软件表示的过程。 软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。软件设计的基础 从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。 结构设计:定义软

18、件系统各主要部件之间的关系。 数据设计:将分析时创建的模型转化为数据结构的定义。 接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。 过程设计:把系统结构部件转换成软件的过程描述。*软件设计的基础 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。软件设计的基本原理 抽象 模块化 信息隐蔽 模块独立化(内聚性、耦合性)内聚性 偶然内聚:一个模块的各成分之间毫无关系。 逻辑内聚:把几种逻辑上相关的功能组放在同一模块中。 瞬时内聚(时间内聚):一个模块所包含的任务必须在同一时间间隔内执行,例如初始化模块。 过程内聚:一个模块的处理元素是相关的,而且必须按特定的次序执行。

19、 通信内聚:一个模块的所有成分都结合在同一个数据结构上。 顺序内聚:模块的成分同一个功能密切相关,且输出,作为另外一个成分的输入。 功能内聚:模块内的所有成分属于一个整体,完成单一的功能。耦合性 内容耦合:直接操作或修改另一模块的数据,或不通过正常入口转入另一个模块。 公共耦合:多个模块引用同一全局数据区。例如,C语言中的external数据类型、磁盘文件等都是全局数据区。 外部耦合:模块与软件以外的环境有关联。例如,输入输出把一个模块与特定的设备、格式、通信协议耦合在一起。 控制耦合:一模块明显把开关量、名字等信息送入另一模块,控制另一模块的功能。 标记耦合:两个模块之间通过传递公共指针或地

20、址相互作用的耦合。 数据耦合:模块间通过传递数据交换信息。 非直接耦合(无耦合):模块间无任何关系,独立工作。结构化设计方法 采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术。概要设计 进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,是一个把软件需求转换为软件表示的过程。概要设计的任务 设计软件系统结构 数据结构和数据库设计 编写概要设计文档 概要设计文档评审*软件结构图形工具 结构化设计方法方法采用结构图(SC)描述软件结构。结构图的基本图符 矩形内注明模块的功能和名字。 箭头表

21、示模块间的调用关系。一般模块数据信息控制信息调用结构图构成的基本形式AB重复形式重复形式ABCD顺序顺序形式形式ABC选择形式选择形式AB基本形式基本形式结构图的模块类型AA传入模块传入模块DD传出模块传出模块CB变换变换模块模块CB变换变换模块模块简单财务管理系统结构图账务系统账务系统凭证处理凭证处理记账记账财务报表财务报表综合报表综合报表录入录入修改修改审核审核汇总汇总总账总账明细账明细账损益表损益表负债表负债表扇出扇入上级模块模块从属模块模块宽度深度面向数据流的设计方法 首先研究、分析和审查数据流图。 从软件的需求规格说明中弄清数据流加工的过程,对于发现的问题及时解决。 然后根据数据流图

22、决定问题的类型。数据处理问题典型的类型有两种:变换型和事务型。针对两种不同的类型分别进行分析处理。变换型数据流结构传入数据C变换数据CD传出数据D变换型数据流结构取得数据C交换数据CD输出数据D输入中心变换输出变换型数据流结构的组成变换型数据流系统结构图主控制模块主控制模块输入数据输入数据交换中心交换中心输出数据输出数据BBCC事务型数据流结构事务处理中心事务1事务2输入流事务n事务型数据流系统结构图事务中心事务中心读入分析输入流读入分析输入流事务调度事务调度输出结果输出结果事务事务1事务事务2事务事务n例3.1 产生最佳解的结构图详细设计 详细设计包括业务对象设计、功能逻辑设计、数据库设计和

23、界面设计等工作。详细设计是系统实现的依据,需要考虑所有的设计细节。详细设计的任务 代码设计 输入设计 输出设计 处理过程设计 用户界面设计 安全控制设计*过程设计工具 图形工具:程序流程图、NS图、PAD、HIPO 表格工具:判定表 语言工具:PDL(伪码)程序流程图N-S图PAD图PDL(伪码) 顺序: 条件:IF / THEN / ELSE / ENDIF 循环:DO WHILE / ENDDO 循环:REPEAT UNTIL / ENDREPEAT 分支:CASE_OF / WHEN / SELECT / WHEN / SELECT / ENDCASE练习 两个或两个以上模块之间关系的紧

24、密程度称为 A)耦合度B)内聚度C)复杂度D)连接度 下列软件系统结构图的宽度为_。3练习 数据流图的类型有_和事务型。 软件的_设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。 为了避免流程图在描述程序逻辑时的灵活性,提出了用方块图来代替传统的程序流程图,通常也把这张图称为 A)PAD图B)N-S图C)结构图D)数据流图变换型变换型概要概要练习 软件详细设计产生的图如下: 该图是 A)N-S图B)PAD图C)程序流程图D)E-R图练习 程序流程图中带有箭头的线段表示的是 A)图元关系B)数据流C)控制流D)调用关系 下列选项中,不属于模块间耦合的是 A) 数据耦合B) 标记耦合C

25、) 异构耦合D) 公共耦合*软件测试 软件测试是使用人工或自动手段来运行或测定某个系统的过程。 软件测试包括需求定义阶段的需求测试、编码阶段的单元测试、集成测试以及后期的确认测试、系统测试,验证软件是否合格、能否交付用户使用等。*软件测试的目的 检验软件是否满足规定的需求或是弄清预期结果与实际结果之间的差别。*软件测试的准则 1. 所有测试都应追溯到需求 2. 严格执行测试计划,排除测试的随意性 3. 充分注意测试中的群集现象 4. 程序员应避免检查自己的程序 5. 穷举测试不可能 6. 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便软件测试技术与方法综述 从是否需要执行被

26、测软件的角度,可以分为静态测试和动态测试。 按照功能划分,可以分为白盒测试和黑盒测试。*静态测试与动态测试静态测试 静态分析 代码审查 代码走查 技术评审 桌面检查动态测试 白盒测试白盒测试 逻辑覆盖、基本路径测试 黑盒测试黑盒测试 等价类划分、边值分析、错误推测法*静态测试 代码审查:小组集体阅读讨论检查代码 代码走查:小组集体用“脑”执行并检查代码 桌面检查:由程序员阅读自己编写的程序 技术评审:会议形式讨论检查代码 静态分析:对代码的机械性、程式化的特性分析方法,包括控制流分析、数据流分析、接口分析、表达式分析*动态测试 测试用例的格式:(输入值集),(输出值集) 白盒测试:也称结构测试

27、或逻辑驱动测试。 将软件看成透明的白盒,根据程序的内部结构和逻辑结构来设计测试例子,对程序的路径和过程进行测试,检查是否满足设计的要求。 黑盒测试:也称功能测试或数据驱动测试。 将软件看成黑盒子,在完全不考虑软件内部结构和特性的情况下,测试软件的外部特性例 4.1 计算复利的财务程序有以下公式: A = P(1 + r / n)nt 其中 P = 本金;r = 年利率;n = 每年复加的利率次数;t = 年数;A = t年后的本息总和白盒测试方法与测试用例设计 根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作复合设计规格要求。 白盒测试的基本原则: 1. 保证所测模块中每一独立路径

28、至少执行一次 2. 保证所测模块所有判断的每一分支至少执行一次 3. 保证所测模块中每一循环都在边界条件和一般条件下至少各执行一次 4. 验证所有内部数据结构的有效性不可能进行彻底的白盒测试 左图是具有某程序的流程图,假设循环10次,请计算一下有多少条程序执行通路?假设由图中得到的所有路径都是可执行路径,执行一次循环大约需要10微秒(奔腾4 1.7G),且一年365天每天24小时不停机,请回答:如果循环次数为10的话,遍历图中所有路径需要多长时间? 结论是:410 10微秒,需要10秒左右的时间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约3054小时,循环100

29、次则大约需要5*1047年逻辑覆盖测试 语句覆盖 路径覆盖 判断覆盖 条件覆盖 判断-条件覆盖语句覆盖 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。例 4.2begin输入输入 i, ji jx = ix = j输输出出 i, j, xendTF测试用例测试用例1:输入(i, j)输出(i, j, x)(10, 10)(10, 10, 10)测试用例测试用例2:输入(i, j)输出(i, j, x)(10, 15)(10, 15, 15)路径覆盖 执行足够的测试用例,使程序中所有可能的路径都至少经历一次。例 4.3A 1 and B = 0aTX = X / AA = 2 and

30、 X 1X = X / ATFFbcde测试用例1通过路径(A=2, B=0, X=3), (输出略)(ace)测试用例4通过路径(A=1, B=0, X=1), (输出略)(abd)测试用例3通过路径(A=2, B=1, X=1), (输出略)(abe)测试用例2通过路径(A=3, B=0, X=1), (输出略)(acd)判断覆盖 使设计的测试用例保证程序中每个判断的每个取值分支(T或F)至少经历一次。例 4.4begin输入输入 i, ji j 或或 j 5x = ix = j输输出出 i, j, xendTF测试用例测试用例1:输入(i, j)输出(i, j, x)(15, 10)(1

31、5, 10, 15)测试用例测试用例2:输入(i, j)输出(i, j, x)(5, 10)(5, 10, 10)条件覆盖 设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。例 4.5begin输入输入 i, ji j 与与 j 5x = ix = j输输出出 i, j, xendTF测试用例测试用例1:输入(i, j)输出(i, j, x)(3, 2)(3, 2, 3)测试用例测试用例2:输入(i, j)输出(i, j, x)(5, 10)(5, 10, 10)判断-条件覆盖 设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执

32、行一次。例 4.6begin输入输入 i, j, xi j 与与 j 5TF基本路径测试 根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。三种逻辑结构的控制流图顺序循环(while、do-while)选择(if-else、switch)控制流图c)对应的流图)对应的流图a)含复合条件)含复合条件的设计图的设计图b)只含简单条)只含简单条件的设计图件的设计图a b or c dx = 1x = 2TFEndBeginTTFFx = 1x = 1a b c d x = 2 123456EndBegin234567

33、1环路复杂度 V(G) = 闭合区域的数目 V(G) = 二值判定节点个数 + 1 V(G) = 边的数目-节点的数目 + 2 环路复杂度的值即为要设计测试用例的基本路径数例 4.7 闭合区域的数目 + 1 V(G) = 2 + 1 = 3 二值判定节点个数 + 1 V(G) = 2 + 1 = 3 边的数目-节点的数目 + 2 V(G) = 8 - 7 + 2 = 3TTFFx = 1x = 1a b c d x = 2 123456EndBegin2345671例 4.8beginA 1endB = 0输出输出A与与B输出输出A输出输出BaTcbfedTFF测试用例1通过路径(A = -2

34、, B = 0), (-2)(abf)测试用例2通过路径(A = 5, B = 0), (5, 0)(acef)测试用例3通过路径(A = 5, B = 5), (5)(acef)黑盒测试方法与测试用例设计 完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。等价划分法 将程序的所有可能的输入数据划分成若干部分(及若干等价类),然后从每个等价类中选取数据作为测试用例。 对每一个等价类,各个输入数据对发现程序中的错误的几率都是等效的,因此只需从每个等价类中选取一些有代表性的测试用例进行测试而发现错误。等价划分法 有效等价类:合理、有意义的输

35、入数据构成的集合。可以检验程序中符合规定的功能、性能。 无效等价类:不合理、无意义的输入数据构成的集合。可以检验程序中不符合规定的功能、性能。例 4.9 NextDate(年,月,日)是三个变量的函数。函数返回输入日期的下一个日期。变量年份,月份,日期都是整数值,且满足下面的条件: 1900 年 2060,1 月 12, 1 日 31例 4.9 测试用例测试用例 覆盖等价类1,2,3:测试输入=(2006,6,16), 预期结果=(2006,6,17) 等价类及其编号等价类及其编号例 4.9(续) 测试用例测试用例 覆盖等价类4,2,3:测试输入=(1890,4,10), 预期结果= “输入错

36、误! ” 覆盖等价类5,2,3:测试输入=(2062,4,10),预期结果= “输入错误! ” 等价类及其编号等价类及其编号例 4.9(续) 测试用例测试用例 覆盖等价类1,6,3:测试输入=(2006,-2,16),预期结果= “输入错误!” 覆盖等价类1,7,3:测试输入=(2006,13,16),预期结果= “输入错误!” 等价类及其编号等价类及其编号例 4.9(续) 测试用例测试用例 覆盖等价类1,2,8:测试输入=(2006,6,0),预期结果= “输入错误” 覆盖等价类1,2,9:测试输入=(2006,4,33),预期结果= “输入错误!” 等价类及其编号等价类及其编号例 4.9(

37、续)重新划分等价类重新划分等价类及其及其编号,测试用例略编号,测试用例略等价类方法的补充说明 弱一般等价类弱一般等价类 设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的被测变量的有效等价类并且每个被测变量的有效等价类应至少出现一次 强一般等价类强一般等价类 设计若干测试用例,使其覆盖所有被测变量有效等价类的组合等价类方法的补充说明 弱健壮等价类弱健壮等价类 设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的有效等价类,对于无效等价类,每个测试用例只考虑一个被测变量的无效等价类 强强健壮等价类健壮等价类 设计若干测试用例,使其覆盖所有被测变量的有效等价类和无效等价类的组合边界值分析

38、法 所有值得测试的范围的临界点,可分为 边界值:明确地定义在规格说明书中 次边界:隐含在软件中必须经过分析才能获得例 4.10 功能描述功能描述 某选课系统中规定每门课程的选修人数在20,60之间,小于20人不开设该门选修课,大于60人不接受后面的选课要求。 测试设计测试设计 输入变量:选课人数 测试输入: 1. 选择当选课人数分别为19,20,21, 59,60和61等几个边界点 2. 再加上一个正常值点40错误推测法 基于经验和直觉推测程序中可能存在的各种错误,针对这些错误设计相应的测试用例。 常作为一种补充测试用例的设计方法。白盒测试与黑盒测试对比黑盒测试黑盒测试白盒测试白盒测试优优点点

39、适用于各测试阶段从产品功能角度测试容易入手生成测试数据可以构成测试数据使特定程序部分得到测试有一定的充分性度量手段可获得较多工具支持缺缺点点某些代码段得不到测试如果规格说明有误则无法发现不易进行充分性度量不易生成测试数据无法对未实现规格说明的部分测试工作量大,通常只用于单元测试,有引用局限性性质质是一种确认技术,回答“我们在构造一个正确得系统吗?”是一种验证技术,回答“我们在正确地构造一个系统吗?”软件测试的实施 软件测试过程一般按4个步骤进行,即:单元测试、集成测试、验收测试(确认测试)和系统测试。单元测试 单元测试是对软件设计的最小单位模块(程序单元)进行正确性检验的测试。 单元测试的目的

40、是发现各种模块内部可能存在的各种错误。 单元测试的依据是详细设计说明书和源程序。 单元测试的技术可以采用静态分析和动态分析。对动态测试通常以白盒动态测试为主,辅之以黑盒测试。集成测试 集成测试是测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试。 集成测试的目的是发现与接口有关的错误。 集成测试的依据是概要设计说明书。确认测试 确认测试的任务是验证软件的功能和性能及其他特效是否满足了需求规格说明书中确定的各种需求,以及软件配置是否完全、正确。 确认测试的目的是保证软件配置齐全、分类有序,以及软件配置所有成分的完备性、一致性、准确性和可操作性,并且包括软件维护所必须的细节。 确

41、认测试的依据是需求规格说明书。系统测试 系统测试是将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。 系统测试的功用在于评估系统环境下软件的性能,发现和捕捉软件中潜在的错误。 系统测试的目的是在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。练习 软件测试可分为白盒测试和黑盒测试。基本路径测试属于_测试。 按照软件测试的一般步骤,集成测试应在_测试之后进行。 检查软件产品是否符合需求定义的过程称为 A) 确认测试B) 集成

42、测试 C) 验证测试D) 验收测试白盒白盒单元单元练习 在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是 A) 路径的集合B) 循环的集合 C) 目标的集合D) 地址的集合 完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是 A) 黑箱测试法B) 白箱测试法 C) 错误推测法D) 安装测试法练习 下列不属于静态测试方法的是 A) 代码检查B) 白盒法 C) 静态结构分析D) 代码质量度量 单元测试又称模块测试,一般采用_测试。白盒白盒程序的调试 根据测试时发现的错误,找出原因和具体的位置,进行改正,排除错误,一般由程序开发人员来进行,谁开发的程序

43、就由谁来进行调试。 软件测试是尽可能多地发现软件中的错误,程序调试是诊断和改正程序中的错误。 软件测试贯穿整个软件生命期,调试主要在开发阶段。程序调试的基本步骤 1. 错误定位 2. 修改设计和代码,以排除错误 3. 进行回归测试,防止引进新的错误程序调试的原则 (1)确定错误的性质和位置时的注意事项 分析思考与错误征兆有关的信息。 避开死胡同。 只把调试工具当做手段。利用调试工具,可以帮助思考,但不能代替思考,因为调试工具给的是一种无规律的调试方法。 避免用试探法,最多只能把它当做最后手段。程序调试的原则 (2)修改错误的原则 在出现错误的地方,可能还有别的错误。 修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论