软件工程 第10讲

合集下载

《软件工程》教学教案

《软件工程》教学教案

《软件工程》教学教案一、第一章:软件工程概述1. 教学目标了解软件工程的定义、目的和重要性,掌握软件开发的基本过程和原则。

2. 教学内容软件工程的定义和重要性;软件开发的基本过程;软件工程的原则和方法。

3. 教学方法采用讲授法,结合案例分析,让学生了解和掌握软件工程的基本概念和原则。

4. 教学资源教材、课件、案例分析。

5. 教学评价通过课堂提问和案例分析,评估学生对软件工程的理解和应用能力。

二、第二章:软件需求分析1. 教学目标掌握软件需求分析的基本概念、方法和过程,能够运用需求分析工具进行需求收集和分析。

2. 教学内容软件需求分析的基本概念;需求分析的方法和过程;需求分析工具的使用。

3. 教学方法采用讲授法和实例分析,让学生了解和掌握需求分析的方法和过程。

4. 教学资源教材、课件、实例分析。

5. 教学评价通过课堂提问和实例分析,评估学生对需求分析的理解和应用能力。

三、第三章:软件设计1. 教学目标掌握软件设计的基本概念、方法和过程,能够运用设计工具进行软件架构和详细设计。

2. 教学内容软件设计的基本概念;设计方法和过程;设计工具的使用。

3. 教学方法采用讲授法和实例分析,让学生了解和掌握软件设计的方法和过程。

4. 教学资源教材、课件、实例分析。

5. 教学评价通过课堂提问和实例分析,评估学生对软件设计的理解和应用能力。

四、第四章:软件实现1. 教学目标掌握软件实现的基本概念、方法和过程,能够运用编程语言进行软件编码和测试。

2. 教学内容软件实现的基本概念;实现方法和过程;编程语言和测试工具的使用。

3. 教学方法采用讲授法和编程实践,让学生了解和掌握软件实现的方法和过程。

4. 教学资源教材、课件、编程环境和测试工具。

5. 教学评价通过编程实践和测试结果,评估学生对软件实现的理解和应用能力。

五、第五章:软件维护1. 教学目标掌握软件维护的基本概念、方法和过程,能够进行软件维护和优化。

2. 教学内容软件维护的基本概念;维护方法和过程;软件优化技巧。

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案

《软件工程导论》课后习题详细答案第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻咨询题。

这些咨询题表现在以下几个方面:(1)用户对开发出的软件专门难中意。

(2)软件产品的质量往往靠不住。

(3)一样软件专门难爱护。

(4)软件生产效率专门低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估量。

