软件工程第六章

您所在的位置:网站首页 p控制图与pn控制图的区别在于 软件工程第六章

软件工程第六章

2024-07-01 18:08| 来源: 网络整理| 查看: 265

第六章 软件测试 **大家想一起学习交流的可以加群,QQ:755422568。**

软件测试:按照特定规程发现软件错误的过程。

1、软件测试目标

首要目标:预防错误 第二目标:发现(揭示)错误

错误:与所期望的设计之间的偏差,该偏差可能产生不期望的系统行为或失效。 失效:与所规约的系统执行之间的偏差。(失效是系统故障或错误的后果) 故障:导致错误或失效的不正常的条件。(故障可以偶然性的或是系统性的)

软件测试与软件调试相比,有许多区别,主要表现以下几个方面:(简单题) 1)、测试从一个侧面证明程序员的”失败“。调试为了证明程序员的正确。 2)、测试以已知条件开始,使用预先定义的程序且有预知的结果,不可预见的仅有是程序是否通过测试。调试一般是以不可知的内部条件开始,结果是不可预见的。 3)、测试是有计划的,并要进行测试设计。调试是不受时间约束的。 4)、测试是一个发现错误、改正错误、重新测试的过程。调试是一个推理过程。 5)、测试的执行是有规程的。调试的执行往往要求程序员进行必要推理。 6)、测试经常是由独立的测试组在不了解软件设计的条件下完成的。调试必须由了解详细设计的程序员完成。 7)、大多数测试的执行和设计可由工具支持。调试时,程序员能利用的工具主要是调试器。

软件测试过程模型: 环境模型(对程序运行环境的抽象) 对象模型(从测试的角度对程序的抽象) 错误模型(对程序中的错误及其分类的抽象)

2、软件测试技术

软件测试技术分为: 白盒测试技术(结构测试技术,典型的是路径测试技术,依据的是程序的逻辑结构) 黑盒测试技术(功能测试技术,包括事务处理流程技术、状态测试技术、定义域测试技术,依据的是软件行为的描述)

1、路径测试技术

基本要点: 采用控制流程图来表达被测程序模型,揭示程序中的控制结构。 通过合理地选择一组穿过程序的路径,以达到某种测试度量。

1)、控制流程图:一种表示程序控制结构的图形化工具。

过程块:没有被判定或被节点分开的一组程序语句。 节点:控制流进行结合,是一个程序点。 判定:控制流出现分叉,是一个程序点。

控制流程图与程序流程图的差异: 在控制流程图中不显示过程快细节,在程序流程图中着重于过程属性的描述。

2)、测试策略

路径覆盖:执行所有可能穿过程序控制流程的路径。 语句覆盖:至少执行程序中所有语句一次。 分支覆盖:至少将程序中的每一个分支执行一次。 条件覆盖与条件组合覆盖:(条件覆盖:每个判定中的所有可能的条件取值至少执行一个次。)(条件组合覆盖:设计足够多的测试用例,使,每个判定中的所有可能的条件取值组合至少执行一次。)

路径覆盖 》...... 》条件组合覆盖 》分支覆盖 》语句覆盖

3)、路径选取与用例设计

路径选取的一般原则是: 选择最简单的、具有一定功能含义的入口/出口路径。 在已选取的基础上,选取无循环的路径;选取短路径、简单路径。 选取没有明显功能含义的路径,此时要研究这样的路径为什么存在,为什么没有通过功能上合理的路径得到覆盖。

路径测试技术是一种简单、实用的单元测试技术,通过程序中的控制逻辑可以发现数据错误、基本计算错误。 路径测试技术是基于程序逻辑结构的,对错误的假定是软件通过了与预想不同的路径。 在路径测试技术中,采用控制流程图作为模型表达工具,支持创建被测程序的模型。 基于路径的基本属性,路径测试技术给出了几种常见的测试路径覆盖,包括语句覆盖、分支覆盖、条件组合覆盖和路径覆盖。 路径选取是测试用例设计的基础。在实际软件测试工作中,好的用例设计是发现程序错误的关键。

2、基于事务流的测试技术

一个事务可以是: 接收输入并进行输入处理。 向用户发送礼节性信息。 检索文件。 向用户请求指令。 接收并处理请求。 更改文件。 传送输出。 记录事务注册和清除。

1)、在事务流测试技术中,通过操作的一个序列即事务流来表达一个事务的。

该类测试技术的基本步骤:定义有用的图形模式,设计并执行必要的测试用例,覆盖该图形所表达的行为。

2)、事务流程图与控制流程图之间的差异是:

