学习设计规范一致性测试模型及工具研究
2009-03-10王巧刘清堂
王 巧 刘清堂
摘 要:随着网络教育的发展,网络教育规模日益扩大,实现资源的可重用性以及系统的互操作性成为网络教育发展面临的主要问题。网络教育技术标准化是解决该问题的根本措施,但是规范或标准大多是用文字表述的,具有二义性,因此有必要对标准或规范的实现进行一致性测试。本文从学习设计规范出发,探讨了一致性测试的模型、方法及其过程,最后介绍了基于上述模型所开发的学习设计规范一致性测试系统。实验证明,该测试系统能够很好地完成学习设计规范一致性测试的要求,并且能够大大提高资源的可重用性及系统的互操作性。
关键词:一致性测试 学习设计 学习设计规范一致性测试
中图分类号:G434 文献标识码:A 文章编号:1673-8454(2009)01-0052-04
一、引言
随着网络教育的发展,网络教育规模日益扩大,实现资源的可重用性以及系统的互操作性成为网络教育发展面临的主要问题。虽然许多教育技术专家已经开始关注如何实现资源的共享、跨平台使用,并提出了大量的规范标准,如学习对象元数据规范、内容包装规范、测试互操作规范等,但是这些研究过分地强调学习内容的可重用性,而忽视了学习过程的设计。
2003年,IMS提出了学习设计(LD)规范,它是对学习单元设计过程的描述,支持学习过程的多种学习策略和教学方法的使用,提供多角色的学习过程,是一种强调学习活动设计的规范。它的目标是提供一种能够用正式的方式描述“教—学”过程中元素的框架。具体来说,学习设计规范应符合以下要求:完整性、教学的灵活性、个性化、形式化、重用性、互操作性及兼容性等。[1]
但是规范或标准本身并不能满足互操作性的要求,因为规范或标准文本基本上是使用自然语言描述的,存在着很大的二义性和模糊性,表现为叙述过于简单或复杂难以理解、例外处理没有定义以及标准本身存在矛盾或错误等,实现者对于规范或标准的不同理解会导致不同的标准实现,从而导致其产品不同程度地与标准的不一致。[2]目前,关于学习设计规范的研究还尚未成熟,内容过于复杂,不利于课程设计者对规范的理解;另外对于一些基于学习设计规范研发的工具,虽然使用相对方便,但是还存在着一些问题。例如,Reload学习设计编辑器,它需要用户具备一定的技术知识背景。因此,有必要对学习设计规范的实现进行一致性测试。然而,如何进行学习设计规范一致性测试尚待研究。[3]
下文将在学习设计规范的基础上,深入探讨一致性测试的模型、方法及其工具实现。
二、学习设计概念模型
1.学习设计概念模型
学习设计概念模型,如图1所示,定义了学习设计规范中的基本概念和各种关系,体现了学习设计规范的核心概念和基本思想。学习设计规范提倡按照一定的方法从活动中学习。无论在何种教学模式中,每个人都会承担一定的角色(学习者或者教师),然后根据各自的角色在环境中进行学习活动或支持活动,同时生成活动的结果。因此在学习设计中包含了许多元素,如角色、方法、活动、环境等。为了促进规范的产生和相继地执行,学习设计的实施又划分为三个层次:A层、B层和C层,其复杂程度依次增高。A 层中包含支持教学多样性的核心元素, 主要有方法、角色、活动、环境等;B层包含了A层的全部要素, 并增加了“属性”和“条件”两个元素;C层包含了B层的全部要素,并增加了“通知”元素,它是由学习结果触发的。[4]
2.学习设计规范与其它规范的关系
(1)学习设计规范与内容包装规范的关系
学习设计规范综合了其他规范,如内容包装规范、学习对象元数据规范等。学习设计的主要用途是通过一个内容包来包装学习设计以模型化学习单元。一个内容包当且仅当包的内容清单的组织部分中包含一个有效的学习设计元素时才被称为“学习单元”。一个学习单元=内容包+学习设计。技术上, 通过把学习设计元素包含在一个内容包的清单中来实现。如图2展示了如何将学习设计整合到内容包装模型里。[1]
(2)学习设计规范与简单序列化规范的关系
学习设计规范与简单序列化规范之间既有相同点,又有不同点。二者的相同之处体现在:提供序列化机制;被整合在内容包装模型里;主要是针对学习活动进行设计。
学习设计规范和简单序列化规范的主要区别如表1所示。
三、一致性测试模型研究
一致性测试是验证标准的实现与相应标准要求符合程度的符合性测试,包括语法和语义上的一致性测试。[5]
1.一致性测试模型
学习设计规范一致性测试是对包含学习设计信息的文件实例(即XML文档)进行一致性测试,然后根据测试的结果,给出测试报告,揭示被测实例与学习设计规范是否一致。
具体如下:首先,使用软件工具导入被测试对象(XML文档);然后,调用XML文档解析器或验证器(Java中的Parser或Validator),根据现有的标准的XML Schema(或者XSD文件),判断被测对象是否结构完整以及是否与标准一致;最后,根据测试结果,导出测试报告。其模型如图3所示。
2.一致性测试方法与过程
学习设计规范一致性测试对包含学习设计信息的文件实例(即XML文档)进行测试,一方面要验证XML文档的合法性,另一方面要验证XML文档的有效性。换句话说,一方面要看其是否符合XML语言的语法规则,另一方面要看其是否符合学习设计规范。
学习设计信息模型描述了学习设计规范的数据结构,列出了与学习设计相关的数据元素。这些数据元素可以分为核心元素和扩展元素,核心元素又分为必须数据元素和可选数据元素。另外,信息模型还规定了每个数据元素及其属性的类型和取值范围。如表2所示。对于各个学习设计的实例来说,必须数据元素是必不可少的,可选数据元素和扩展元素可以有,也可以没有。因此对于某个学习设计实例来说,如果包含所有的必须数据元素,且所有的数据元素类型均采用的是规定的数据类型且在取值范围内,那么该实例与学习设计规范是一致的;如果不包含必须数据元素,或者未包含所有的必须数据元素,或者数据元素采用的不是规定的数据类型,或者数据元素的取值不在取值范围内,那么该实例与学习设计规范是不一致的。[1][6][7]
四、一致性测试工具实现
依据上面所提出的一致性测试模型和方法,同时在借鉴Reload Learning Design Editor的基础上,我们开发出了学习设计规范一致性测试系统。该测试系统是基于Eclipse开发的,其核心是对包含学习设计信息的XML文档进行验证(或测试)。
1.一致性测试工具实现过程
学习设计规范一致性测试的核心是测试,也就是对包含学习设计信息的XML文档进行验证。因此解决如何验证XML文件是实现一致性测试的关键。该系统采用了Java语言的XML验证API,它可以快速检查输入是否符合预期的形式。Java5引入了javax.xml.validation包,该包提供了独立于验证模式语言的验证服务接口。javax.xml.validation API使用三个类来验证XML文档:SchemaFactory、Schema和Validator。验证过程主要有以下五个步骤:
(1)为编写模式所使用的语言加载一个模式工厂,如下所示:
SchemaFactory schemaFactory=SchemaFactory.newInstance;
(2)编译源文件中的模式,如下所示:
Source one=new StreamSource("schemaValidate/cp_v1p1.xsd");
Source two=new StreamSource("schemaValidate/A/LD_Level_A.xsd");
Source three=new StreamSource("schemaValidate/md_v1p2p4.xsd");
Schema schema=schemaFactory.newSchema(new Source[]{one,two,three});
(3)用编译后的模式创建一个验证程序,如下所示:
Validator validator=schema.newValidator();
(4)为需要验证的文档创建Source对象,如下所示:
Source source=new StreamSource("learningdesign.xml");
(5)验证输入的源文档,如下所示:
validator.validate(source);
在验证的过程中需要注意以下几个问题:
(1)在该系统中我们采用标准的XSD文件而不是采用标准的DTD文件来验证XML文件,主要有以下几方面原因:首先,XML Schema事实上是XML的一种应用,它与XML有相同的语法结构以及相同的合法性验证机制,便于使用;其次,XML Schema提供了较多的数据类型,更重要的是它支持用户自定义的数据类型,增强了数据类型的灵活性,因而更容易对数据类型进行限制,提高测试结果的准确性;再次,XML Schema是一个开放的模型,在XML文档中加入扩展元素不会发生验证错误;最后,XML Schema完全支持命名空间,一个XML文档可以由多个XML Schema文档来描述。
(2)学习设计规范一致性测试不仅包括学习设计自身的测试,还包括内容包装以及学习对象元数据的测试。因此,该系统涉及如何调用多个XSD文件来验证XML文档的问题,也就是如何调用三个相关联的XSD文件:cp_v1p1.xsd、LD_Level_A.xsd、md_v1p2p4.xsd。为了解决该问题,需要在相应的XSD文件中运用
(3)若包含学习设计信息的XML文档不符合学习设计规范,并且存在多处错误,如果仅使用“validator.validate(source);”进行验证,则只能够显示出一条错误信息。为了将XML文档中的多处错误全部显示出来,便于用户快速修正所有的错误,需要自定义一个错误处理类ErrorProcessor,该类继承于DefaultHandler,重写其中的错误处理方法,然后通过使用“ErrorProcessor ep=new ErrorProcessor();validator.setErrorHandler(e);”来调用类ErrorProcessor中的错误处理方法,从而将XML文档中的错误全部显示出来。
2.一致性测试系统的主要测试界面和测试结果
前面介绍了一致性测试系统的实现过程,下面将简要介绍该系统的一些主要测试界面及测试结果。由于该测试系统借鉴了Reload学习设计编辑器,增加了学习设计编辑模块,因此,该测试系统不仅可对包含学习设计信息的XML文档进行测试,用户还可方便地进行可视化的学习设计,避免手写繁琐的XML文档。
首先,用户可以使用该系统提供的学习设计模块来创建包含学习设计信息的XML文档。单击“文件”→“新建”→“学习设计”,选择用于存放XML文档的文件夹,选择好文件夹后,用户可在如图4所示的界面上进行学习设计,设计完成后单击“文件”→“保存”,在选择的文件夹中将产生相应的XML文档。
然后,用户可对包含学习设计信息的XML文档进行测试。单击“工具”→“测试”,如果该文档不符合学习设计规范,将显示如图5所示的测试报告,该测试报告不仅显示出了所有的错误,而且显示了出现错误的位置,便于用户准确地定位和修改。
该系统还提供了详细的帮助文档,用户初次使用时可参照帮助文档进行操作。
五、小结
一致性测试是保证标准实现的正确性和有效性的重要手段,是提高资源的重用性和系统的互操作性的重要手段,也是推广和落实学习设计规范的一个必要手段。[8]因此,对基于学习设计规范生成的XML文档进行一致性测试是十分必要的。但是,目前所开发的学习设计规范一致性测试系统只是对学习设计A层的设计和测试,有待于进一步扩展和完善。
参考文献:
[1]IMS Learning Design Information Model [S]. http://www.imsglobal.org/learningdesign/index.html
[2]陶勇,杨贯中,孔婷.CELTS.10标准一致性测试系统[J].计算机工程,2004年10月,第30卷第20期.
[3]曹晓明,何克抗.学习设计和学习管理系统的新发展[J].现代教育技术,2006(4).
[4]周跃良,曾苗苗,李欣.基于IMS学习设计规范设计和开发面向过程的网络课件[J].中国电化教育,2007(7).
[5]张冬敏,阎保平.SQL标准符合性测试相关问题探讨[J].计算机应用与软件,2007年5月,第24卷第5期.
[6]IMS Learning Design Best Practice and Implementation Guid [S]. http://www.imsglobal.org/learningdesign/index.html
[7]IMS Learning Design XML Binding [S]. http://www.imsglobal.org/learningdesign/index.html
[8]文志康,朱斌.学习者模型基于XML的一致性测试.http://www.celtsc.edu.cn/63a8835065877ae0/65874ef6/wenzhu0301.pdf.