收藏 分享(赏)

计算机应用基础3软件工程基础.ppt

上传人:dreamzhangning 文档编号:3362676 上传时间:2018-10-18 格式:PPT 页数:91 大小:2.09MB
下载 相关 举报
计算机应用基础3软件工程基础.ppt_第1页
第1页 / 共91页
计算机应用基础3软件工程基础.ppt_第2页
第2页 / 共91页
计算机应用基础3软件工程基础.ppt_第3页
第3页 / 共91页
计算机应用基础3软件工程基础.ppt_第4页
第4页 / 共91页
计算机应用基础3软件工程基础.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

1、,第3章 软件工程基础,主要内容 3.1 软件工程的基本概念 3.2 结构化分析方法 3.3 结构化设计方法 3.4 软件测试 3.5 程序的调试,全国等级考试考试大纲要求 软件工程基本概念,软件工具与软件开发环境。 结构化分析方法,数据流 图,数据字典,软件需求规格说明书。 结构化设计方法,总体设计与详细设计。 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 程序的调试,静态调试与动态调试。,知识类型:理论 二级所占分值:约6分 课时:46学时 参考书目:软件工程导论(第4版)张海藩 编著清华大学出版社,软件 (Software) 是指包括程

2、序、数据以及相关文档的完整组合。 国标定义:与计算机系统的操作有关的计算机程序、规程、规则以及可能有的文件、文档及数据。,3.1 软件工程基本概念,软件危机软件开发供不应求,软件开发生产率的提高速度,难以满足社会需求的增长率。软件产品“供不应求”的现象致使不能充分利用现代计算机硬件提供的巨大潜力。,伴随着软件危机的存在引入软件工程,3.1 软件工程的基本概念,形成: 为了摆脱软件危机,北大西洋软件组织成员国软件工作者于1968-1969年,两次召开会议,认识早期软件开发中所存在的问题和产生问题的原因,提出软件工程的概念. 目的:软件工程是指导计算机软件开发和维护的一门学科,它应用计算机科学、数

3、学和管理科学等原理,以及借鉴传统工程的原则和方法,来创建软件,从而达到提高质量、降低成本的目的。,软件工程: 是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。,软件工程与一般工程的差异,软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及人们对它的操作 软件设计的复杂性 软件特征:功能的多样性实现的多样性能见度低软件结构合理性差 智力密集及知识产权保护,质量 进度 费用,软件工程 一种层次化技术,工具,方法,过程,质量焦点,Software engineering layers,软件工程三个要素:方法、工具、过程,3.1.2 软

4、件生命周期,一. 定义: (Software Life Cycle)软件产品从提出、实现、使用维护到停止使用的过程称为软件生命周期。软件生命周期可以划分为软件定义、软件开发和软件运行维护三个时期,每个时期又进一步划分成若干个阶段。,概要设计,可行性研究 与计划制定,需求分析,定义 阶段,详细设计,实现,测试,使用,开发 阶段,维护,运行维 护阶段,退役,确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实施计划.,对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,提交评审。,给出软件的结构、模块和功能的划分等,确定算法。编写概要设计、详细设计说明书和测试计划初稿。,源

5、程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。,设计测试用例,检验软件各个组成部分。编写测试分析报告。,将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。,软件开发的各阶段的成本比例,软件工程基本概念补充习题讲解,1.软件开发的结构化生命周期方法将软件生命周期划分成_。 A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计 2. 下面不属于软件工程的3个要素的是_。 A. 工具 B. 过程 C. 方法 D. 环境 3. 软件

6、是一种_。A. 程序 B. 数据 C. 逻辑产品 D. 物理产品 4.下列描述中正确的是_。(等级考试题)A)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中 需要应用工程化原则D)软件工程只是解决软件开发中的技术问题,3.2 结构化分析,3.2.1 需求分析,需求阶段是软件开发的关键阶段。 需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法的定义(Structure Analysis-SA),是

7、面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,数据流图(DFDData Flow Diagram )数据字典(DDData Dictionary) 实体-联系图(E-R图),3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,1. 数据流图(DFDData Flow Diagram ) (1)作用:从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程, 为系统建立逻辑模型。,3

