首页> 中国专利> 一种基于接口模型的操作系统标准符合性测试的充分性评估方法

一种基于接口模型的操作系统标准符合性测试的充分性评估方法

摘要

一种基于接口模型的操作系统标准符合性测试的充分性评估方法,涉及软件测试的充分性评估,所述方法适用于操作系统针对特定标准的符合性测试,可以度量测试用例设计对于标准接口的覆盖率程度,为测试用例的选择、改进及测试充分性评估提供依据。方法包括三个方面:计算机初始化,以建立接口的数据模型和功能模型,获得标准符合性测试用例集;测试充分性评估,计算接口输入参数、接口输入参数-输出参数组合、接口功能、接口功能组合、以及系统综合覆盖率;基于覆盖率的测试用例选择,设定标准符合性测试的覆盖率目标,从总体用例集中迭代选取测试用例,直至满足覆盖率目标。

著录项

  • 公开/公告号CN102945204A

    专利类型发明专利

  • 公开/公告日2013-02-27

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201210459123.2

  • 发明设计人 白晓颖;张瑶;

    申请日2012-11-14

  • 分类号G06F11/36(20060101);

  • 代理机构11246 北京众合诚成知识产权代理有限公司;

  • 代理人薄观玖

  • 地址 100084 北京市海淀区北京市100084-82信箱

  • 入库时间 2024-02-19 16:59:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-01-21

    授权

    授权

  • 2013-03-27

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20121114

    实质审查的生效

  • 2013-02-27

    公开

    公开

说明书

技术领域:

本发明涉及计算机软件领域,特别涉及基于模型的测试充分性评估。

背景技术:

操作系统的开发必须在遵循国际和工业标准的基础上进行,遵循标准 是操作系统互通、互联、互操作的基础。标准符合性是操作系统保证 其开放性、兼容性、以及对上层丰富应用的有效支持的基础和关键, 标准符合性测试就是测试所开发的软件其接口或功能模块是否符合特 定的软件标准或者规范,这个符合性不仅是指在形式上是一致的,还 指其在功能、数据控制、异常处理等方面也要符合标准规范。例如, ARINC 653作为机载操作系统标准,对应用程序编程接口进行了详细 定义,并定义了标准符合性测试的规范,明确说明了测试过程及测试 用例的设计要求。

软件测试是根据软件开发阶段的各种说明文档,设计测试用例,使用 手工或自动的方式,按照测试方案和流程,使用这些测试用例运行软 件系统,用以检验软件系统是否满足预期需求的过程。由于标准接口 数量大、接口之间依赖关系复杂、接口使用场景多样,标准符合性测 试面临组合爆炸的问题,无法做到穷尽测试。标准符合性测试设计的 关键之一就是寻找有效的测试集,力求尽可能地覆盖接口需求,并有 效发现缺陷,增强测试的可信度。

测试充分性评估是对软件测试集的一种度量,通常针对特定的软件特 征,采用测试覆盖率定量度量软件测试的充分程度,可以用如下公式 来表示:

根据软件测试的分类,测试充分性评估可以分为基于代码的测试充分 性评估和基于功能的测试充分性评估两大类。基于代码的充分性评估 适用于白盒测试中,通过在测试过程中观测程序的语句、分支、路径 等的执行情况,来评估测试覆盖的充分程度。基于功能的充分性评估 ,常用于黑盒测试中,以评估软件系统对于功能需求的覆盖程度。

标准符合性测试本质上为一种黑盒测试,以明确的应用程序接口描述 作为软件功能特性,其基本要求功能点覆盖就体现为对于各种接口参 数数据取值类型、参数数据组合、接口操作、操作组合各个层次上。 本发明给出一种基于接口模型的标准符合性测试充分性度量方法,主 要由两部分组成:(1)操作系统标准接口的结构化建模与描述;(2 )测试执行对于接口模型的覆盖程度的一种层次化的度量模型,进而 给出综合化评估方法。

