河南农业大学软件工程考点_第1页
河南农业大学软件工程考点_第2页
河南农业大学软件工程考点_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、农业畜牧行业)河南农业大学软件工程考点第一章软件工程概论1软件工程定义 软件工程是开发、运行、维护和修复软件的系统方法。是一门指导计算机软件开发和维护的工程学科。软件 工程学科是一门指导计算机软件开发和维护的工程学科。软件工程是一类求解软件的工程。2,软件工程包括三个要素:方法、工具和过程。方法:“如何做”工具: CASE ,是软件开发环境中最重要的组成部分。 过程:将方法和工具综合起来以达到合理、及时的进行计算机软件开发的目的。3,软件危机指在计算机软件开发和维护过程中所遇到的一系列问题:1 、不能正确地估计软件开发成本和进度,致使实际开发成本往往高出预算很多。2、软件产品不可靠,满足不了用

2、户的需求,甚至无法使用。3、交付使用的软件不易演化,以至于人们不得不重复开发类似的软件。4、软件生产率低下,远远满足不了社会发展的需求。4,软件工程是为了解决软件危机而产生的。5,软件工程目标 :生产具有 正确性 、可用性 以及 开销合算 的产品。 第二章软件开发模型1 软件生存周期 :软件生命周期实质上是大型系统开发过程中各项目阶段的一种表示方法,如同任何事物 一样,软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。根据这一思想,把上述基本的过程活动进 一步展开,可以得到软件生命期的 6 个步骤,即制定计划、需求分析、设计、程序编码、测试及运行维护。软件生命期模型是从软件项目需求定义直至软

3、件经使用后废弃为止, 跨越整个生命周期的系统开发、 运 作和维护所实施的全部过程、活动和任务的结构框架。2 ,软件开发过程模型 (软件生存周期模型) ,是把软件生存周期中软件生产活动的有序流程用一个合理的 框架开发模型规范描述。软件开发模型是软件开发全部过程、活动和任务的结构框架。软件开发过程 模型是一种软件过程的抽象表示法, 它从一个特定的角度表现一个开发过程。 软件过程模型主要是根据软件 的类型、规模,特别是软件的开发方法、开发环境等多种因素确立模型。主要有:原型模型、演化模型、增 量模型、瀑布模型。3,软件过程各阶段任务(了解)各种软件过程模型虽然有所不同, 一般都由软件定义、 软件开发

4、和软件维护三个时期组成, 每个时期又可由 多个阶段(子阶段)组成。软件定义时期的活动是弄清软件“做什么”,软件开发时期的活动是集中解决软 件“怎样做”,软件维护时期的活动是聚焦于软件的“修改/ 完善”,它们的主要活动特征可以概括为“ What-How-Change ”。1,软件定义时期是了解用户(或客户)提出的需求、确定项目的总目标、考察和分析项目的可行性、 导出实现项目目标应该采用的策略,系统的功能,并估计该项目需要的资源和成本,制定工程进度表等。软 件定义时期可以划分成问题定义、可行性研究、需求分析和开发计划四个阶段,其中,最核心的是需求分析 阶段,所以,软件定义时期也可以称为需求分析时期

5、。2,软件开发时期的任务是设计和实现已定义的,并经过需求分析的软件系统。软件开发时期通常划分 成软件设计、 软件实现和软件测试三个阶段。 软件测试也可以分解到软件实现的各个活动中, 可重新划分成 编码和单元测试、集成测试、系统测试三个阶段。甚至,还可以认为软件测试不是一个独立的阶段,因为它 应该和所有软件生产活动并行进行。 3,件维护时期(阶段)任务是在整个软件运行时期内,当发现错误时加以改正,以确保运行正常;当环境 改变时修改软件,以适应新的环境;当用户有新要求时及时改进软件,以满足需求等一系列维护活动。每一 项维护活动一般都经过提出(或报告)维护问题、分析维护要求、提出维护方案、审批维护方