8、.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,1. 数据流图(DFDData Flow Diagram ) (1)作用:,(2)数据流图中的基本图形符号意义,可以是数据库文件或任何形式的数据组织。,数据加工: 转换数据流的处理过程,外部实体:表示数据的源点或终点, 即系统外部的实体。,数据流 : 在转换之间有向流动的数据项或数据集合,数据存储文件:,箭头向内则表示写入文件 或查询文件.箭头向外则表示从文件中读取数据或得到查询结果.,储 户,检验,付款,登录,存折,帐卡,取款 信息,办理取款手续的 DFD 图,检验不合格,现款,付款信息,取款单,存折,注意,数据流图

9、与程序流程图中的箭头表示的内容相同么?,数据流图中的箭头表示的是数据流。 程序流程图中的箭头表示的是控制流。,两者有本质不同,不要混淆,分层的数据流图, 考务处理系统功能,(1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站; (3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩及合格/不合格标志)送给考生; (5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,顶层数据流图,不合格报名单,报名单,准考证,考生通知单,成 绩 清 单,合格标准,错误成绩 清单,考生名

10、单,统计分析表,略过,报名单,准考证,不合格 报名单,考生通知单,统计分析表,1层数据流图,合 格 标 准,考生名 单,略过,2层数据流图 (a),报名单,准考证,不合格 报名单,考生名单,合格 报名单,略过,2层数据流图 (b),检查 成绩清单,2.1,审定 合格者,2.2,考生名册,正确 成绩清单,制作 通知单,2.3,分析 统计成绩,2.4,分析 试题难度,2.5,试题得分清单,考生 通知单,难度 分析表,合格 标准,分类 统计表,成绩清单,错误 成绩清单,经审定的 成绩清单,略过,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,2. 数据字典(1)定义是所

11、有与系统相关的数据元素的一个有组织的列表,以及精确、严格的详细定义。(2)作用对DFD中出现的被命名的图形元素的确切解释,数据词典与数据流图配合,能清楚地表达数据处理的要求。,3.2 结构化分析,3.2.2 结构化分析方法,结构化分析方法使用的常用工具,2. 数据字典,(3)数据字典的组成数据项:是数据的最小单位;数据结构:是若干数据项的有意义的集合;数据流:可以是数据项,也可以是数据结构,表示某一个处理过程的输入或输出;数据存储:处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。处理过程:,存折格式,存折户名所号帐号开户日性质(印密)1存取行50 户名2字母24 所号“001”“9

12、99” 帐号“00000001”“99999999” 开户日年月日 性质“1”“6” 注:“1”表示普通户,“5”表示工资户等 印密“0” 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复核,3.2 结构化分析,3.2.3 软件需求规格说明书,1. 定义: 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,软件开发的重要文档之一。它对所开发的软件的功能、性能、用户界面及运行环境等进行详细说明。 2. 作用:便于用户与开发人员进行理解与交流;反映出问题的结构,可以作为软件开发的基础和依据;作为测试和验收的依据。

13、 3. 特点:正确而无歧义性,简明易懂,可修改性,可验证性等。,习题讲解,1. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )A.概要设计 B.详细设计 C.可行性研究 D.需求分析 2. 需求分析阶段的任务是确定( ) A.软件开发方法 B. 软件开发工具 C.软件开发费用 D.软件系统功能 3. 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及_。 A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 4. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析

14、C. 详细设计 D. 程序编码,5. 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是_。A. 控制流 B. 加工 C. 数据存储 D. 源和潭 6. 下列工具中属于需求分析常用工具的是_。A. PAD B. PFD C. N-S D. DFD 7. 数据字典是对数据定义信息的集合,它所定义的对象都包含在( )。A.程序框图 B.数据流图 C.软件结构 D.方框图 8 下列不属于结构化分析的常用工具的是_。A. 数据流图 B. 数据字典C. 判定树 D. PAD图 9. 在数据流图(DFD)中,带有名字的箭头表示_A. 控制程

15、序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分 10. 结构化分析方法的一个重要思想是_.A. 自顶向下,逐层抽象 B.自底向上,逐层抽象 C. 自顶向下,逐层分解 D.自底向上,逐层分解,14. 数据字典是各类数据描述的集合,它通常包括5个部分, 即:数据项、数据结构、数据流、_和处理过程。,11.下列叙述中,不属于软件需求规格说明书的作用是( )。. 便于用户与开发人员进行理解与交流;B. 反映出问题的结构,可以作为软件开发的基础和依据;C. 作为测试和验收的依据。. 便于开发人员进行需求分析 12. 需求分析阶段的最后成果是_,是软件开发的重要文档之一。

16、13. 软件需求规格说明书缩写是_.,3.3 结构化设计,3.3.1 概述,需求分析:解决“做什么”,软件设计:解决“怎么做”,从软件需求规格说明书出发,形成软件的具体设计方案。,3.3 结构化设计,3.3.1 概述,结构化设计方法是基于模块化、自顶向下细化、结构化(三种基本结构)程序设计等程序设计技术基础发展起来的。,结构化设计方法(SD- Structured Design),基本思想:将软件设计成由相对独立且具有单一功能的模块组成的结构 ,分为概要设计和详细设计两个阶段.,3.3 结构化设计,3.3.1 概述,软件设计划分,一般过程:是一个迭代过程,先进行高层次结构设计;再进行 低层次过

17、程设计;穿插数据设计和接口设计。,3.3 结构化设计,概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图,如图,3.3.2 总体设计,3.3 结构化设计,3.3.2 总体设计,例,一学生成绩管理系统模块图,结构化设 计的目的,使程序的结构尽可能反 映要解决的问题的结构,结构化设 计的任务,把需求分析得到的数据流图DFD 变换为系统结构图(SC)。,3.3 结构化设计,3.3.2 总体设计,3.3 结构化设计,3.3.2 总体设计,概要设计工具- 结构图(SC: Structure Chart ),结构图基本组成成分:模块、数据和调用,结构图基本图符

18、:,3.3 结构化设计,3.3.2 总体设计,概要设计工具- 结构图(SC: Structure Chart ),结构图基本形式:,3.3 结构化设计,3.3.2 总体设计,概要设计工具- 结构图(SC: Structure Chart ),A,- 模块调用关系,B,被调用模块,调用模块,A(查询学生),B(查找学生记录),数据信号,控制信号,学 号,查找成功信号,- 模块间接口的表示,结构图示例,3.3 结构化设计,3.3.2 总体设计,概要设计工具- 结构图(SC: Structure Chart ),结构图的基本术语,宽度:同一层模块的最大模块数,扇出:一个模块直接调用的其他模块数目,扇

19、入:调用一个给定模块的模块个数。(被调用的次数),深度:模块结构的层次数 (控制的层数).,深 度,宽度,扇出,扇入,(模块的层数),(同一层最大模块数),(一个模块 直接调用 的模块数),(调用一个给定模 块的模块个数),以下是一个软件系统的分层模块结构图,请回答:( 1 ) 该结构图的深度为(2)该结构图的宽度为 (3)扇入为2的模块有 ( 4 ) 扇入为3的模块有 ( 5 ) 扇出为1的模块有 ( 6 ) 扇出为2的模块有 ( 7 ) 扇出为3的模块有,3.3 结构化设计,3.3.3 详细设计,详细设计 阶段的 主要任务,详细设计工具,3.3 结构化设计,3.3.3 详细设计,程序流程图

20、(PFD: Program Flow Diagram))特点:直观、清晰、易于掌握,用流程图来表示12345, 盒图(N-S图)为避免流程图在描述程序逻辑时的随意性与灵活性,1973提出用方框代替传统的程序流程图,通常也把这种图称为N-S图,有5种的控制结构。,问题分析图(PAD:Problem Analysis Diagram) 是继流程图和方框图之后,又一种描述详细设计的工具,有5种结构。,选择:IF C Then P1 Else P2(双分支) 多分支选择:Case 型多分支 While 循环:当型循环 Until循环:直到型循环,判定表(1)使用条件:当数据流图中的加工要依赖于多个逻辑

