一种基于功能块图测试模型自动生成测试用例的方法

文档序号:9274638阅读:1872来源:国知局
一种基于功能块图测试模型自动生成测试用例的方法
【技术领域】
[0001] 本发明涉及嵌入式软件开发的软件测试技术,具体涉及一种基于功能块图测试模 型自动生成测试用例的方法。
【背景技术】
[0002] 软件测试是软件质量的一个重要保证,在软件测试领域,测试用例和测试脚本的 编写一直是软件测试的一项重要工作,测试用例和测试脚本的质量对于测试的质量和被测 软件的质量有重大的影响,针对同样的需求,不同水平的测试人员编写的测试用例和测试 脚本质量相差很大,而且人工编写测试用例和测试脚本工作量很大,效率较低。
[0003] 基于模型的测试(Model based testing,简称MBT)属于软件测试领域的一种测 试方法,它通过建立测试场景或测试模型(以下简称测试模型),自动生成测试用例和测试 代码。它是软件测试的一种新兴技术,与传统测试技术相比,MBT更直观、更容易理解,能够 自动生成测试数据,测试覆盖率高,测试用例的逻辑路径能方便的展示出来,方便校核需求 与代码,省去大量的重复代码的编写工作,测试用例的代码由测试模型生成,能够提升测试 效率,而且MBT模型形象直观、更容易理解,它通过算法自动生成测试用例与测试脚本,能 够提高测试设计与测试用例的质量。目前基于模型的测试研宄主要有因果图、判定表、正 交表、FSM有限状态机、UML统一建模语言模型等建模方法,但是因果图、正交表测试建模方 法,无法处理时序问题和状态转移问题;基于FSM有限状态机的测试建模存在模型爆炸的 缺点;UML适用于面向对象的软件开发的测试建模,不适用于面向过程的软件开发的测试 建模。
[0004] 如图1所示,基于模型的测试的一般步骤为:分析软件的需求规格、根据需求建 立模型、模型分析与检查、根据模型生成测试用例以及根据模型或测试用例生成测试脚本。 目前,国内外对于MBT测试技术的都进行了大量的研宄,形成了一些MBT的测试方法,目 前典型的MBT测试方法有以下几类:基于因果图模型的测试方法、基于判定表(Decision Tables)模型的测试方法、基于正交表模型的测试方法、基于FSM (Finite-state machine) 有限状态机模型的测试建模方法、基于UML (Unified Modeling Language)统一建模语言的 测试方法模型。
[0005] 因果图(cause effect graphics)是一种形式化语言,是一种组合逻辑网络图。因 果图把输入条件视为原因,把输出或程序状态的改变视为结果,将黑盒看成是从因到果的 网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。基于 因果图模型的测试方法的基本原理是通过因果图,把用自然语言描述的功能说明转换为判 定表,然后为判定表的每一列设计一个测试用例。
[0006] 因果图模型输入输出主要包含以下两种关系:原因与结果之间的关系、输入及输 出条件的关系。如图2所示,原因与结果之间的关系包括恒等、非、或和与四种关系。如图 3所示,输入及输出条件的关系包括异、或、唯一、要求和强制五种关系。
[0007] 如图4所示,现有技术的基于因果图模型的测试方法一般分为5个步骤:(1)分析 需求规格,提取原因和结果。分析软件规格说明描述中,哪些是原因(即输入条件或输入条 件的等级类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)建立 因果图模型。分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应 的关系,根据这些关系,画出因果图。(3)建立因果图中输入、输出的约束关系。由于语法或 环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊 情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为判定表。(5)根 据判定表生成测试用例。把判定表的每一列拿出来作为依据,自动生成测试用例。
[0008] 基于因果图建模的测试方法逻辑性强,对于需求的表达清晰明了、易于理解,它不 仅仅考虑输入之间的逻辑组合,并且考虑了输入之间的约束关系,可以通过约束关系,避免 输入组合的爆炸,降低测试用例数量,但是基于因果图模型的测试方法存在以下缺点:(1)、 基于因果图模型的测试方法对于时序关系不敏感,当需求中涉及时序(延时、脉冲)关系 时,因果图模型无法清晰地表述。(2)、基于因果图模型的测试对于边界不敏感,当出现比 较逻辑(大于、等于、大于等于、小于、小于等于)时,因果图建模无法提取相应的边界,只能 人工去提取边界。(3)、基于因果图模型的测试方法对于运算逻辑不敏感,当出现运算逻辑 (加、减、乘、除、求模、取余)时,因果图模型无法对这些运算逻辑进行识别,也无法对运算 逻辑进行测试分解。(4)、基于因果图模型的测试方法无法识别软件的状态和状态之间的转 移关系,因此只能生成测试用例,而无法生成可执行的自动化测试脚本。