6、案、确定维护 计划、修改软件设计、修改程序、测试 / 验收、维护报告等一系列环节(维护活动实质是一次压缩和简化了 的软件定义和开发过程) 。4,瀑布模型(Waterfal lModel)也称线性顺序模型。瀑布模型把开发过程分成固定的、相对独立的各个 阶段,每个阶段都有确定的、 有限的任务,而且在各个阶段采用一些规范的开发方法和管理手段,力求保证 软件质量和提高软件生产率。该模型适用于需求非常清楚的软件开发环境。图 5. 瀑布模型5 ,原型模型 可分为:快速原型模型、抛弃式原型模型、演化式原型模型图 8. 抛弃式原型模型抛弃式原型模型建立原型的目的是, 评价目标系统的某一个或某一些特性, 以便更

7、准确地确定需求, 或 者更严格地验证设计方案。 使用完之后就把该原型系统抛弃掉, 然后再重新构造正式的目标系统。 抛弃式原 型模型本质上仍属于瀑布模型, 建立原型系统只不过是“需求分析”和“有效性验证”的一种辅助手段, 需 求分析阶段结束时原型系统的生存周期也就终止。6 ,增量模型( IncrementalModel )把软件描述、设计、实现活动分解成一系列相互有联系的增量构件的 迭代开发, 是瀑布模型顺序特征和快速原型模型迭代特征相结合的一种软件构件化的模型。增量式的开发过程,首先根据客户需要提供的服务的优先次序,确定一系列交付增量,每个增量提供系统功能的一个子集。 随着开发过程的进展,每次

8、迭代产生一个可发布的(可执行的)软件增量构件。增量模型是一种非整体开发的模型。是一种进化式的开发过程。7 ,螺旋模型 将开发过程分为几个螺旋周期,每个螺旋周期可分为4 个工作步骤:第一,确定目标、方案和限制条件; 第二,评估方案、标识风险和解决风险; 第三,开发确认产品; 第四,计划下一周期工作。对大型软件 ,需要多个原型描述系统的生存期,适于螺旋模型开发方法,将瀑布模型与原型化模型结合起来,并加入风险分析讨论。,由数据流图 (DFD 图 )表示。图 11. 螺旋模型结构 第三章需求分析 1软件需求说明书是用户验证的一个标准。2 需求获取的内容分为: (了解) 物理环境:对系统运行时所处的环境

9、的要求。 界面:软件与用户界面的友好性。 用户或人的因素 :对用户的要求。功能:你的系统什么的干活?文档:文字说明等。数据:对数据的各种要求。 资源:软件运行时所需的数据、软件、内存空间等各项资源。 安全性: * 质量保证:可靠性和如何对付出错等。3,需求工程的基本活动包括:获取需求;深入实际,在充分理解用户需求的基础上,获取系统需求。需求分析与建模;进行需求建模、对模型或原型进行分析。确认需求;确保需求说明准确、完整地表达系统的主要特性。进化需求。客户的需要总是不断(连续)增长的,进化需求是必要的。4 ,需求分析方法1结构化分析方法是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射

10、方法2信息建模法是从数据的角度对现实世界建立系统的信息模型,基本工具是 ER 图。是由实体、属性和关系组成的网络图。E-实体,是一个或一组对象; R- 关系,实体之间联系或交互作用。3面向对象的分析方法面向对象分析方法 (OOA) 的关键是识别问题域内的对象 ,分析它们之间的关系 ,并建立起三类模型。 5,结构化需求分析方法在结构化需求分析方法中模型表示工具有:数据流图、数据字典、小说明。数据流图:是一种描述数据变换的图形工具,系统接受输入的数据,经过一系列的变换(加工) ,最后 输出结果。数据字典:以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储。 小说明:用于集中描述一个加工

11、“做什么”。数据流图 在数据流图中,加工、数据流、数据存储、数据源和数据谭是数据流图的基本成分。6,数据字典以一种准确的和无二义的方式定义所有被加工引用的数据流和数据存储。包含: 数据流条目;数据存储条目;数据项条目7 ,实施步骤 结构化分析从本质上说是一种抽象和分解技术,“自顶向下、逐步求精”的过程。 有了工具后(数据流图、数据字典、小说明 ),我们来看看如何进行结构化分析:1 确定系统边界,画出系统环境图。 2 自顶向下,画出各层数据流图。 3 定义数据字典。4 定义小说明。 5 汇总前面各步骤的结果。8,需求的可变性必须进行验证。9 ,需求验证的内容 1 有效性检查指功能需求是否符合用户

