本系统基于J2EE开放式架构,是一个面向软件测试过程的架构弹性的知识管理平台。系统依循知识生命周期管理,利用软件测试组织中的知识文档,有效帮助企业存储、管理、搜寻、分享各种知识,并通过组织中的知识地图,有效地评估员工的知识程度,使知识地图成为知识型员工的地位象征,并通过统计工具对拥有知识的员工进行肯定,从而促进知识共享的企业文化。
2.2系统工作流程
系统的工作流程主要包括以下几个方面,如图2所示。
(1)首先对本子系统进行初始化,在本系统预定义的基础上,允许用户对软件测试知识分类、知识程度、组织职位定义、项目规模进行自定义。
(2)在交流库中添加文档,用户可以直接编写文档提交交流库,或者在交流库中提出问题,交流库是整个系统的知识文档来源。交流库中筛选出的技术含量较高文档,由知识分析员进行知识分类后,提交知识库。
(3)用户可以自行对知识库中的知识文档进行评估,同时根据知识分析员对文档的评定,以及作者的知识程度、文档的链接程度等加权实现对文档的评定。
(4)知识分析员可以根据组织讨论的结果直接设定组织成员的知识等级,也可以通过编辑组织成员的项目经历,来自动设置成员的知识等级,或者通过成员在组织中发表的知识文档来自动设置成员的知识等级。
(5)知识检索,主要包括知识文档检索和专家检索,通过知识文档元数据可以任意检索知识文档,当用户无法找到需要的知识文档,可以通过专家检索来告诉用户组织中能够解决问题的人。
3几个关键技术的研究与应用
3.1基于本体的软件测试领域知识表示方法
本体(ontology)起源于哲学,是关于存在及其本质和规律的学说。在近一二十年,本体被计算机及建模领域所采用,用于知识表示、知识共享和重用。本体论是对概念化对象的明确表示和描述,是对客观世界存在的现实系统化的描述。从本质上讲,本体是一个或几个领域的概念以及反映这些概念的关系的集合,关系反映了概念的约束和联系,而关系本身也是概念,关系之间也可能构成新的关系。
我们以本体来对软件测试领域知识进行表示,描述领域中相关的概念、属性,及其关系。这些本体概念、概念之间的关系定义在文档、参考文献、项目、人员、知识程度共5类本体中。根据以上属性,软件测试领域知识本体如图3所示。
3.2软件测试领域知识管理模型的提出
在针对软件测试过程的知识管理中,需要实现积极、主动的知识传递,建立起组织级的人员之间沟通和交流的渠道,根据软件测试活动中的知识需求,及时地实现相关知识的传递,通过有效的知识传播来改善和提高知识的重用效果。由于组织所需要的知识处于动态变化中,因而需要通过一个有效的基础设施,来满足以上功能需求。
根据以上分析,我们提出了一个面向软件测试过程的知识管理模型,如图4所示。本模型的要素是“测试组织人员”、“测试组织知识资产”、“测试组织交流场所”。基本思想是在软件测试过程中,建立一个交流场所,记录成员的提出的问题和问题解决过程,以及各种文档。
3.3软件测试领域知识地图的构建方法
知识地图,或称知识分布图(又称作知识黄页簿)是知识的库存目录。知识地图所显示的知识来源,可能是部门名称、小组名称、专家名字、相关人名字、文件名称、参考书目、事件代号、专利号码、或知识库索引等,但却不包含知识的内容本身,它是指南和向导,用以节省员工追踪知识来源的时间。
一个优秀的软件测试知识管理平台软件还应当能够提供强大的软件测试知识分类的能力。根据工程实践经验及SWEBOK分类方法,我们对软件测试领域增加了5大知识域:开发语言、数据库、操作系统、软件测试工具、测试项目相关知识。我们的知识地图中,每一种能力都有5级知识程度:了解、熟悉、熟练、精通、专家级。每一级的程度定义都有描述,务求清晰及易于评价,并避免主观的误差。每个员工的实际能力也依此标准衡量,评估过程应由员工、小组、经理及知识分析员互动完成。
3.4基于本体的知识文档智能检索和排序方法
本体在知识检索子系统中主要扮演知识库的角色,即首先对软件测试领域的概念分类、建立概念之间关系约束的描述,然后以此为基础构建详细的软件测试领域知识库,主要包括软件测试领域的具体概念、概念之间的属性、概念之间的关系以及实例等知识。在知识检索时,根据用户请求的关键词来查找相应的概念或属性,并以此为出发点来检索某条本体信息是否与这些概念或属性相关,从而实现支持逻辑推理的智能检索。
在知识文档检索子系统检索出结果后,必须首先研究检索出来的文档应该按照什么样的顺序进行排列。影响排序的因素有很多,根据研究,我们认为有5类因素是影响排序结果的关键:用户对知识文档的评价、知识分析员对文档的评价、作者的知识程度、文档的链接数,以及文档的打开次数。这五类因素的权值是按次序递减的,可利用递减加权公式来计算各因素的权值。下面是递减加权公式:
知识文档的重要性按下公式来进行计算:
知识文档的重要性=P1×用户对知识文档的评价+P2×知识分析员对文档的评价+P3×作者的知识程度+P4×文档的链接数+P5×文档的打开次数。
通过计算出来的知识文档重要性结果,然后对所有文档按降序排列,就可以将最有价值的知识文档排在前列。