标准符合性测试是操作系统测试的基本要求。测试充分性分析对测试 用例集设计以及优化具有重要指导意义。

发明内容

本发明采用基于模型的软件度量技术,给出一种接口功能的结构化建 模及层次化度量方法。方法针对目前广泛应用的操作系统软件的接口 标准符合性测试问题,要求目标操作系统及其测试用例集满足以下条 件:(1)目标操作系统具有明确的接口功能定义,是行业内普遍认同 的标准,是操作系统设计、开发与测试的主要依据;(2)测试用例集 中主要是针对操作系统标准接口的功能测试,且每个测试用例可追踪 至被测软件的功能特性,包括被测接口的参数数据、被测接口的功能 以及功能组合。

基于接口模型的操作系统标准符合性测试的充分性评估法,其特征在 于是在一台计算机中,针对一个已经通过标准符合性测试的操作系统 软件S依次按照以下步骤进行充分性评估的:

步骤(1) 计算机初始化

输入:根据所述操作系统软件S建立接口模型,其中包括:数据模型和 功能模型:

数据模型:包括数据池的每个数据分区内所包含的所有测试数据,

功能模型:各个接口的包括输入参数和输出参数在内的接口参数以及 对应的接口功能,

还包括:已经在所述操作系统软件S中通过标准符合性测试的测试用例 集合T。

步骤(2) 依次按以下步骤进行标准符合性测试的充分性评估。

步骤(2.1) 按以下公式计算接口输入参数的覆盖率:

其中,

●k为接口I的序号;

●为接口Ik的一组输入参数集合。

步骤(2.2)按下式计算接口Ik的输入参数-输出参数两者组合的覆盖 率:

其中,

●是接口Ik的所有输入参数-输出参数组合参数对集合;

●为接口Ik的一组输入参数;

●为接口Ik的一组输出参数。

步骤(2.3) 按下式计算特定接口的接口功能覆盖率:

Cov(T,Ik0)=γ1ΣpiPinIk0λiCov(T,pi)|PinIk0|+γ2ΣqjPin-outIk0βjCov(T,qj)|Pin-outIk0|

其中

●表示特定接口的输入参数集合中元素的个数;

●表示特定接口的输入参数-输入参数组合集合中元素的个数;

●是接口输入参数集合中的任意一个元素,i表示元素序列i=1,2,  …,,且

●是接口输入参数-输出参数组合参数对集合中的任意一个元素,j 表示元素序列j=1,2, …, ,且

●γ1,γ2,λi,和βj分别表示权值系数,其中,

a)λi是接口每一个输入参数pi的覆盖Cov(T,pi)的权重,表明在所有 接口输入参数中,pi对实现接口功能的重要程度,满足以下约束条件 :

Σi=1|PinIk0|λi=1

b)βj是接口每一个输入参数-输出参数组合qj的覆盖Cov(T, qj)的 权重,表明在所有接口输入参数-输出参数组合中,qj的重要程度,满 足以下约束条件:

Σj=1|Pin-outIk0|βj=1

c)γ1是接口输入参数覆盖率的权重,表明其相对于输入参数-输出参 数组合覆盖率,对标准符合性测试的充分性评估的重要程度;

d)γ2是接口输入参数-输出参数组合覆盖率的权重,表明其相对于输 入参数覆盖率,对标准符合性测试的充分性评估的重要程度;

e)γ1和γ2满足以下约束条件:

γ12=1

步骤(2.4) 按下式计算接口功能组合的覆盖率Cov(T,I*),表示针 对系统S的一组标准接口的合法的功能组合集合,

步骤(2.5)按下式计算系统综合覆盖率Cov(T,S):

Cov(T,S)=Γ1ΣIkIρkCov(T,Ik)|I|+Γ2ΣIl*I*ωlCov(T,Il*)|I*|,

其中

●I是系统S的所有接口的集合,|I|表示I中元素的个数,

●I*表示系统S的接口功能组合的集合,|I*|表示I*中元素的个数,