21、条件的取值时(该 加工的一组动作是由于某一组条件取值的组合而引发的),使用判定表描述比较适宜.(2)判定表的组成(四部分):基本条件:各种可能的条件 条件项: 各种可能的条件组合 基本动作: 所有的操作动作项: 对应的条件组合下所选的操作,某学校对教职工拟定奖励策略如下:(1)高级职称且教学评估优秀的奖励1000元,教学效果评估合格的奖励800元;(2)中级职称且教学评估优秀的奖励800元,教学效果评估合格的奖励500元;(3)初级职称且教学评估优秀的奖励500元。要求画出奖励策略的判断表。,举例,以“检查发货单”为例,判定树使用判定树进行描述时, 应分清哪些是判定的条件,哪些是判定的结论,并

22、找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。优点:更加直观,易于理解和使用,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发货单,发出批准书、,欠款60天,发出批准书、,发货单及赊欠报告,欠款60天,发出批准书、,发货单,以“检查发货单”为例,用判定树表示计算行李费的算法,过程设计语言(PDL):,过程设计语言(PDL)也称结构化的英语或伪码语言,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,它描述处理过程怎么做,类似编程语言。,用PDL表示的基本结构的常用词汇如下: 顺序:无 条件:IF/THEN/ELSE/END

23、IF 循环:DOWHILW/ENDDO 循环:REPEAT UNTIL/ENDREPEAT 分支:CASE OF/WHEN/SELECT/WHEN/SELECT/ENDCASE,PDL:Procedure Design Language,1. 在结构化方法中,软件功能分解属于下列软件开发中的阶段是_。 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试 2. 从工程管理角度,软件设计一般分为两步完成,它们是_。 (06.9月等级)A. 概要设计与详细设计 B. 数据设计与接口设计C. 软件结构设计与数据设计 D. 过程设计与数据设计 3. 下列选项中不属于软件生命周期开发阶段任务的