12、所提出的需求。 2 一致性检查系统功能描述 及约束是否一致。 3 完备性检查是否包含所有系统用户的需求和约束。 4 可检验性检查是否能设计出一 组验证方法,确定了检验的标准。10 ,需求分析规格说明书 是需求分析阶段产生的一份最重要的文档,它以一种一致的、无二义的方式准确 的表达用户的需求。有如下作用:1、作为软件开发机构和用户之间一份事实上的技术合同书。2 、作为软件开发机构下一步进行设计和编码的基础。 3 、作为测试和验收目标系统的依据。第四章软件设计1 ,软件设计任务 涉及多方面,可分为总体设计和详细设计。2 ,软件设计的目标 (如下图所示)就是构造一个高内聚低耦合的软件模型。3 ,软件

13、体系结构 确定了系统的组织结构和拓扑结构。体系结构设计是软件设计的第一个阶段,该阶段侧重 于系统宏观结构的设计,而不关心模块的内部算法。4 ,软件设计 分为总体设计和详细设计两个阶段。其工作流程可用下图表示: 设计阶段结束要交付的文档是设计说明书,根据设计方法的不同,有不同的设计文档。图 33. 软件设计工作流程每个设计步骤完成后,都应进行复审。5 ,以下经过长期考验的设计准则: 软件结构的准则;模块化准则;软件独立性准则。1 软件结构的准则:软件结构表示软件的系统结构,是软件模块间关系的表示,均表示为层次关系图 34. 软件结构示意图有关指标: 深度:表示软件结构中从顶层模块到最底层模块的层

14、数; 宽度:表示控制的总分布; 扇出数:指一个模块直接控制下属的模块个数; 扇入数:指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结构顶部有较高的扇 出数,在底部有较高的扇入数。2,模块化准则:所谓模块化就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起 来组成一个整体, 以满足所要求的整个系统的功能。 我们利用模块化来降低软件复杂度。 注意选择分解的最 佳模块数。3,软件独立性准则:软件独立性的含义是指开发具有功能专一,模块之 无过多相互作用的模块。又称为模块独立性准则。这种类型的模块可以并行开发,开发容易,能减少错误

15、的 影响,使模块容易组合、修改及测试。软件独立性的度量标准是两个定性指标:耦合性和内聚性。(1)耦合性用于描述模块之间联系的紧密程度。耦合性的几种类型:图 35. 耦合性的几种类型 从三个方面衡量块间联系大小:方式 ( 直接或间接) 类型(数据型、控制型、混合型) 数量(数量越大,块间联系越紧密。图 36. 三个方面间的联系1 ) 内聚性用于描述模块内部联系的紧密程度。内聚性的几种类型:图 37. 内聚的类型6,从系统设计的角度出发,软件设计方法可分为3大类: 1,面向数据流的设计 ;2,面向数据结构的设计,3,面向对象的设计。7 ,结构化设计方法 分为两部分 :总体设计和详细设计。 总体设计

16、:确定系统的整体模块结构。任务:解决系统的模块结构,即分解模块,确定模块功能及系统模块的层次结构。文档:模块结构图及其模块功能说明1 总体设计的目标 :是把系统的功能需求分配给软件结构,形成软件的模块结构图。如图38 所示:2 总体设计的表示形式层次图:总体设计常用的表示方法,用来描绘软件的层次结构。HIPO 图: H 图+IPO 图。图 38. 软件的模块结构图3 ,结构化设计方法可以把数据流图变换成软件结构。 从 DFD 图导出初始的模块结构图 (SC):中心变换 型 (transformcenter)_ 变换分析;事务处理型 (transaction)_ 事务分析。按照 SD 法设计总则