基本模型元素所表达的语义不同。 一个事务不等同于路径测试中的一条路径,可能在中间某处就完成了某一用户工作,终结了一个事务。 事务流程图中的分支和节点可能是一个复杂的过程。

3)、事务流程图具有很差的结构,其主要原因:

它是一种处理流程,其中可能包含人工的判断和处理。 某些部分可能与软件开发人员不能控制的行为有关。 性能的增加,可使事务数目和单个事务处理流程具有相关的复杂度。 事务流程表达的系统模型更接近现实,不再适合结构化概念。

4)、事务流测试技术的基本步骤 第一步:获得事务流程图 第二步:浏览、复审 第三步:用例设计 第四步:测试执行

3、其他功能测试技术

1、等价类划分

等价类划分方法:把软件所有功能的输入数据,划分成若干部分,形成一些等价类,从每一部分选取数据作为测试用例,进行软件测试。

1)、划分等价类:有效等价类和无效等价类

2)、设计测试用例 第一步:建立等价类表 第二步:为有效等价类设计测试用例 第三步:为无效等价类至少设计一个测试用例

2、边界值分析 使用边界值分析在设计测试用例时,遵循以下原则: 1)、如果某个输入条件规定了输入值的范围,则应选择正好等于边界值的数据,以及刚刚超过边界值的数据作为测试数据。 2)、如果某个输入条件规定了值的个数,则可用最大个数、最小个数、比最大个数多1,比最小个数少1的数作为测试数据。 3)、根据规格说明的每个输入条件,使用前面的原则(1)。 4)、根据规格说明的每个输出条件,使用前面的原则(2)。 5)、如果程序的规格说明中,输入域或输出域是有序集合,在实践中则经常选取集合的第一个元素、最后一个元素以及典型元素作为测试用例。 6)、如果程序中使用了内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 7)、分析规格说明,找出其他可能的边界条件。

边界值分析与等价类划分技术的区别在于: 边界值分析着重于边界的测试,应选取等于、刚刚大于或刚刚小于边界的值作为测试数据;而等价类划分是选取等价类中的典型值或任意值作为测试数据。

3、因果图 因果图:设计测试用例的一种工具,它着重检查各种输入条件的组合。

因果图测试技术是通过为判定表的每一列设计一个测试用例,从而实现测试用例的设计于选择的。 生成测试用例的基本步骤: 1)、通过软件规格说明书的分析,找出一个模块的原因(即输入条件或输入条件的等价类)和结果(即输出条件),并给每个原因和结果赋予一个标识符。 2)、分析原因与结果之间以及原因与原因之间对应的关系,并画出因果图。 3)、在因果图上标识出一些特定的约束或限制条件。 4)、把因果图转换为判定表。 5)、把判定表的每一列拿出作为依据,设计测试用例。

4、软件测试步骤

测试顺序及其每个测试的关注点(选择、填空、简单) 1、顺序: 1)、单元测试、集成测试、有效性测试和系统测试。 2、每个测试的关注点: 1)、单元测试关注每个独立的模块 2)、集成测试关注模块的组装 3)、有效性测试关注检验是否符合用户所见的文档,包括软件需求规格说明书、软件设计规格说明书以及用户手册。 4)、系统测试关注检验系统中所有元素之间的协作是否合适,整个系统的性能、功能是否达标。

1、单元测试(以详细设计文档为指导,采用白盒测试技术。) 单元测试主要检验软件设计的最小单元——模块。 考虑模块的4个特征: 1)、模块接口 2)、局部数据结构 3)、重要的执行路径 4)、错误执行路径 驱动模块和承接模块作为单元测试的测试设备

2、集成测试(目标是发现与接口有关的错误) 1)、自顶向下的集成测试是一种递增组装软件的方法。 以主控模块作为测试驱动模块,设计承接模块替代其直接的下属模块,依据所选的测试方法,在组合模块时进行测试。 2)、自底向上的集成测试从最低的一层开始,逐层向上地组合模块并测试。无须设计承接块。首先将低层模块分类为实现某种特定功能的模块组;编写一个驱动模块,用以协调测试用例的输入和输出,测试每一模块组;软件结构向上,将模块组合起来。

自顶向下的集成测试主要缺点:需要设计承接模块以及随之而带来的困难。 自底向上的集成测试主要缺点:只有在加上最后一个模块时,程序才作为一个实体而存在。

3、有效性测试(黑盒测试技术,目标是发现软件实现的功能与需求规格说明书不一致的错误) 进行有效性测试前需要进行配置复审

单元测试集中于单个模块的功能和结构检验 集成测试集中于模块组合的功能和软件结构检验 有效性测试验证软件需求的可追溯性 系统测试验证将软件融于更大系统中时整个系统的有效性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3