24、是( ). 软件测试 . 概要设计 . 软件维护 .详细设计 4. 信息隐蔽的概念与下述哪一种概念直接相关_。A. 软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模拟耦合度,习题:,5.下面不属于软件设计原则的是_。A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽 6.为了使模块尽可能独立,要求_。(05年 4 月等级考试)A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 7. 下列描述中正确

25、的是_。(05年 4 月等级考试) A) 程序就是软件 B)软件开发不受计算机系统的限制C) 软件既是逻辑实体,又是物理实体D) 软件是程序、数据与相关文档的集合 8. 两个或两个以上模块之间关联的紧密程度称为A)耦合度 B)内聚度 C)复杂度 D)数据传输特性,9. 在软件开发中,下面任务不属于设计阶段的是_。 A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 10. 程序流程图(PFD)中的箭头代表的是_。 A. 数据流 B. 控制流 C. 调用关系 D. 组成关系 11. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。

26、A. 模块间的关系 B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程 12. 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为_。 A. PAD图 B. N-S图 C. 结构图 D. 数据流图,13.在软件设计中,不属于过程设计工具的是_。 (05.4)A)PDL B)PAD图C)N-S图 D)DFD 14. 在程序结构图中,矩形用来表示_。 A)模块 B)模块间的调用关系 C)加工 D)存储 15. 下面关于PDL不正确的说法是_。A)PDL描述处理过程怎么做 B)PDL只描述加工做什么C)PDL也称为伪码D) P

27、DL的外层语法应符合一般程序设计语言常用的语法规则,3.4 软件测试,3.4.1 概述,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序 内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。,为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷,1. 软件测试的目的与原则,测试目的: 可能地多发现程序中的错误,测试用例的选择原则: 选择发现错误可能性大的数据,3.4 软件测试,3.4.1 概述,1. 软件测试的目的与原则,3.4 软件测试,3.4.1 概述,2. 软件测试方法分类,根据软件

28、是否需要被执行,按照功能划分,静态测试 动态测试,黑盒测试 白盒测试,研究内容:如何用最少的测试用例集合来测试出程序中更多的潜在错误。,关键技术:如何进行彻底的测试,如何设计测试用例等。,3.4 软件测试,3.4.1 概述,3. 软件测试步骤,(1)模块测试 (2)子系统测试 (3)系统测试 (4)验收测试 (5)平行运行,(单元测试),(确认测试),3.4 软件测试,3.4.2 单元测试,也称模块测试,对模块(软件设计最小单位)进行正确性检验的测试,以期尽早发现各模块内部可能存在的各种错误。,技术:静态分析和动态测试,说明:单个模块通常不是独立的程序,不能运行。必须在真实或模拟环境下进行。模