17、,改进模块 结构图。 注意:模块结构图不同于“框图” 。软件层次性:反映软件整体的性质 (结构图 )过程性:反映局部的性质 (框图 )4 ,中心变换型的 DFD 图:这类数据流图可看成是对输入数据进行转换而得到输出数据的处理。 DFD 图可 以明显分为“输入处理输出”三部分。 ,5 ,设计的准则 : (1)好的设计的准则:模块化;抽象;耦合;内聚耦合性是程序结构中各个模块之间相互关联的度量, 他取决于各个模块之间接口的复杂程度、 调用模块 的方式以及那些信息通过接口。模块化设计的目标是希望建立模块间耦合尽可能松散的系统。 (耦合性最松 散的是数据耦合 ) 内聚是模块内部各成分之间相互关联的强度

18、。 应尽量增加内聚性, 它比减少耦合性更重要, 应当把更多的注 意力集中到提高模块的内聚程度上来。 (内聚最强的是功能内聚)(2)启发式规则1 改进软件结构提高模块独立性 2 模块规模应该适中 3 深度、宽度、扇出和扇入应适中4 模块的作用域应该在控制域之内 5 力争降低模块接口的复杂性 6 模块功能应该可以预测 6,结构图的描述能力比层次图更强,图中的每一个方框代表一个模块,框内注明模块的名字或主要功能。方 框之间的直线表示模块的调用关系。1、模块:在结构图中,模块用矩形框表示,并用模块的名字标记它。2、模块的调用关系和接口:两个模块之间用单向箭头联结。3 、模块间的信息传递: 用尾端带有空

19、心圆的短箭头表示数据信息, 用尾端带有实心圆的短箭头表控制信息4 、两个辅助符号:当模块 M 有条件的调用另一个模块时在箭头尾部标以一个菱形符号。当一个模块反复 的调用模块 A、B、C 时,在调用箭头尾部标以一个弧形符号。结构图例详细设计 :给出软件模块结构中各模块的内部过程描述算法)。对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码,流程图, N-S 图,PAD 图等。(一)详细设计的任务结构化程序设计的第二阶段, 详细设计阶段的任务是开发一个可以直接转换为程序的软件表示, 即对系 统中每个模块的内部过程进行设计和描述。给出软件模块结构中各模块的内部过程描述(算法) ,包含实现

20、对应的总体设计的模块所需的处理逻辑,主要有:1 、详细的算法。 2、数据表示和数据结构。 3 、实施的功能和使用的数据之间的关系。 详细设计的主要任务是给出软件模块结构中各个模块的内部过程描述, 也就是模块内部的算法设计。 而我们 接下来看看这些算法的表示形式(二)详细设计工具1. 程序流程 - 程序流程也称程序框图,使用最为普遍。有五种基本控制结构: 顺序型:几个连续的加工步骤依次排列构成。选择型:有某个逻辑判断是的取值决定选择两个加工中的一个。 先判定型循环:在循环控制条件成立时,重复执行特定的加工。 后判定型循环:重复执行某些特定的加工,直到控制条件成立。多情况型选择:列举多种加工情况,

21、根据控制变量的取值,选择执行其一。程序流程图基本结构如图 50 所示。2. 标准程序流程图的规定符号标准程序流程图的规定符号如图51 所示 .图 50. 程序流程图基本结构图 51. 标准程序流程图的规定符号3,盒图( N-S )图盒图是 70 年代由 Nassi 和 Shneiderman 提出的。又称 N-S 图。也有五种基本控制结 构:顺序型:几个连续的加工步骤依次排列构成选择型:有某个逻辑判断是的取值决定选择两个加工中的一个。先判定型循环:在循环控制条件成立时,重复执行特定的加工。后判定型循环:重复执行某些特定的加工,直到控制条件成立。 多情况型选择:列举多种加工情况,根据控制变量的取

22、值,选择执行其一。N-S 图基本结构如图 52 所示。图 52. N-S 图基本结构4, PAD 图PAD 图是 1973 年由日本日立公司发明的, PAD 图又称问题分析图( problemAnalysisDiagram )用二维 树型结构的图表示的控制流,将这种图转换为程序代码比较容易其基本控制结构如下:例:对数组 X 进行排序。“自顶而下,逐步求精”1 、循环一次,排好一个 XhH: =1 ,n-1 排好第 h 个 Xh2、细化3 、连接各图,构成完整的 PAD 图、名词解释:1软件工程2软件开发模型3数据流图4软件设计评价准则5结构图6模块耦合7模块内聚、选择填空A、1. 结构设计是一

