background image

  

2.2 软件测试用例的本体表示与实现 

  本体为领域知识提供框架和基础,它对于领域知识的获取、存储和表示有着重要的作用。
 
  由于软件测试用例为软件测试的核心,所以本文着重从测试用例的角度来构建测试领
域本体模型,建立软件测试用例领域本体的过程,就是利用本体思想与

OWL 语言组织和

描述测试用例信息的过程。首先,利用本体建立测试用例知识概念模型,比较常用的方法有
三种:自顶向下方法、自底向上方法、核心扩展方法【

4】。该文采用的是核心扩展方法来构建

本体概念模型,首先确定的核心概念为

“测试用例”。显然,核心概念完全满足无二义性并且

覆盖整个测试用例领域知识的要求。

 

  在确定了核心概念后,就可以对这个具有本体雏形的核心概念进行扩展,测试用例的
六元组分别是:测试目标、用例描述、测试环境、输入数据、测试操作、预期结果。建立测试用
例本体概念模型如图

1 所示: 

  在用例本体模型图中,椭圆代表本体中的概念或类,概念之间的箭头表示父类与子类
的继承关系,例如

Author 是 Description 的子类,Hardware 是 CPU 的父类,TestCase 是所

以类的父类。总之,在父类与子类的继承时需注意,首先应该确保类与类之间具有正确的继
承关系,还需要注意躲继承的情况、类之间的范围限制、类或实例的取舍问题以及不相交的
子类。

 

  

3 用例库测试用例的检索与排序 

  用例库中的测试用例是以本体的形式存在的,当对软件进行测试时需根据软件测试需
求,从用例库中检索出相应的测试用例。在进行测试用例的检索时,该文采用本体概念的语
义相似度间接得到测试用例的匹配度,并根据其匹配度进行测试用例排序,以此来实现逻
辑推理的智能检索。

   本文中采用的是混合式语义相似度计算(Hybrid Measures),即

把概念的语义距离、概念内容和概念属性都考虑进去【

5】。对于直接检索得到的测试用例设为

TC,其和测试人员检索请求 Q 之间的匹配度 M 计算公式如下: 
  当属性为字符串类型时,

dk(a,b)值由 Levenshtein 提出的一种计算字符串差异方法

计算得到,编辑距离指的是从一个以字符为单位的字符串转换成另外一个字符串所需的最
小编辑操作代价数。编辑操作有

“删除”、“插入”、“替换”三种【6】。例如字符串“black-box 

testing”和“black-box_testing”之间的编辑距离,即 ed(a,b)为 1,因此,dk(a,b)可以
根据编辑距离来计算。

 

  

4 实例验证 

  该系统是在参照了相关领域的已有研究的基础上提出的,其中包含了知识管理过程中
的知识产生、分类、积累、共享、重用等基本流程。

 

  

4.1 系统体系结构 

  本系统采用了

C/S 架构,测试用例库存放于服务器端,通过运行在服务器上的服务器

端程序与数个客户端交互,实现了群组协同工作。数据库采用

Oracle 9。服务器端使用 EJB

实现,容器为

JBoss。客户端采用了模型-视图-控制器(MVC)这一高效的软件架构模式

11】,开发工具为 Visual Studio 2005,网络通信部分采用了 WinSocket 接口。整个测试用例

管理系统的体系结构如图

2 所示[7]。 

  

4.2 系统工作流程 

  系统的工作流程如图

3 所示。 

  首先,将编写好的测试用例添加到交流库中,各用户可以直接对交流库中的数据进行
增删改查等操作。交流库中筛选出质量较高的测试用例提交至用例库。现有的测试用例也可
经过评估后直接提交至用例库。其次,用户可对用例库中的测试用例进行分类与评级,从而
成为后续检索操作的条件,并且测试用例的分类与检索都是基于本体的,这些都将成为提