(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。

2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。

造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。

(2) 软件本身方面,关于运算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。

(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列咨询题更为突出,技术的进展差不多远远不能适应社会需求。

3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。

在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。

(3) 按照不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。

软件工程讲义_数据流图

软件工程讲义_数据流图
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
数据流图
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
本次课要解决的问题
• • • • 什么是数据流图? 数据流图有什么用? 怎么画数据流图? 使用数据流图时应该注意哪些问题?
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
数据流图示例
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
五、数据流图实例——定货系统
1、问题描述:假设一家工厂的采购部每天需 要一张定货报表,报表按零件编号排序,表 中列出所有需要再次定货的零件。对于每个 需要再次定货的零件应该列出下述数据:零 件编号,零件名称,定货数量,目前价格, 主要供应者,次要供应者。零件入库或出库 称为事务,通过放在仓库中的CRT终端把事 务报告给定货系统。当某种零件的库存数量 少于库存量临界值时就应该再次定货。
数据源点/终点的命名
• 不属于数据流图的核心内容,通常是目标系统的外围环境部分。 通常采用它们在问题域中习惯使用的名字。
泉州师范学院数计学院计算机科学与技术专业
软件工程讲义
六、使用数据流图的几点说明
2、在分析下层的数据流图时,有时没有给出源点与终 点。 3、从一个数据存储中取出来的或放进去的数据通常和 原来存储的数据相同,即数据存储和数据流只不过 是同样数据的两种不同形式。这时候,与数据存储 同名的数据流经常被省略。 4、当进一步分解将涉及如何具体地实现一个功能时就 不应该再分解了。 5、当对数据流图分层细化时必须保持信息的连续性, 即当把一个处理分解为一系列处理时,分解前和分 解后的输入输出数据流必须相同。这条规则也称为 数据流图的平衡原则。
软件工程讲义

软件工程课本讲解软件设计理论

软件工程课本讲解软件设计理论
使用流程图做为工具设计程序时,把流程图中的 某一部分划出组成模块,就得到顺序内聚模块。 例如,把流程图中的循环部分、判定部分、计 算部分组成一个模块,这一个模块内各元素就 是顺序内聚模块。
33
顺序内聚模块
读入 成绩单
审查 成绩单
统计 成绩
打印 成绩
读入并审查 成绩单
统计并打印 成绩单
通信内聚(信息内聚)

标记耦合
性 (中耦合) 控制耦合) 内容耦合

模 块 独 立 性

13
紧密耦合-有 很多依赖关系
松散耦合-有 少量依赖关系
无耦合-没有依赖关系
14
非直接耦合(Nondirect Coupling)
两个模块之间没有直接关系,它们之 间的联系完全是通过主模块的控制和 调用来实现的。 非直接耦合的 模块独立性最 强。
6
模块化
软件系统的模块化是指整个软件被 划分成若干单独命名和可编址的部 分,称之为模块。这些模块可以被 组装起来以满足整个问题的需求。 把问题/子问题的分解与软件开发 中的系统/子系统或系统/模块对 应起来,就能够把一个大而复杂的 软件系统划分成易于理解的比较单 纯的模块结构。
7
模块的独立性
模块(Module)
即直接访问全局简单变量
A
PUBLIC T
B
24
公共耦合(Common Coupling)
若一组模块都访问同一个公共数据环境 ,则它们之间的耦合就称为公共耦合。 公共的数据环境可以是全局数据结构、 共享的通信区、内存的公共覆盖区等。
全局数据结构
模块A、B、C间存在错综复杂的联系
AB C
A
B
公共数据区
就是标记耦合。这个记录是某一数据 结构的子结构,而不是简单变量。

《软件工程基础》教案

《软件工程基础》教案

教案20 ∽20 学年第学期开课单位课程名称《软件工程基础》课程类型专业核心必修课授课班级授课教师教材名称软件工程基础授课时数72教案课程基本信息注:表中□选项请打“√”。

教案教案教案教案教案【组织教学】利用云班课清点人数,组织教学。

【旧课复习,新课引入】旧课复习:可行性研究的主要内容技术可行性:使用现有技术能实现这个系统吗?经济可行性:这个系统的经济效益能超过它的开发成本吗?操作可行性:系统的操作方式在这个用户组织内行得通吗?问题引入:为什么需要需求分析?【新课讲授】3.1 需求分析的任务●问题分析●分析与综合●编制需求分析文档●需求评审需求分析的基本任务是准确地回答系统必须做什么。

需求分析各组成部分及相互间的关系如图所示。

1.确定对系统的综合要求2.分析系统的数据要求3.导出系统的逻辑模型4.修正系统开发计划5.开发原型系统3.2 需求分析的原则需求分析的前提是准确、完整地获取用户需求。

●功能需求●性能需求【课程总结】小结:对本次讲授内容进行概括总结。

5min20min40min教师讲解新课的每一个知识点。

讲解过程中对重点和难点详细讲解。

学生:积极思考和回答课堂上老师提出的问题。

20min5min课后复习,借助教材、参考书、互联网等,认真完成作业和思考题。

教案教案【组织教学】利用云班课清点人数,组织教学。

【旧课复习,新课引入】瀑布模型的特点【新课讲授】补充内容:需求分析一般过程可分为四个阶段:调查研究、分析与综合、书写需求分析的文档和评审。

(1)调查研究。

补充数据字典(数据)、修改IPO图(算法)(2)分析与综合。

系统分析员和用户追踪数据流图、复查系统逻辑模型. (3)书写需求分析的文档。

系统规格、数据要求、用户系统描述等文档(4)需求分析评审。

给出评审结果。

3.5 数据流图1. 数据流图符号2.命名●为数据流命名●为处理命名数据流图实例讲评实例讲评:仓库订货系统数据流图实例实例讲评:《口算高手》顶层数据流图实例讲评:《客房管理系统》局部数据流图5min20min20min教师讲解新课的每一个知识点。

软件工程讲义,软件工程电子书

软件工程讲义,软件工程电子书
– 艺术 vs. 标准化 – 错误的发现 – 软件需求获取 – 软件支持和维护 – 开发速度 vs. 市场需求 – 开发周期过长、开发成本过高 – 研发风险 – 软件Trouble – 软件开发中的复杂的协作(人员,问题,过程) – 不同角色的软件神话(管理者,用户,开发者,大众) 6/360
1.1 软件工程的产生
38/360
2.2 需求分析的任务
– 功能性需求和非功能性需求
• 功能性需求:描述了系统应该做什么,即具备 的功能或服务。(输入、输出和计算等)
• 非功能性需求:描述了系统必须遵守的约束条 件。(响应时间、吞吐量 、可靠性、可移植性、 可扩展性、易用性、安全性、资源要求、可复 用性、技术要求、文化和政策需求、法律需求、 道德要求、隐私要求,等等)
– 粗糙
9/360
1.2 软件工程学
• Definition
– 软件工程是软件开发、运行、维护和引退的 系统方法。
– 因而软件工程是指导计算机软件开发和维护 的工程学科。软件工程采用工程的概念、原 理、技术和方法来开发与维护软件。
– 软件工程的目标是实现软件的优质高产,软 件工程的目的是在规定的时间、规定的开发 费用内,开发出满足用户需求的、高质量的 软件产品。
• Who
– 系统分析师、出资方领导、出资方技术人员、 开发方领导和项目经理
• Where
– 客户现场
32/360
2.1 软件问题定义及可行性研究
• How
33/360
2.1 软件问题定义及可行性研究
2.1.2 可行性研究 • What
– 可行性研究是以相对短的时间和相对低的成 本来确定给定的问题在其约束条件内是否有 解、有几种解以及哪个是最佳解。

《软件工程》教学大纲

《软件工程》教学大纲

《软件工程》教学大纲一、教学目的及任务本课程是计算机科学与技术专业的主要专业基础课,本课程为理论与实践并重的信息学科的专业基础课。

本课程的主要目的是使学生理解在软件开发过程中应用软件工程方法的必要性和迫切性,要求学生掌握软件工程的基本概念、原理与技术方法。

在让学生了解有关知识与方法的同时,采用实践相配合的方式提高学生对专业知识的综合应用能力与技能,使学生在接收理论知识的基础上提高并加强工程化知识与实践知识的教育,为学生在今后从事计算机大规模软件开发与维护打下扎实的基础。

教学任务是使学生熟练掌握和在实践中运用软件工程基本概念、原理和方法,常用的软件过程模型,软件项目管理与质量保证的基本方法与工具。

使学生能针对具体应用,进行需求分析建模、软件设计及测试,以规范的方法开发软件系统。

使学生具备分析解决软件工程问题的能力,以及团队协作、谈判沟通等能力。

二、教学方法(一)授课方式与要求授课方式:a.教师讲授(讲授核心内容、总结、按顺序提示今后内容、答疑);b.课后作业(每周作业在教学日历中列出);c.课堂测验(就已经学过的内容不定时进行课堂测验);d.案例研讨(就某个典型的应用案例进行课前调研和课堂研讨)e.课堂报告(针对某个知识点,提前布置,让学生在课堂上分享自己的理解)f.实验项目(根据实验要求分组进行软件系统开发,其间编写实验报告,如需求分析报告、总体设计报告、测试报告等,提交可运行的软件系统);g.期末考试(闭卷考试)。

课程要求:熟悉软件工程基本知识,掌握从软件计划、需求分析、设计、测试等过程的一系列软件开发方法和工具,提高软件开发能力。

说明:本课程注重实践能力的培养。

课后需要有足够的时间进行课程案例调研以及实验项目的设计和实现。

(二)考试评分与建议a.期末考试占40%b.实验项目占40%c.课堂讨论(含课堂测验和课堂报告)占20%。

三、教学安排(一)教学内容第一次:软件工程概述(模块-1-软件工程概述)主要内容:软件已经成为以计算机为基础的系统和产品中的关键部分,并且成为世界舞台上最为重要的技术之一,软件工程的目的是高效率的开发高质量的软件产品。

软件工程导论课后习题详细答案

软件工程导论课后习题详细答案

《软件工程导论》课后习题详细答案第一章软件工程概论1.什么是软件危机?软件危机是指在运算机软件的开发和爱护过程中所遇到的一系列严峻咨询题。

这些咨询题表现在以下几个方面:(1)用户对开发出的软件专门难中意。

(2)软件产品的质量往往靠不住。

(3)一样软件专门难爱护。

(4)软件生产效率专门低。

(5)软件开发成本越来越大。

(6)软件成本与开发进度难以估量。

(7)软件技术的进展远远满足不了运算机应用的普及与深入的需要。

2.什么缘故会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正明白得软件产品是一个完整的配置组成。

造成开发中制定打算盲目、编程草率,不考虑爱护工作的必要性。

(2) 软件本身方面,关于运算机系统来讲,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件爱护困难。

(3) 专门是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估量、爱护困难等一系列咨询题更为突出,技术的进展差不多远远不能适应社会需求。

3.如何样克服软件危机?(1) 充分吸取和借鉴人类长期以来从事各种工程项目中积存的行之有效的有效原理、概念、技术与方法,专门是吸取几十年来人类从事运算机硬件研究和开发的体会教训。

在开发软件的过程中努力作到良好的组织,严格的治理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在运算机系统早期进展时期形成的一些错误概念和作法。

(3) 按照不同的应用领域,开发更好的软件工具并使用这些工具。

将软件开发各个时期使用的软件工具集合成一个整体,形成一个专门好的软件开发支环环境。

总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织治理措施。

4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、爱护到剔除的全过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程(0010)
判定覆盖--概念
• 判定覆盖又叫分支覆盖,它的含义是, 不仅每个语句必须至少执行一次,而且 每个判定的每种可能的结果都应该至少 执行一次,也就是每个判定的每个分支 都至少执行一次。
软件工程(0010)
例子--判定覆盖
对于上述例子来说,能够分别覆盖路 径sacbed和sabd的两组测试数据,或 者可以分别覆盖路径sacbd和sabed的 两组测试数据,都满足判定覆盖标准。 例如,用下面两组测试数据就可做到 判定覆盖: I. A=4,B=0,X=3(覆盖sacbd) II. A=2,B=1,X=1(覆盖sabed) 判定覆盖比语句覆盖强,但是对程序 逻辑的覆盖程度仍然不高,例如,上 面的测试数据只覆盖了程序全部路径 的一半。
软件工程(0010)
条件覆盖--概念
• 条件覆盖的含义是,不仅每个语句至少 执行一次,而且使判定表达式中的每个 条件都取到各种可能的结果。
软件工程(0010)
条件覆盖的标准
条件1: A>0 可能的结果:a>0, a<=0 条件2: b<0 可能的结果:b<0, b>=0 测试数据: 1:a>0, b<0 取值:a=1,b=-1 2:a<=0, b>=0 取值:a=0, b=0
• • • • • • • • • • • • • •
软件工程(0010)
错误推测法
• 经验:不同类型不同特点的程序通常又有一 些特殊的容易出错的情况 • 结论:依靠测试人员的经验和直觉,从各种 可能的测试方案中选出一些最可能引起程序 出错的方案。 • 方法:错误推测法在很大程度上造自觉和经 验进行。它的基本想法是列举出程序中可能 有的错误和容易发生错误的特殊情况,并且 根据它们选择测试方案。
软件工程(0010)
边界值分析
• 经验:处理边界情况时程序最容易发生错误。 • 例如:许多程序错误出现在下标、纯量、数据 结构和循环等等的边界附近。 • 例如:输入数据的值的范围是:-1.0至1.0,则 可选-1.0,1.0,-1.001,1.001等数据作为测试数 据。 • 结论:设计使程序运行在边界情况附近的测试 方案,暴露出程序错误的可能性更大一些。 • 方法:选取的测试数据应该刚好等于、刚刚小 于和刚刚大于边界值。通常设计测试方案时总 是联合使用等价划分和边界值分析两种技术。
软件工程(0010)
例子--判定/条件覆盖
对于图的例子而言,下述两组测 试数据满足判定/条件覆盖标准: I. A=2,B=0,X=4 II. A=1,B=1,X=1
软件工程(0010)
点覆盖--概念
• 图论中点覆盖的概念定义如下:如果连通图G的 子图G´是连通的,而且包含G的所有节点,则称 G´是G的点覆盖。 • 我们已经学过了从程序流程图导出程序图的方 法。在正常情况下程序图是连通的有向图,图 中每个节点相当于程序流程图的一个框(一个 或多个语句)。满足点覆盖标准要求选取足够 多的测试数据,使得程序执行路径至少经过程 序图中每个节点一次。显然,点覆盖标准和语 句覆盖标准是相同的。
软件工程(0010)
等价类划分--经验规则
• 如果规定了输入值的范围,则可划分出一个有效的等价类(输 入值在此范围内),两个无效的等价类(输入值小于最小值或 大于最大值); • 如果规定了输入数据的个数,则类似地也可以划分出一个有效 的等价类和两个无效的等价类; • 如果规定了输入数据的一组值,而且程序对不同输入值做不同 处理,则每个允许的输入值是一个有效的等价类,此外还有一 个无效的等价类(任一个不允许的输入值); • 如果规定了输入数据必须遵循的规则,则可以划分出一个有效 的等价类(符合规则)和若干个无效的等价类(从各种不同角 度违反规则); • 如果规定了输入数据为整型,则可以划分出正整数、零和负整 数等三个有效类; • 如果程序的处理对象是表格,则应该使用空表,以及含一项或 多项的表。



例子--等价类划分方案
• • • • • • • (1)1~6个数字组成的数字串, 输出是合法的正整数。 输入:‘ 1’ 预期的输出:1 (2)最高位数字是零的数字串, 输出是合法的正整数。 输入:‘000001’ 预期的输出:1 (3)负号与最高位数字紧相邻, 输出合法的负整数。 输入:‘–00001’ 预期的输出:–1 (4)最高位数字是零,输出也 是零。 输入:‘000000’ 预期的输出:0 (5)太小的负整数 输入:‘–47561’ 预期的输出:“错误——无效 输入” (6)太大的正整数 输入:‘132767’
T A>0 and b<0
F
软件工程(0010)
例子--条件覆盖
图的例子中共有两个判定表达式,每个表达式中有 两个条件,为了做到条件覆盖,应该选取测试数据 使得在a点有下述各种结果出现: A>1,A≤1,B=0,B≠0 在b点有下述各种结果出现: A=2,A≠2,X>1,X≤1 只需要使用下面两组测试数据就可以达到上述覆盖 标准: I. A=2,B=0,X=4 (满足A>1,B=0,A=2和X>1的条件,执行路径 sacbed) II. A=1,B=1,X=1 (满足A≤1,B≠0,A≠2和X≤1的条件,执行路径sabd) 条件覆盖通常比判定覆盖强,因为它使判定表达式 中每个条件都取到了两个不同的结果,判定覆盖却 只关心整个判定表达式的值。
软件工程(0010)
判定/条件覆盖--概念
• 既然判定覆盖不一定包含条件覆盖,条件 覆盖也不一定包含判定覆盖,自然会提出 一种能同时满足这两种覆盖标准的逻辑覆 盖,这就是判定/条件覆盖。它的含义是, 选取足够多的测试数据,使得判定表达式 中的每个条件都取到各种可能的值,而且 每个判定表达式也都取到各种可能的结果。
软件工程(0010)
边覆盖--概念
• 图论中边覆盖的定义是:如果连通图G的 子图G″是连通的,而且包含G的所有边, 则称G″是G的边覆盖。 • 为了满足边覆盖的测试标准,要求选取 足够多测试数据,使得程序执行路径至 少经过程序图中每条边一次。
软件工程(0010)
例子--边覆盖
为了使程序执行路径经过程序图 的边覆盖(1,2,3,4,5,6, 7),至少需要两组测试数据 (分别执行路径1—2—3和1—4— 5—6—7;或分别执行路径1—4— 5—3和1—2—6—7)。 通常边覆盖和判定覆盖是一致的。 例如,以前为满足判定覆盖标准 而选取的下述两组测试数据,即 可同时做到边覆盖: I. A=3,B=0,X=3 (执行路径1—4—5—3) II. A=2,B=1,X=1 (执行路径1—2—6—7)
软件工程
辅导课程十
主讲教师:周竹荣
软件工程(0010)
等价类划分--基本概念
• 分类:把所有可能的输入数据(有效的和无效的) 划分成若干个等价类, • 假定:每类中的一个典型值在测试中的作用与这 一类中所有其他值的作用相同。 • 方法:从每个等价类中只取一组数据作为测试数 据。 • 结论:这样选取的测试数据最有代表性最可能发 现程序中的错误。 • 例如:输入的数据范围是1~999,我们可以划分 三类:x<1,1<=x<999,x>=999
图6.6 图6.5对应的程序图
软件工程(0010)
路径覆盖--概念
• 路径覆盖的含义是,选取足够多测试 数据,使程序的每条可能路径都至少 执行一次(如果程序图中有环,则要 求每个环至少经过一次)。
软件工程(0010)
例子--路径覆盖
在图6.6的例子中共有四条可能的执行路径, 它们是:1—2—3;1—2—6—7;1—4—5—3和 1—4—5—6—7。因此,对于这个例子而言,为 了做到路径覆盖必须设计四组测试数据。例 如,下面四级测试数据可以满足路径覆盖的 要求: I. A=1,B=1,X=1(执行路径1—2—3) II. A=1,B=1,X=2(执行路径1—2—6—7) III. A=3,B=0,X=1(执行路径1—4—5—3) IV. A=2,B=0,X=4(执行路径1—4—5—6—7)
软件工程(0010)
语句覆盖--概念
• 为了暴露程序中的错误,至少每个语句 应该执行一次。语句覆盖的含义是,选 择足够多的测试数据,使被测程序中每 个语句至少执行一次。
软件工程(0010)
例子-语句覆盖
为了使每个语句都执行一次,程序 的执行路径应该是sacbed,为此只 需要输入下面的测试数据(实际上X 可以是任意实数): A=2,B=0,X=8 语句覆盖对程序的逻辑覆盖很少,在 上面例子中两个判定条件都只测试了 条件为真的情况,如果条件为假时处 理有错误,显然不能发现。此外,语 句覆盖只关心判定表达式的值,而没 有分别测试判定表达式中每个条件取 不同值时的情况。 综上所述,可以看出语句覆盖是很弱 的逻辑覆盖标准,
软件工程(0010) • • • • • • • • • • • • • • •
• • •
• • • • • • •
(7)空字符串。 输入:‘ ’ 预期的输出:“错误——没 有数字” (8)字符串左部字符既不 是零也不是空格。 输入:‘×××××1’ 预期的输出:“错误——填 充错” (9)最高位数字后面有空 格。 输入:‘ 1 2’ 预期的输出:“错误——无 效输入” (10)最高位数字后面有其 他字符。 输入:‘1××2’ 预期的输出:“错误——无 效输入” (11)负号和最高位数字之 间有空格。 输入:‘ – 12’ 预期的输出:“错误——负 号位置错”
软件工程(0010)
例子--等价类划分结果
• 有效输入的等价类有 – (1)1~6个数字字符组成的数字串(最高位数字不是零); – (2)最高位数字是零的数字串; – (3)最高位数字左邻是负号的数字串; 无效输入的等价类有 – (4)空字符串(全是空格); – (5)左部填充的字符既不是零也不是空格; – (6)最高位数字右面由数字和空格混合组成; – (7)最高位数字右面由数字和其他字符混合组成; – (8)负号与最高位数字之间有空格; 合法输出的等价类有 – (9)在计算机能表示的最小负整数和零之间的负整数; – (10)零; – (11)在零和计算机能表示的最大正整数之间的正整数; 非法输出的等价类有 – (12)比计算机能表示的最小负整数还小的负整数; – (13)比计算机能表示的最大正整数还大的正整数。
相关文档
最新文档