●I1∈I是接口集合I中的任意一个元素,k表示元素序列(k=1,2, … , |I|),Cov(T,Ik)由步骤2.3计算获得,

●是接口功能组合集合I*中的任意一个元素,l表示元素序列(l=1, 2, …, |I*|),且

●Γ1,Γ2,ρk,和ωl分别表示权值系数,其中,

a)ρk是系统S的接口Ik的覆盖率Cov(T,Ik)的权重,表明在所有接口中 ,Ik对实现系统功能的重要程度,满足以下约束条件:

Σk=1|I|ρk=1

b)ωl是系统S的接口组合的覆盖的权重,表明在所有功能组合中, 功能组合覆盖对于系统功能实现的重要程度,满足以下约束条件:

Σl=1|I*|ωl=1

c)Γ1是接口功能覆盖率的权重,表明其相对于功能组合覆盖率,对标 准符合性测试的充分性评估的重要程度;

d)Γ2是接口功能组合覆盖率的权重,表明其相对于接口功能覆盖率, 对标准符合性测试的充分性评估的重要程度;

e)Γ1和Γ2满足以下约束条件:

Γ12=1,

步骤(3) 基于覆盖率的测试集选择

依次按以下步骤根据测试覆盖率,从已有的测试用例集T中,选择测试 用例集合T′:

步骤(3.1)设定测试覆盖率目标

设定接口输入参数、接口输入参数-输出参数组合、接口功能、接口功 能组合、以及系统综合覆盖率指标,作为操作系统S标准符合性测试的 测试目标;

步骤(3.2)按照以下步骤,从测试用例集T中选择初始测试用例集合 T0,T′= T0,

初始用例集的选择可采用以下任意一种:

1)随机选择;或者

2)根据标准符合性测试的历史数据,选取一组覆盖率最高的测试用例 ;或者

3)针对重点关注的接口,选取该接口所对应的一组覆盖率最高的测试 用例,

步骤(3.3)按照上述步骤(2)计算测试用例集合T′的覆盖率,并判 定是否满足步骤(3.1)中所设定的测试覆盖率目标,如果满足,结束 退出;否则,选取新的测试用例集Tm补充到已有的测试用例集中,即 T′=T′+Tm,Tm可采用以下方式从测试用例集T中选择:

1)随机选择;或者

2)根据标准符合性测试的历史数据,选取一组覆盖率最高的测试用例 ;或者

针对覆盖率最低的接口,选取该接口所对应的一组覆盖率最高的测试 用例。

该方法可与传统的基于代码和功能点的充分性评估方法相结合。一方 面,与基于代码的充分性评估方法有效互补;另一方面,是基于需求 功能点的评估方法的一种可操作、可量化实施的技术,尤其适应于具 有明确接口标准规范的操作系统标准符合性测试。

附图说明

图1示出本发明方法的主要结构和步骤;

图2示出本发明方法中接口的内部模型表示结构;

图3示出本发明方法中基于覆盖率的测试用例选择的主要结构和步骤;

图4示出本发明方法中的主要步骤。

具体实施方式

如附图1所示,本发明主要根据接口标准,建立被测操作系统的接口模 型,针对标准符合性测试所执行的测试用例集,评估测试用例集对于 接口模型各个层次的覆盖率,充分性评估结果可用于为标准符合性测 试用例设计改进和优化提供指导。所述方法采取以下步骤进行:

步骤(1),计算机初始化

根据操作系统标准,建立软件功能接口的结构化描述。操作系统接口 标准是操作系统功能需求的主要体现,是功能测试的主要依据。通常 的操作系统标准如POSIX和ARINC,对数据类型、接口功能的语法和语 义、功能行为均给出明确的定义,以文本方式描述。建立接口模型将 文本描述的接口转化为计算机的内部表示,以计算机可理解的形式表 达和存储,便于计算机自动解析和处理。建立过程可采用人工方式或 是自动化方式。人工方式可借助于建模工具所提供模版,将标准规约 中所定义的内容,依据模版格式输入。自动化方式可借助于自然语言 处理技术,自动读入文本内容,通过识别关键字,抽取相关信息,构 建信息模型。模型存储可采用关系数据库或是XML数据库。关系数 据库为传统的数据管理方式。XML数据库可以更好地表达和查询数据之 间的关联关系。