29、拟环境中为被测模块设计和搭建驱动模块和桩模块。,驱动模块:相当于被测模块的主程序。它接收测试数据,并传给被测模块,输出实际测试结果。 桩模块:用于代替被测模块调用的其他模块,仅做少量的数据操作,不必将子模块的所有功能带入 。,3.4 软件测试,3.4.3 集成测试,也称组装测试,把模块在按照设计要求组装起来的同时进行测试 ,主要目的是发现与接口有关的错误。,采用方式(模块组装成程序):两种,(1)非增量方式 (2)增量方式,自顶向下,自低向上,混合增量,增量方式和非增量方式区别是什么?那种更好?,3.4 软件测试,3.4.4 确认测试,也称验收测试。,验证软件的功能和性能及其他特性是否满足了需

30、求规格说明中确定的各种需求,以及软件配置是否完全正确。,实施:先用黑盒测试,验证被测软件是否满足需求规格说明确认的标准。再复审保证软件配置齐全。,3.4 软件测试,3.4.5 白盒测试,1. 概述,也叫玻璃盒测试、结构测试或逻辑驱动测试, 对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑路径进行测试。白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。,白盒测试,关键技术:如何进行彻底的测试,如何设计测试用例等。,3.4 软件测试,3.4.5 白盒测试,1. 概述,白盒测试 的原则

31、,白盒测试局限性:是穷举路径测试,贯穿程序独立路径数是天文数字,即使每条路径都经过了测试,仍可能有未发现错误。,问题:若AND错写为OR,或X1错写为X1,则错误无法由上例测出。,Test case : A=2 , B=0 , X=4.,a,b,c,d,e, 语句覆盖(Statement coverage):每个语句至少执行一次。,判定覆盖(Branch coverage):在的基础上,每个判定的每个分支至少执行一次。,Test cases: A=3 , B=0 , X=3 A=2 , B=1 , X=1,问题:若X1错写为X1,仍然无法被测出。,a,c,b,e,d, 条件覆盖(Conditi

32、on coverage):在的基础上,使每个判定表达式的每个条件都取到各种可能的结果。,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1),d,b,a,c,e,A=1, B=1, X=1 (满足A1, B0; A 2, X1),真,真,真,真,假,假,假,假, 条件覆盖(Condition coverage):在的基础上,使每个判定表达式的每个条件都取到各种可能的结果。,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1),d,b,a,c,e,A=1, B=1, X=1 (满足A1, B0; A 2, X

33、1), 条件覆盖(Condition coverage):在的基础上,使每个判定表达式的每个条件都取到各种可能的结果。,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1) A=1, B=1, X=1 (满足A1, B0; A 2, X1),问:条件覆盖 ? 判定覆盖,答: 不一定。反例: A=2, B=0, X=1A=1, B=1, X=2,d,b,a,c,e,判定/条件覆盖:同时满足判定覆盖和条件覆盖的要求,Test cases: A=2 , B=0 , X=4 (满足A1, B=0; A=2, X1) A=1, B=1, X=1 (满足A1,

34、B0; A 2, X1),d,b,a,c,e, 条件组合覆盖:每个判定表达式中条件的各种可能组合都至少出现一次。,全部可能的条件组合为: A1, B=0 A1, B 0 A1, B=0 A1, B 0 A=2, X1 A=2, X 1 A 2, X1 A 2,X 1,Test cases: A=2, B=0, X=4 (T T) A=2. B=1, X=1 (F T) A=1, B=0, X=2 (F T) A=1, B=1, X=1 (F F),问题:没有测试到(T F)的情形,e,c,a,b,d,3.4 软件测试,3.4.6 黑盒测试,1. 概述,也叫功能测试或数据驱动测试 ,被测软件看作