23、种应用最广泛的系统设计方法,是以()为基础、自顶向下、逐步求精和模块化的过程。 数据流 B、数据流图 C、数据库 D 、数据结构2. ()的内容不应当包括对算法的详细过程性描述。A 、需求规格说明书 B、总体框图 C、软件确认准则 D、软件的性能3. ()是一种传统的程序设计表示工具。A、程序流程图 B、数据流图 C、结构图 D、 HIPO 图4. ()的三种基本控制结构的共同特点是只有一个入口和一个出口。A、程序 B、高级语言 C、文档 D 、数据字典5. 模块在同一段时间内完成各种初始化工作,这属于() 。A、偶然内聚 B 、逻辑内聚 C、时间内聚 D、过程内聚6. 在详细设计的图示工具中

24、, ()的形状象一个盒子。A、 HIPO 图 B、流程图 C、N-S 图 D、PAD 图三、填空1 软件开发是,一个错误发现的越晚,为改正它所付出的代价就。2 从系统设计的角度出发,软件设计方法分为 、 三大类。3 总体设计阶段所使用的表示工具有 、 、4详细设计的根本目标是5 详细设计的工具有、 、 。四、判断 1 .程序流程图只反映数据的流向,不反映处理逻辑的先后2. 模块的内聚性程度与该模块在分层结构中的位置有关系3. HIPO 图是由一组 H 图和一张 IPO 图组成五、简答说明“软件生存周期”的概念1 软件工程的基本原则和目标2 模块的内聚性程度与该模块在分层结构中的位置有关系吗?说

25、明原因。6 PAD 图设置的基本控制结构?7. 模块的独立性是什么?8. 结构图是什么?9. 从系统设计的角度出发,软件设计方法分为?10. 模块耦合衡量?11. 模块内聚衡量?六、画出下面程序的流程图、 N-S 图和 PAD 图。ORG2000HMOVR 0,#0AHDL2 :MOVR 1,#7DHDL1 :NOPNOPDJNZR 1,DL1DJNZR 0,DL2END七、把下面程序的流程图转换为 N-S 图和 PAD 图九,把下面程序的流程图转换为N-S 图和 PAD 图。软件复用技术1, 软件复用 就是将已有的软件成分用于构造新的软件系统, 以达到提高软件系统的开发质量与效率, 降低开

26、发成本的目的。可复用的软件成分,也称为可复用构件 (ReusableComponent) 可从旧软件中提取,也可以 专门为复用而开发。 软件复用不仅是对程序的复用, 它包括对软件生产过程中任何活动所产生的制成品的复 用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等等。2, 软件复用的级别测试信息的复用( 主要包括测试用例的复用和测试过程信息的复用 )。分析结果的复用( 可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法) 设计结果的复用 (受实际环境影响小,可复用机会多,所需修改少。 )代码的复用 (包括目标代码,也包括文本形式的源代码。 )

27、软件复用抽象的程度由高到低。3, 构件库 用于对可复用构件进行存储和管理。 它是支持软件复用的必要设施。 构件库必须有大量的可复用构 件。构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等。5, 软件构架 是一种由特定领域的软件体系结构所决定的软件构造框架。 软件构架不是解决软件的某个局部问 题,而是描述了软件的总体结构。 它描述了一类软件的总体构成情况, 包括该软件有哪些主要部件以及各部 件之间的关系, 但是不涉及每个部件的细节。 可复用的软件构架给出一类应用系统在总体构造上的共性或相 似性,忽略了各个系统的局部差异。第七章软件测试1, 软件测试定义 :按照特定规程,发现

