软件测试信息领域本体构建研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试信息领域本体构建研究

摘要:为了对软件测试领域的信息进行有效管理,对软件测试领域进行了深入分析;引入本体技术并总结了领域本体的构建方法,探索了测试信息领域本体构建方法;为软件测试建立测试信息领域本体,实现信息的有效表示、存储和共享。

关键词:软件测试;领域本体;本体构建;信息共享

0引言

软件测试是保障软件质量的有效手段,其过程实质上是测试知识共享和重用的过程。因此,对软件测试信息的有效收集、表示和存储,不仅能为重复测试提供方便,也可以为评估软件质量提供参考。近年来,作为知识表示工具的本体论(Ontology)由于其具备良好的概念层次结构和逻辑推理能力,使其在信息检索等多个领域得到了广泛应用。因此,为软件测试信息建立领域本体,可以为信息的表示、存储和共享提供知识管理框架,也可以为软件的复用者提供参考。

1本体和构建方法

本体论源于哲学上的概念,广泛认可的定义是Studer等人在前人基础上提出:本体是共享概念模型、明确形式化的规范说明[1,2],包含概念模型、明确性、形式化和共享性4个含义[3]。本体的建模元语有类(classes 或concepts)、关系(retations)、函数(functions)、公理(axioms)和实例(instance)[4]。概念并非单纯意义上的概念,可以是任务、功能、

行为、策略、推理过程等。关系表示概念之间的关联关系,可形式化表示为R:C1×C2×…×Cn表示概念类C1,C2,…,Cn之间存在n元关系R。函数是一种特殊的关系。公理用于表示永真式。实例是某概念类的基本元素,即某概念类所指的具体对象。

为了便于对本体的有效分类,Guarino提出以详细程度、领域依赖程度作为本体划分的基础[4]。根据领域依赖度,可划分为顶级、领域、任务和应用本体4类。其中领域本体(Domain Ontology)描述的是特定领域(如测试、图书、航空航天)中概念及概念之间的关系。

建立本体的依据标准最具影响力的是Gruber在1995年提出的5条规则[5]:明确性和客观性、安全性、一致性、可扩展性和最小本体承诺。领域本体概念提出以来,目前比较有名的构建方法有:IDEF5方法、Uschold和King的“骨架法”、Gruninger和Fox 的“评估法”(又称TOVE)、Bernaras方法和METHONTOLOGY方法等。本文通过参考Gruber提出的本体构造原则以及斯坦福大学的Natalya F. Noy 和Deborah L. McGuinness提出的建议[11],领域本体构建过程如下:①确定本体的领域与范围;

②考虑对已存在的本体的重用;③列举领域中重要的术语、概念;④定义类和类层次;⑤定义类的属性;⑥创建实例;⑦本体的检验评价。

目前,本体的构建工具之一Protégé是可扩展、可跨平台的和能支持概念层次、属性及原则和约束定义的,为本体的一致性检测和组织概念提供自动分类。利用Protégé建立的本体知识库能很方便地与

外界系统实现知识共享和互操作。另外,Protégé能扩展OWL插件成为当下优秀的OWL本体构造工具,其中OWL (Web Ontology Language)是W3C[6]最新推荐的Ontology 描述语言。目前,Protégé已有很多的版本,本文中用到的是Protégé3.1.1[7],带有Protégé-OWL插件和OWL Wizards插件。它适合用于构造一个OWL本体,同时结合推理机Racer[6]能够对构建的本体进行推理。

2基于SWEBOK的软件测试知识域

1983年IEEE指出软件测试的定义是[8]:“使用手动或者自动的手段执行或测试特定系统的过程,测试目的是验证系统是否满足预期的需求,或者验证预期结果和实际结果间的差别。

G.J.Maryer则定义软件测试是为了发现错误而运行的程序,目的是为了查找程序的错误,而非证明程序的正确性[9]。软件工程知识体系(Software Engineering Body of Knowledge,SWEBOK)把整个体系分解为10个知识域(Knowledge Area)[10]。其中,软件测试知识域包括5个子域[11],如图1所示。

由图1可以看出软件测试的5个子域依次是:软件测试基础、测试级别、测试技术、测试相关的度量和测试过程。

通过对测试领域分析,可知测试信息主要包括:①测试对象的信息;②伴随着软件测试产生的测试计划、测试用例、缺陷报告以及其它相关文档信息;③测试过程运用的测试技术、方法、经验等相关知识。

3STIDO构建与实现

3.1STIDO核心概念确定

建立软件测试信息领域本体(Software Testing Information Domain Ontology,STIDO)的过程,就是利用本体思想与OWL语言组织和描述“软件测试信息”的过程。首先,利用本体建立软件测试领域知识概念模型,有3种常用方法[14]:自顶向下(top-down)方法、自底向上(bottom-up)方法和核心扩展(middle-out)方法。本文采用核心扩展的方法建立本体概念模型,首先需要确定核心概念集,包括:“测试对象”、“测试用例”、“测试计划”“测试设计”、“测试报告”、“测试方法”、“测试人员”等。其中,核心概念集合作为概念模型的顶级概念集,必须满足没有二义性并且能覆盖整个测试领域知识的要求。3.2定义类和类的层次结构

确立核心概念集后,对这组具有本体雏形的核心概念进行扩展,建立本体概念模型如图2所示。

这个过程是一个自顶向下的过程,即根据事先定义好的上一层抽象父类,分别逐步细化说明其下一级子类。在此过程有两个问题需要考虑和解决:①概念间关系的选择和层次结构组织;②概念层次结构可用性和表达精确性的平衡。

在本体中,类是共有某些属性而属于同组的个体集合。通常将每个知识点设为一个单独类,根据知识层次来规定上层知识点作为父类,相反下层知识点作为子类。最高层的类表示最抽象的实体概念,每个子类继承了父类的抽象特征,是比其父类更具体、范围更小的实

相关文档
最新文档