接口模型的内部表示主要包括数据模型和功能模型两个方面。数据模 型主要包括数据类型描述、数据池、以及数据类型约束三个方面。数 据类型可分为简单数据类型、枚举类型、以及结构体数据类型,对应 于接口标准的数据类型定义。数据池是数据可能取值的集合,可根据 测试目标的不同分为多个数据分区,每一个分区代表一个数据取值的 等价类结合。根据数据类型的不同,数据类型约束可分为数值类型的 取值范围约束、字符串类型的长度范围约束、和枚举类型的合法值约 束三种约束。

功能模型的内部表示主要包括接口参数描述、接口功能行为描述、接 口功能约束描述三个方面。如附图2所示,一个功能接口可以包括若干 个接口参数,参数可分为输入参数和输出参数两种类型。输入参数为 软件功能执行传入数据,输出参数为执行结果的返回数据。每个接口 参数可以包括多个数据池,每个数据池可包括多个数据分区,每个数 据分区可包括多个测试数据取值实例。接口功能行为可采用状态机和 决策表两种方式描述。决策表通常用于描述或处理判断条件较多,各 条件又相互组合、有多种决策方案的情况。通过精确而简洁地描述复 杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。在 决策表中,这些条件称为条件属性,对应的执行动作称为决策属性。 一组条件属性连同其对应的决策属性称为决策表中的一个实例,又称 为一条规则。状态机是系统状态及状态之间的转移和动作等行为的数 学模型,可用于描述软件在外部输入激励下的响应和内部状态变化。 接口功能约束包括前置条件和后置条件。前置条件是对本功能执行之 前,系统需具备的状态或是需完成的操作的描述。后置条件是对本功 能执行之后,系统所达到的状态或是后续操作的描述。

标准符合性测试根据接口标准设计测试用例并测试被测操作系统软件 。测试用例设计可采用人工或是自动化方式。测试用例集可追踪至操 作系统的接口标准,即在测试用例及其所测试的接口功能之间建立有 效的关联关系。本发明主要关注记录已执行的测试用例集合,以评估 测试的充分程度。

步骤(2),标准符合性测试的充分性评估。

主要采用计算接口模型覆盖率的方法,评估标准符合性测试的充分性 ,以评价测试用例集对操作系统接口标准所规定的数据、功能以及应 用场景的测试充分程度。接口覆盖率评估主要包括以下五个层次:

步骤(2.1) 接口输入参数的覆盖率:即测试用例集的执行对于特定 接口输入参数的覆盖程度。给定已执行的测试用例集合T,给定某个特 定的软件接口Ik,假设该接口Ik包含一组输入参数,测试用例集合T 对于接口Ik的输入参数集的覆盖率计算如下:

步骤(2.2)接口输入参数-输出参数组合的覆盖率:即测试用例集的 执行对于特定接口输入参数-输出参数组合的覆盖程度。给定已执行的 测试用例集合T,给定某个特定的软件接口Ik,假设该接口Ik包含一组 输入参数和一组输出数据,存在一组输入输出的合法组合集合,即 对于任何元素,软件将在输入pi的情况下,产生输入结果po。则试用 例集合T对于接口Ik的输入参数-输出参数组合集合的覆盖率计算如 下:

步骤(2.3)接口功能的覆盖率:即测试用例集的执行对于特定接口功 能的覆盖程度。接口功能主要体现在对于给定的输入,产生输出结果 。因此,接口功能覆盖率根据接口输入参数、以及输入输出组合的覆 盖率计算获得。给定已执行的测试用例集合T,给定某个特定的软件接 口,假设该接口包含一组输入参数和输入输出的合法组合集合, 则试用例集合T对于接口的功能覆盖率Cov(T,Ik)计算如下:

Cov(T,Ik0)=γ1ΣpiPinIk0λiCov(T,pi)|PinIk0|+γ2ΣqjPin-outIk0βjCov(T,qj)|Pin-outIk0|

其中,

●和分别表示输入参数集合和输入参数-输入参数组合集合中元素 的个数。

●是接口输入参数集合中的任意元素,且

●是接口输入参数-输出参数组合集合中的任意元素,且

●γ1,γ2,λi,和βj分别表述权值系数,且满足以下条件

γ12=1

Σi=1|PinIk0|λi=1

Σj=1|Pin-outIk0|βj=1

步骤(2.4)接口功能组合的覆盖率:即测试用例集的执行对于特定一 组功能组合的覆盖程度。给定已执行的测试用例集合T,给定合法的接 口功能组合集合I*,则试用例集合T对于接口功能组合集合I*的覆盖率 Cov(T,I*)计算如下:

合法的接口功能组合是指操作系统的合理的应用场景,每个场景由执 行一些列的接口功能实现。

步骤(2.5)系统综合覆盖率:评估模型为上述覆盖率指标的函数。即 给定已执行的测试用例集合T,给定操作系统软件S,假定S需满足一组 接口标准{Ik,k=1,2,….n},则测试用例集合T对于操作系统软件S标准 符合性测试的测试充分性计算如下:

Cov(T,S)=Γ1ΣIkIρkCov(T,Ik)|I|+Γ2ΣIl*I*ωlCov(T,Il*)|I*|

其中,

●|I|和|I*|分别表示接口集合I和接口功能组合集合I*中元素的个数 ;

●Ik∈I是接口集合I中的任意一个元素,是接口功能组合集合I*中的 任意一个元素;

●Γ1,Γ2,ρk,和ωl分别表示权值系数,且满足

Σk=1|I|ρk=1

Σl=1|I*|ωl=1

Γ12=1

步骤(3),基于覆盖率的测试集选择

根据测试充分性评估结果,可以有针对性的从以下几个方面改进操作 系统标准符合性测试用例集的设计,以提高对特定数据、功能和功能 组合的覆盖率。

1)设计新的测试用例,

2)完善已有的测试用例。

3)剔除重复冗余的测试用例。

4)合并相似的测试用例。

在测试资源、时间有限,不能完整执行测试用例集的情况下,测试通 常选择执行一个有效的测试用例子集。测试用例子集的选择可依据测 试用例的覆盖率评估,以最大化覆盖率为优化目标,迭代选取测试用 例。参看附图3,基于覆盖率分析的回归测试过程采取以下步骤进行:

步骤(3.1):设定回归测试覆盖率目标

设定接口输入参数、接口输入参数-输出参数组合、接口功能、接口功 能组合、以及系统综合覆盖率指标,作为操作系统S标准符合性测试的 测试目标。

步骤(3.2):选取初始测试用例集合

初始测试用例集的选择可采用以下几种方式:

1)随机选择

2)根据标准符合性测试的历史数据,选取一个或是一组覆盖率较高的 测试用例。

3)针对重点关注的接口,选取该接口所对应的一个或是一组测试用例 。

步骤(3.3)按照上述步骤(2)计算测试用例集合T′的覆盖率,并判 定是否满足步骤(3.1)中所设定的测试覆盖率目标,如果满足,结束 退出;否则,选取新的测试用例集Tm补充到已有的测试用例集中,即 T′=T′+Tm,Tm可采用以下方式从测试用例集T中选择:

3)随机选择;或者

4)根据标准符合性测试的历史数据,选取一组覆盖率最高的测试用例 ;或者

5)针对覆盖率最低的接口,选取该接口所对应的一组覆盖率最高的测 试用例。