【发明内容】

[0009] 本发明要解决的技术问题是:针对现有技术的上述问题,提供一种对时序关系敏 感、对边界敏感、对运算逻辑敏感、能够识别软件的状态和状态之间的转移关系的基于功能 块图测试模型自动生成测试用例的方法。
[0010] 为了解决上述技术问题,本发明采用的技术方案为:
[0011] 一种基于功能块图测试模型自动生成测试用例的方法,步骤包括:
[0012] 1)提取嵌入式软件的需求规格中的输入与输出、逻辑关系和约束关系,根据软件 的需求规格中的输入输出、逻辑关系和约束关系建立基于类功能块图语言的功能块图测试 丰旲型;
[0013] 2)建立用于将功能块图测试模型转换为数据组合表的转换规则;
[0014] 3)从功能块图测试模型中提取基础数据,然后在基础数据的基础上根据所述转换 规则进行数据衍生,从而将功能块图测试模型转换为数据组合表;
[0015] 4)根据数据组合表生成测试用例。
[0016] 优选地,所述步骤1)的详细步骤如下:
[0017] 1. 1)提取嵌入式软件的需求规格中的输入与输出;
[0018] 1. 2)定义输入与输出的数据类型、取值范围、默认测试数据;
[0019] 1. 3)分析所有输入与输出之间的逻辑关系,将输入与输出之间的逻辑关系采用模 型元素描述出来,画出功能块图测试模型图;
[0020] 1. 4)分析所有输入之间的约束关系,并在功能块图测试模型图上表示出所述约束 关系。
[0021]优选地,所述步骤1. 1)中嵌入式软件的需求规格中的输入需要满足的要求包括: 输入的数据类型确定、输入的数据取值范围确定、输入的数据的精度确定、输入的数据要具 备用于生成测试用例时优先取值的默认测试取值。
[0022] 优选地,所述步骤1. 3)中的模型元素包括逻辑关系、逻辑比较、运算逻辑、约束关 系、时序关系、触发器或累加器共六种类型的模型元素,所述逻辑关系包括与、或、非、异或 以及同或,所述逻辑比较包括恒等、不等、大于、大于等于、小于以及小于等于,所述运算逻 辑包括加、减、乘、除、求余、取模、最大值以及最小值,所述约束关系包括E约束、R约束、M约 束、〇约束以及I约束,所述时序关系包括上升沿延时、下降沿延时以及脉冲,所述触发器或 累加器包括RS触发器、SR触发器、递增计数器以及递减计数器;所述模型元素在满足可编 程逻辑控制器标准IEC61131的基础上还包含模型元素的测试属性;所述模型元素的基本 属性在满足可编程逻辑控制器标准IEC61131的基础上,还包括模型元素的名称、输入或输 出数量、输入或输出数据类型,输入与输出之间的逻辑关系;所述模型元素的测试属性包含 输入与输入之间的测试组合关系,输入与输出之间的测试分解关系。
[0023] 优选地,所述步骤2)的详细步骤包括:
[0024] 2. 1)针对功能块图测试模型采用以输出为导向、倒序进行层次划分,使得同一个 模型元素的输入属于同一个层次的输入,从而建立用于将功能块图测试模型转换为数据组 合表的分层规则;
[0025] 2. 2)针对功能块图测试模型中的每一个模型元素,建立用于将功能块图测试模型 转换为数据组合表时,用于使同一个模型元素的输入实现软件测试的最优覆盖的测试数据 组合覆盖规则及优先规则;
[0026] 2. 3)建立用于将功能块图测试模型转换为数据组合表的约束规则,最终得到由分 层规则、测试数据组合覆盖规则及优先规则、约束规则构成的转换规则。
[0027] 优选地,所述步骤3)的详细步骤包括:
[0028] 3. 1)以功能块图测试模型的直接输出为导向,根据用于将功能块图测试模型转换 为数据组合表的分层规则及优先规则,逆向推导功能块图测试模型的原始数据,建立数据 组合表的第一组数据组合;
[0029] 3. 2)将第一组数据组合作为基础数据组合,根据用于将功能块图测试模
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1