35、一个不透明的黑盒子,在软件接口处进行,完成功能的验证。黑盒测试完全不考虑程序内部的逻辑结构和内部特性 。,黑盒测试(Black Box Testing),假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的测试数据组:232232264 如果测试一组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。,用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。,3.4 软件测试,3.4.6 黑盒测试,1. 概述,方法(四种):,(1)等价类划分

36、法,(2)边界值法,(3)错误推测法,(4)因果图法,3.5 程序调试,任务:诊断和改正程序中的错误。,通常称Debug,即排错。,3.5.1 概述,功能没有实现或与规格说明不一致的问题是bug; 不能工作(死机、没反应)的部分是bug; 不兼容的部分是bug; 边界条件未做处理是bug; 界面、消息、提示、帮助不够准确是bug; 屏幕显示、打印结果不正确也是bug; 有时把尚未完成的工作也作为一个bug。,什么是Bug?,3.5 程序调试,任务:诊断和改正程序中的错误。,程序调试基本步骤:(见教材P156),3.5.1 概述,错误定位: 确定程序出错的位置,找出错误的内在原因 对程序进行修改

37、,以排除错误. 进行回归测试:重复进行某些有关测试,确认该错误是否被排除,以及是否引进了新的错误。,3.5 程序调试,3.5.1 概述,主要的调试方法可以采用:,1.蛮干法 2.回溯法 3.原因排除法(演绎法、归纳法、二分法),补充:,在软件已经交付使用后,为了改正错误或满足需要而修改软件的过程。,软件维护:,软件维护类型:,正确性维护、适应性维护 完善性维护、预防性维护,1.检查软件产品是否符合需求定义的过程称为_。A.确认测试 B. 集成测试 C. 验证测试 D. 单元测试 2.软件调试的目的是_。 A. 发现错误 B. 改正错误 C. 改善软件的性能 D. 挖掘软件的潜能 3 . 下列对

38、于软件测试的描述中正确的是_。(05. 4 月) A) 软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确 C) 软件测试的目的是尽可能多地发现程序中的错误D) 软件测试的目的是使程序符合结构化原则 4. 下列叙述中正确的是 _. (05.9月)A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试,5.下列叙述中正确的是 (06.4月)A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 6.下列叙述中正确的是 (05

39、年)A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 7. 下列不属于软件调试技术的是_。 A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 8. 在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看做是_。 A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合,9. 白盒测试方法一般适用于_测试。A. 单元 B. 集成 C. 确认 D. 系统 10. 软件测试方法一般有黑盒测试和白盒测试,其中黑盒测试主要是依据程序的_.A. 结构 B. 流程 C

40、. 功能 D. 逻辑 11. 用黑盒测试法设计测试用例的方法之一为A. 因果图 B. 逻辑覆盖C. 循环覆盖 D. 基本路径测试 12. 软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过数据和_的设计来实现。,等级考试填空题(05、 06年) 1. 程序测试分为静态分析和动态测试。其中【 】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 2. 【 】的任务是诊断和改正程序中的错误。 3.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 【 】 的作用是将测试数据传送给被测试的模块,并显示被测试

41、模块所产生的结果。 4. 诊断和改正程序中错误的工作通常称为 【】 。,1.静态分析 2. 调试 3.驱动模块 4.程序调试,1. 若按功能划分,软件测试的方法通常分为白盒测试方法和_测试方法。 2. 软件的调试方法主要有:强行排错法、_和原因排除法。 3. 与结构化需求分析方法相对应的是_方法。 4. 数据流的类型有_和事务型。 5. 测试的目的是暴露错误,评价程序的可靠性;而_的目的是发现错误的位置并改正错误。 6.单元测试阶段主要涉及的文档是_. 7.等价类型划分法是_测试的常用方法。,1.黑盒 2.回溯法 3.结构化设计 4.变换型 5.调试 6.详细设计说明书 7. 黑盒,需求分析,软件设计,方法 模型 设计工具,结构化分析法SA,结构化设计方法SD,建立逻辑模型编写需求规格说明书,建立物理模型,概要设计详细设计,数据流图DFD,数据字典DD,结构图SC(数据流图转换为结构图) 程序流程图PFD,N-S, 问题分析图PAD,问题设计语言PDL,总结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报