根据本发明的测试充分性评估方法,能够对通用操作系统标准符合性 测试进行评估,以控制软件测试的质量,为改进测试过程、提高测试 效率提供支持,解决操作系统标准符合性评测测试结果的可信性问题 。

为使本发明的目的、技术方案和优点更加清楚,下面将以操作系统AR INC 653标准符合性测试为实例对本发明的实施方式作进一步地详细 说明。

ARINC 653在航空计算机操作系统和应用软件之间定义了一个通用的 APEX(Application/Executive)接口。该接口为应用程序提供了一系 列的服务,包括分区管理、进程管理、时间管理、存储管理、区内通 信、区间通信和健康监控等,通过这些接口,应用软件可以得到实时 安全的各种功能服务,也可以对各种服务的属性加以控制,如任务调 度、通信和内部状态信息等。在ARINC 653标准中,一个典型的接口 描述如下所示:

在该实例中,定义了接口SET_PRIORITY的主要功能,该接口有两个输 入参数:PROCESS_ID,类型为PROCESS_ID_TYPE;PRIORITY,类型为P RIORITY_TYPE。有1个输出参数,即返回值:RETURN_CODE,类型为RE TURN_CODE_TYPE。接口功能中定义了输入、输入之间的对应关系。

根据步骤1,上述接口描述转化成接口的数据和功能模型描述,并设计 了一组测试用例。下表给出部分测试用例实例。

根据步骤2,分析测试用例集对于ARINC 653标准接口集合的覆盖率。 例如,上述测试集合{SET_PRIORITY_1, SET_PRIORITY_2, SET_PR IORITY_3, SET_PRIORITY_4}覆盖了接口SET_PRIORITY的两个输入参 数,四种输入输出组合,以及接口功能组合的两个应用场景:CREAT_ PROCESS→GET_PROCESS_ID→SET_PRIORITY和STOP→SET_ PRIORITY。 综合分析所有测试用例对所有接口的测试结果,可评价测试用例集的 综合覆 盖率。

根据步骤3,设定接口SET_PRIORITY的输入参数测试覆盖率目标是100 %。任意选择初始测试用例集T0={SET_PRIORITY_1}。有前面初始化可 知,该接口有两个输入参数,在此例子中,输入参数PROCESS_ID有三 个分区,分别为合法取值分区、此ID指示的进程不存在、此ID指示的 进程在休眠状态;输入参数PRIORITY有两个分区,分别是合法取值、 非法取值。由于SET_PRIORITY_1仅覆盖了参数PROCESS_ID的一种数据 分区(此ID指示的进程不存在)和PRIORITY一种分区(合法取值), 得到T0 的输入参数覆盖率为40%。继续补充测试用例集,得到T’={ SET_PRIORITY_1, SET_PRIORITY_2, SET_PRIORITY_3},可达到输 入参数100%测试目标。

以上实施方式仅用于说明本发明,而非对本发明的限制。相关技术领 域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以 做出各种变化和变形。因此,所有等同的技术方案也属于本发明的范 畴,本发明的专利保护范围应由权利要求限定。

本发明具有如下优点:

1)可客观地定义标准符合性,为操作系统软件的开发和测试提供依据 。传统测试方法缺乏对标准符合性测试的范围和程度进行有效的定义 ,标准多为定性地描述,标准符合性多依赖于开发人员对于标准的主 观理解,标准符合性测试设计依赖于测试人员的经验和技能。本发明 中通过建立接口模型,明确了标准符合性的内涵,为标准符合性测试 提供了客观的依据。

2)可定量评估测试质量,以促进操作系统软件的测试改进。本发明提 出了多层次的度量方法,可从多个角度刻画测试的充分程度,有助于 分析测试的深度、广度和强度。测试深度是指所测试所覆盖的被测软 件的颗粒度,例如数据分区取值、数据组合、独立功能和功能组合。 测试广度是指测试所覆盖的接口标准的范围,例如接口的分类和数量 。测试强度是指测试用例的数量和针对不同软件特性的分布。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号