◆舒 挺 贾宇波 张华熊
(浙江理工大学信息电子学院)
案例驱动的通信软件测试课程教学方法研究
◆舒 挺 贾宇波 张华熊
(浙江理工大学信息电子学院)
通信软件测试课程具有概念繁多,理论抽象和实践性要求较高的特点。本着通信协议测试理论研究和实践能力并举的复合型人才培养目标,提出了一个基于具体协议测试案例驱动的课程教学新方法。案例驱动的教学方法强调测试案例在理论和实践两者之间结合的重要性,遵循学习的本质规律,促使学生以知识探索者身份提升学习主动性,从而达到课程的教学目标。
协议工程 协议测试 教学研究 案例驱动
1.课程现状和地位
通信软件测试是计算机专业网络方向本科生的专业课程之一,其教学目标为具体化计算机网络原理课程所学的抽象概念,提高学生对网络协议通信软件开发与测试的认知度,使学生掌握通信软件测试的基本概念、原理、流程和实践技能。通信软件测试是软件测试的一个分支,但与普通的软件测试相比又具有独特性。通信软件或称为协议软件,往往具有分布性和实时性要求高的特点。协议软件的实现是对应协议规范的具体实现,由于同一协议规范的实现方可能不同,他们实现的通信软件产品之间的细微差异或者错误,都有可能带来灾难性的后果。例如,动车控制通信软件存在的瑕疵,造成了车毁人亡的追尾惨剧。这给通信软件的测试技术提出了新的要求。随着网络技术的飞速发展,在网络新技术转化为产品的过程中,需要大量的既懂得网络协议原理,又掌握通信软件测试的技术人才。目前,这种测试人才的社会需求和高校培养的人才数量之间存在较大的缺口。因此,一些高校针对这种局面,陆续推出了系列课程来培养这类稀缺人才。
通信软件测试课程与其他课程关联度较大,它的先修课程包括:计算机网络、离散数学、程序开发语言、数据结构和软件工程等。传统的脱离具体测试案例背景进行教学活动对教师和学生来说都是一种艰难和无趣的经历。
2.面临的挑战
由于,通信软件测试课程所涉及的内容具有概念多,难度大和实践能力要求高的特点,导致了针对本科生开展课程教学的困难。传统的填鸭式的教学模式很难适用于该课程的教学。加之,相关适合教学的教材的缺乏也照成了教学的难度。目前国内关于该主题的教材比较稀少,书籍主要以外文为主。国外经典书籍,如由Gerard J编著的《Design and validation of computer protocols》,Gyula Csopaki著的《Testing of Communicating Systems: Methods and Applications》和 Manuel Núñez编著的《Testing of Software and Communication Systems》均是该领域难得的经典书籍,这类教材强调原理、内容丰富。但是这些教材由于内容繁多,知识点较杂,没有针对性,不适合本科教学使用。国内关于该主题主要有两本教材:北方工业大学赵会群教授编写的《通信软件测试技术基础》和桂林电子工业学院古天龙教授的《网络协议的形式化分析与设计》。前者介绍软件测试的基本概念、基本内容和测试方法的分类,作为软件测试的基础,重点介绍了软件测试的白箱法和黑箱法,该书理论性较强,实践内容相对较少,适合研究生教学。后者,就网络协议分析与设计中的形式化方法与技术展开讨论和介绍,该教材同样更偏向于概念性内容。
对于计算机专业网络工程方向的本科学生而言,在完成计算机网络等相关专业方向基础先导课程后,如何针对网络通信软件的特点,应用所学的软件工程和网络协议的知识,通过通信软件测试课程的学习,掌握通信软件测试的基本理论和实践方法是长期困扰该课程教学的一个难题。
传统的通信软件测试课程教学往往是作为计算机网络课程的进一步延伸,过分地强调理论知识的传授,相对忽视了基于实际测试过程和测试案例的学生实践能力的培养。针对网络工程方向的本科生而言,毕业以后的出路主要为:继续攻读研究生或者就业。针对前者,课程教学应该在介绍完通信软件测试技术基础之后,深化测试序列生成相关算法的内容。而针对后者,教学还需结合实际项目背景,阐述一些具体的通信软件测试工具的使用方法和完整的测试案例,增加有针对性的实践环节。
针对课程概念枯燥、知识点多,实践要求高的特点,本文提出了一种基于案例驱动的教学思路和教学方法。由于现行的计算机本科教学模式更注重学生理论基础的培养,而对学生工程项目概念和经验的积累强调较少。这直接导致了学生在学习工程相关课程时,由于没有实践的背景知识,对课本中概念和经验知识的重要性和意义不敏感。为了弥补实践经验不足,给学生营造工程项目氛围,让学生能够在教师的引导下,探索解决问题的思路,从而产生对相关知识和经验性方法的学习渴望。遵循学习的本质规律,让学生自己在主动性学习过程中建构相应的知识体系。只有这样,学生的学习主动性才能被更好的激发,课程教学才能收到预期的效果。
浙江理工大学计算机科学与技术专业网络方向的通信软件测试课程,正是基于该教学思想来设计和实施教学活动。在整个课程教学过程中,以一个具体的通信协议测试仿真课题作为教学的工程背景环境,时刻联系教学内容与测试课题之间的关联,联系实际的强调各知识点之间的内在关联性和重要性。由于通信软件通常规模庞大,系统较复杂,基于案例的教学过程设计中,测试课题的选择是教学成功与否的关键之一。在有限的课时内既要完成测试基本软件的教授,又要针对测试案例完成测试实践方法和过程的培训。如果案例选择不合适,将直接影响教学过程的开展。本文提出的案例驱动教学方法中,选择PPP协议作为测试对象,该协议既简单又包含相对完整的通信协议软件特性,便于案例教学方法的设计和实施。
图1 课程教学概念设计
基于案例驱动的课程教学概念设计如图1所示。整个课程的教学内容以PPP协议软件测试案例为核心来设计,突出两个教学重点:协议测试概念和理论与协议测试方法和实践。在课程教学过程中,以该测试案例为中心议题,提出完成测试工作所需的理论概念和对应的测试实施策略和方法。有了具体的工程测试目标问题,学生面对全新的协议软件测试概念就不会觉得空洞,从而由知识被动的接受者转变为具有一定主动性的知识探索者的角色。作为教师,在基于案例的课程教授过程中,也找到了务实的落脚点,避免纯粹“空对空”的教学过程。教师和学生之间这种基于共同问题的教学互动有利于良好的教学氛围的营造,从而达到预期的教学目标。
通信软件测试,是浙江理工大学计算机科学与技术专业网络方向本科生的专业选修课之一。在课程体系安排中,总学时被设置为32学时,课内授课16学时,课外测试实验16学时。课程学时设置强调了实践环节的重要性,旨在针对学生继续深造和就业两方面的需求,在教授学生通信软件测试基本理论知识的基础上,强化实践测试的技能。限于教学学时的限制,在教学内容安排上舍弃了一些技术理论枝节,而是针对解决PPP协议测试问题来构建教学内容。结合本人协议测试技术方面的积累,把一些最新的协议测试技术融合到日常教学内容中。课程教学围绕PPP协议测试问题展开,首先介绍最基本的协议工程测试方面的理论知识(3学时),接着重点介绍扩展有限状态机EFSM的原理和基于EFSM的协议测试方法(3学时)。然后,针对性的介绍典型的基于EFSM模型的测试例生成方法(3学时),和典型测试工具软件的应用(2学时)。最后,综合阐述PPP协议的测试方法(5学时)。课外实践环节的16学时,学生将在教师的指导下独立应用测试工具软件进行针对PPP协议的测试实践。
在课程期末考核中,设置了学生对课程满意度和建议的调查环节。学生反馈信息的统计结果表明,80%以上的同学认可基于测试案例的教学方法,认为该方法可以有效提升学习的主动性。同时,在实例测试过程中可以持续的体验到知识应用于实际的成就感。
通信软件测试课程具有概念繁多,理论抽象和实践性要求较高的特点。如何设计和实施课程的教学内容,培养可以从事网络通信协议测试工作和理论研究的复合型人才,是一个富有挑战的课题。本文提出了一个基于具体协议测试案例来开展教学的新方法。新方法强调课程教学过程以测试案例为中心议题,遵循学习的本质规律,以测试案例作为理论知识的仿真项目背景,可以有效提升学生学习的主动性,从而达到预期的教学目标。
[1]Holzmann G J,Company A T A T.Design and validation of computer protocols[M].Prentice Hall,1991.
[2]Gyula Csopaki,Margit Dibuz,Katalin Tarnay.Testing of Communicating Systems:Methods and Applications[M].Springer,1999.
[3]Manuel Núñez,Paul Baker,Mercedes G.Merayo.Testing of Software and Communication Systems[M].Springer,2009.
[4]赵会群.通信软件测试技术基础[M].人民邮电出版社,2004.
[5]古天龙,蔡国永.网络协议的形式化分析与设计[M].电子工业出版社,2003.