28、软件错误的过程。 (为了发现错误而执行程序的过程。 )在软件投入生 产性运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。因为开发工 作的前期不可避免地会引入错误, 测试的目的是为了发现和改正错误, 这对于某些涉及人的生命安全或重要 的军事、经济目标的项目显得尤其重要。2, 软件测试的目标 :1、预防错误; 2、发现错误。3 ,软件测试的基本原则 1 、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。输入数据的组成(输入数据、预期的输出结果)既有合理输入数据,也有 不合理的输入数据。用例既能检查应完成的任务,也能够检查不应该完成的任务。长期保存测试用例

29、。3、充分注意测试中的群集现象。4, 软件测试方法分为两类 :静态分析 (白盒法 )、动态测试(黑盒法) 1,静态分析指以人工的、非形式化的方法对程序进行分析和测试。桌前检查代码会审步行检查 步行检查时,还常使用以下分析方法: 2,动态测试 :通过选择适当的测试用例,执行程序。5, 常用的方法: 白盒法:分析程序的内部逻辑结构,注意选择适当的覆盖标准,设计测试用例,对主要路径进行尽可能多的测试。 黑盒法:不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。1.白盒法:白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。见图61 。图 61. 不同覆盖标准2.白

30、盒法常用的覆盖标准: 语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。判定 /条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种 可能的结果。条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。3. 白盒法步骤:1 选择逻辑覆盖标准。 2 按照覆盖标准列出所有情况。 3 选择确定测试用例 4 验证分析运行结果与预期结果。例:用白盒法测试以下程序段:Proced

31、ure (VARA , B,X:REAL);BEGINIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;白盒法举例:Procedure ( VARA,B,X:REAL );BEGINIF(A1)AND(B=0)THENX:=X/A;IF(A=2)OR(X1)THENX:=X+1END;图 62. 白盒法4语句覆盖语句覆盖:使得程序中每个语句至少都能被执行一次。例:满足语句覆盖的情况:执行路径: ace用例格式:输入(A,B,X) ,输出 (A,B,X)选择用例:(2,0,4),(2,0,3) 5判定覆盖 使得程序中每个判定至少为 TRUE

32、或 FALSE 各一次 覆盖情况:应执行路径 ace abd 或: acd abe 图 63. 路径流程图 选择用例 (其一): (2,0,4),(2,0,3)ace (1,1,1),(1,1,1)abd (2,1,1),(2,1,2)abe (3,0,3),(3,1,1)acd 6条件覆盖 使得判定中的每个条件获得各种可能的结果。应满足以下覆盖情况: 判定一 :A1,A 1,B=0,B 0 判定二 :A=2,A 2,X1,X 1 选择用例: (2,0,4),(2,0,3)图 63. 路径流程图(1,1,1),(1,1,1) 注意 :(1,0,3),(1,0,4) (2,1,1),(2,1,2

33、) 满足条件覆盖,但不满足判断覆盖。7判定 /条件覆盖 同时满足判断覆盖和条件覆盖。应满足以下覆盖情况: 条件 :A1,A 1,B=0,B 0A=2,A 2,X1,X 1应执行路径ace abd 或: acd abe选择用例:(2,0,4),(2,0,3) (ace)(1,1,1),(1,1,1)(abd)8条件组合覆盖使得每个判定中条件的各种可能组合都至少出现一次。 满足以下覆盖情况: A1,B=0 A1,B 0 A 1,B=0 A 1,B0A=2,X1 A=2,X 1A 2,X1 A 2,X 1选择用例:(2,0,4),(2,0,3) (2,1,1),(2,1,2) (1,0,3),(1,

34、0,4) 图 64.条件组合覆盖(1,1,1),(1,1,1) 2 ,黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。在黑盒 测试方 法中常用的有:等价分类法,边值分析法,错误推测法,因果图法。1. 等价分类法基本思想:根据程序的 I/O 特性,将程序的定义域划分为有限个等价区段“等价类” ,从等 价类中选择出的用例,具有“代表性” 。等价类分为:有效等价类对于程序的规格说明,是合理的、有意义的输入数据构成的集合。 无效等价类对于程序的规格说明,是不合理的、没有意义的输入数据构成的集合。2. 边值分析法 1x20.99,1,1.01,边值分析法的基本思想: 选择

35、等价类的边缘值作为测试用例, 让每个等价类的边界都得到测试, 选择测 试用例既考虑输入亦考虑输出。(1)分析步骤: A 先划分等价类。 B 选择测试用例,测试等价类边界。(2)边界选择原则:A 按照输入值范围的边界。 1x2B 按照输入 / 输出值个数的边界。C 输出值域的边界。 D 输入 / 输出有序集的边界。 1,3,5,7,9( 3 )边值分析法举例A 按照输入值范围的边界。 例如:输入值的范围是 -1.0 至 1.0 ,则可选择用例 :1.0 、1.0 、-1.001 、1.001 。 B 按照输入 / 输出值个数的边界。3. 错误推测法 凭经验或直觉推测可能的错误,列出程序中可能有的

36、错误和容易发生错误的特殊情况,选择测试用例。4. 因果图法 - 因果图法把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图, 采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。 根据这种关系可选择高效的测试 用例。因果图是一种形式化语言,是一种组合逻辑网络图。因果图的基本符号0- 表示“不出现” 1- 表示“出现”6,测试步骤(了解)所有测试过程都应采用综合测试策略;即先作静态分析,再作动态测试。并事先制订测试计划。测试过程通常可分 4 步进行:(1)单元测试:又称模块测试,以详细设计文档和源程序清单为指导,测试模块内的重要控制路径。(2)集成测试:也称组

37、装测试或联合测试。通常,在单元测试的基础上,需要将所有模块按照设计要求组 装成为系统。 ( 3)有效性测试:也称确认测试。它的任务是验证软件的有效性,即验证软件的功能和性能 及其它特性是否与用户的要求一致。 ( 4 )系统测试( systemtesting ):将经过确认测试的软件,与计算机 硬件、外设、支持软件等一起,在实际运行环境下测试。( 5 )验收测试( acceptancetesting ):验收测试是以用户为主的测试。第八章软件维护 1 ,软件维护 是指在软件维护阶段对软件产品所进行的一系列维护活动。因为软件(产品) 不仅仅包括程序,任何对文档、手册或产品其他组成部分的修改也都属于

38、软件维护范围。软件维护阶段变更 / 演化软件的基本目标:改正错误、优化软件、增加功能,提高软件产品质量; 延长软件寿命(软件生存周期) ,提高软件产品的价值。2,软件维护的特点(了解) 软件维护是软件生产性活动中延续时间最长、 工作量最大的活动。 所以, 软件维护是使软件成本大幅度上 升的重要因素。 软件维护不仅工作量大、任务重,如果维护得不当,还会产生一些副作用,甚至引入新的错误。因此, 软件维护直接影响软件(产品)的质量和使用寿命,维护活动必须慎之又慎。 软件维护活动实际是一个修改和简化了的软件开发过程。软件开发的所有环节,如分析、设计、实现 和测试等几乎都要在维护活动中用到 软件维护和软

39、件开发一样,都要采用软件工程原理和方法。这样才可以保证软件维护的标准化、高效 率,从而降低维护成本。3 ,软件可维护性 是指纠正软件的错误和缺陷,为满足新要求或环境变化而进行修改、扩充、完善的容易程 度。软件可维护性定义为软件的可理解、可测试、可修改性的难易程度。可维护性既是软件(产品)质量的 属性之一,又和其他软件质量属性有相当密切的关系。4,软件维护的类型 根据维护工作的特征,软件维护活动可以归纳为改正性维护、完善性维护、适应性维护和预防性维护 4 类。改正性维护( CorrectiveMaintenance ):对在测试阶段未能发现的,在软件投入使用后才逐渐 暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。改正性维护是为了识别和纠正 软件潜在错误、 改正软件性能上的缺陷、 排除实施中的误使用, 而进行的测试、 诊断和改正错误的维护活动。 根据统计资料, 继续纠正软件潜在的错误的工作量大约占总维护量的 20 %。软件维护阶段的最初 12 年内, 改正性维护量较大。随着软件(产品)进入正常的使用期,错误发现率急剧降低,并趋于稳定,改正性维护 量也趋于减少。完善

温馨提示

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

评论

0/150

提交评论