您现在的位置: 论文网 >> 教育论文 >> 学科教育论文 >> “互联网+”背景下的软件测试课程教学体系构建论文

“互联网+”背景下的软件测试课程教学体系构建

出处:论文网
时间:2018-01-17

“互联网+”背景下的软件测试课程教学体系构建

  文章编号:1672-5913(2017)05-0112-05

  中图分类号:G642

  0 引 言

  随着计算机软件在各行各业应用的不断普及与深入,软件开发行业已成为推动社会信息化转型的支柱产业。软件质量逐渐成为行业竞争的核心力量之一,保障软件质量的重要手段是软件测试,因此我国急需大量高素质的从事软件测试的专业人才。

  目前,国内高校已将软件测试作为计算机专业的一门重要专业基础课程,面向广大研究生、本科生及专科生等不同层次的学生开设与软件测试相关的课程(如软件测试基础、软件测试方法与实践、实用软件测试技术等)。区别于软件工程课程,软件测试课程在高校的开设大多起步较晚,早期一般是作为软件工程课程的一部分内容合并讲解[1]。无论在课程理论教学内容安排还是学生实训环节组织上均存在着系统性、针对性、实用性方面的不足,课程讲授的知识点来自对原有软件工程知识体系的延伸,常常与软件企业的实际测试需求脱节。

  教育的本质是传授知识、培养能力的过程。互联网技术的快速发展给传统的教育带来了变革的新机遇。2014年11月,李克强总理在出席首届世界互联网大会时指出,互联网是大众创业、万众创新的新工具[2]。在“互联网+”背景下,高校是发挥其创新优势的绝佳场所,利用信息通信技术及互联网平台,使互联网与传统教育深度融合,创造新的教育形态。

  1 教学过程中存在的问题及改革思路

  1.1 对存在问题的分析

  通过调研国内多所高校软件测试课程的教学情况,结合南通大学近3年来的教学改革经历,我们发现国内的软件测试课程教学普遍存在以下3点问题。

  (1)讲授的知识点分散、繁杂,缺乏系统性。在课程讲授过程中,有必要构建统一的知识框架。国内高校开设软件测试课程起步较晚,所讲授内容一般源于对软件工程课程中软件验证环节知识点的细化和扩充。这种方法尽管介绍了很多知识点,但由于这些知识点之间的联系普遍较松散,学生对这些知识的认识只是停留在“是什么”的层面。在软件测试课程的教学过程中,教师和学生缺乏一个简单明了的指导框架,只能分散地讲解各部分知识点。这种教学方式不利于学生系统地掌握软件测试的核心要点,也不利于学生将所学的软件测试知识建构为一个有机体系。

  (2)教学内容与企业实际需求脱节。多数高校的教师经过本科、研究生、博士阶段的学习,毕业后直接到高校工作。这一现实的直接反映是,教师普遍缺乏在企业工作的背景,他们在授课时经常有意无意地侧重于理论讲授而弱化学生的实践训练[3]。在软件测试课程的教学上集中表现为两点:一是侧重讲授软件测试的基础理论、经典的软件测试技术及工具;二是在学生实训环节,侧重安排学生基于已有的代码案例开展测试训练,但这些案例被年复一年地使用,多数案例已与现阶段的企业实际软件项目大不相同,而且教学用的测试工具与企业正在使用的工具也存在很大的差别。

  (3)课程教学组织模式需要改革。课程教学组织通常采用“课堂教学+机房实验+课后作业”线性模式。这种模式下的教学互动表现为课堂教学互动、实验教学互动、点评学生作业互动3个环节,但3个环节之间没有或很少有互动。众所周知,理工科课程的学习过程是一个持续、迭代训练的过程,需要师生全方位地开展教学互动、深入交流,以达到持续学习、螺旋式提升知识和能力的目标。现有的互联网技术为实现上述目标提供了便利,有必要将这些技术广泛应用于教学组织过程。

  1.2 教学改革思路

  在教学过程中强调学生“做中学”的基本原则,融合“互联网+”技术背景,组合运用课堂教学、专题讨论、上机实验、老师点评、助教推进、课后持续改进、项目小组竞赛以及个人和团队得分排位赛等多种教学方法。学生通过教师、助教、团队成员持续推动,迭代改进这种团队和个人的项目实践,能够深刻领会软件测试的方法、技术,同时提升个人技能和团队协作能力。

  首先,筛选众多软件测试的相关知识,提炼软件测试课程的核心知识域,构建测试技术教学知识体系;其次,针对知识体系中对应的知识点,选择在企业中广泛使用的测试工具,并尽可能地从企业获取实际项目来构建测试教学的案例库;再次,构建课程综合实训平台,供学生巩固所学的测试方法和技术,并通过系统性训练掌握软件测试基本原理;最后,在促进教学效果方面,不断优化教学评价体系,探索教与学的持续改进方法。

  此外,鼓励学生参与与软件开发测试相关的各种竞赛活动,搭建创新型大学计算机教学实践平台[4]。如参加全国大学生软件测试大赛,比赛内容有开发者测试大赛、移动应用测试大赛和嵌入式测试大赛。借助比赛建立软件产业和高等教育的资源对接,探索产教研融合的软件测试专业培养体系,进一步推进高校软件测试课程的专业建设。

  2 课程教学知识域构建

  2014年发布的《软件工程知识体系指南(SWEBOK V3.0)》搜集了33个国家近150位软件工程领域专家的意见,将软件工程研究内容划分为15个知识域[5],其中与软件测试紧密相关的知识域是软件测试和软件质量保证。它们从不同角度涵盖了与软件测试研究相关的海量知识,由于时间有限不可能完全纳入软件测试课程的教学。我们的教学改革以这两个知识域的内容为基础,考虑面向本科生的卓越工程师培养要求,筛选其中一部分内容构建教学知识域。

  目前可以分为两步:第一步是建构软件测试的理论知识体系,目的是提炼软件测试理论教学知识域,注重各知识域之间的关联,力求知识域的系统性;第二步是测试工具习得案例库的构建,目的是基于已有的软件工具,开展一系列简单的项目实践,让学生掌握课堂讲授的理论知识点。   2.1 软件?y试教学知识体系

  同济大学朱少民教授发布的“软件测试”思维导图,意图描绘软件测试技术的全景图,在学术界和工业界引起了广泛的讨论[6]。 这张“软件测试”思维导图包含9个模块,分别是测试定义、测试层次和类型、测试的流派、测试方法、测试方式、自动化测试、测试技术、测试过程、测试管理。虽然对模块内容的划分依据还存在一些争议,但是该思维导图覆盖了软件测试的理论、方法、技术和实践等诸多方面,9大模块之间也用连线表达模块间千丝万缕的联系。我们借鉴该思维导图覆盖的知识要点,结合卓越工程师培养的教学需要,融合理论、方法、实践3个维度,构建软件测试课程教学的知识体系,如图1所示。

  图1展示了软件测试课程教学涉及的知识模块以及各模块之间的关联。如前所述,我们筛选了SWEBOK V3.0中对应的知识点作为各模块的教学内容。此外,结合普通本科院校(如南通大学)学生的实际情况,对各知识模块的学习要求适当调整,各模块对应的知识域见表1。

  在课堂理论教学中讲述上述内容时,侧重阐述这些知识点的产生背景、基本原理、目标及相互联系等,在教学实践环节精心组织实践项目,强化所学知识要点。

  2.2 测试工具习得案例设计

  软件测试的目的是发现缺陷,人工测试与利用工具自动测试有各自的适用场景。一般而言,自动测试可以大幅度降低软件测试代价。目前有大量的测试工具可供教学使用。我们对照图1中的知识体系及表1中的知识点,选择一些有代表性的测试工具构造相应的案例组织学生实训学习,通过工具的学习掌握相应的知识点。现有的软件测试工具使用情况如下。

  (1)在学习组合测试时,我们设计了软件安装过程的兼容性测试,设计了一组需要检测兼容性的环境要素(如网络、操作系统、CPU等),用微软的开源软件PICT求解不同组合。

  (2)单元测试环节分两组开展教学。一组是从开源网站(Github、SIR等)下载一组Java源程序及与程序对应的Bug版本,练习使用Junit工具或利用集成在Eclipse上的开源插件EclEmma开展单元测试;第二组是从开源网站下载一组C++源程序及与程序对应的Bug版本,利用微软Visual Studio单元测试框架开展单元测试。在测试用例方面,可以直接使用SIR提供的测试用例,也可以应用所学的用例设计方法来构造测试用例。

  (3)在性能测试教学环节,选择两组工具(JMeter工具、Visual Studio的性能分析工具),案例选择的是南通大学Email服务性能测试。

  (4)代码覆盖测试利用的是集成在Eclipse上的开源插件EclEmma。实训案例与单元测试相同。

  (5)移动应用测试应用慕测(mooctest.net)提供的移动应用测试工具(Kikbug),案例采用了来自工业企业的真实案例。

  上述案例库构建策略的一个显著好处是:可以从开源网站下载或与企业合作的方式获得工业企业最新的软件开发项目,这使得学生不仅能掌握软件测试基础知识,而且能接触到工业企业最新的软件开发实践,增加学生身临其境的感觉,从而更直观地认识到在现阶段软件测试中需要解决的问题。

  3 课程教学实训平台构建

  尽管有丰富的测试工具可用于软件测试课程教学,但配置这些工具通常比较复杂,需要耗费师生及员工大量时间和精力。其表现在:①运行环境差异。不同测试工具对运行操作系统、网络配置、运行库等要求往往不同。②支持的编程语言差异。不同的测试工具可能支持不同的编程语言,有的支持Java语言,有的支持C++语言。③支持项目差异。不同的测试工具往往支持不同特征的项目测试,有些仅支持对传统软件项目的测试,有的支持对C/S 或B/S 架构的项目测试,还有的工具用于测试移动应用。

  因此,很有必要构建一个用于软件测试课程教学的综合实训平台,将软件工具配置的工作对 师生透明化。如此,教师的工作重心可以集中于构建学生实训的题库,学生则集中精力考虑测试策略、测试用例设计,通过系统内嵌的测试工具验证测试策略和测试用例,进而掌握相应的理论知识点和提升实际动手能力。我们基于慕测科技提供的系统架构,构建软件测试课程教学实训平台[7],其结构如图2所示。

  图2这种架构的好处是显而易见的。从开源网站、学术界及软件企业获取项目实践素材,经过筛选转换之后构建测试题库,这种方式保证了教学内容紧贴实际需求,并且在测试项目的构建上有很强的扩展性。学生通过网站提供的统一用户访问接口实现测试环境的构建,测试环境可以跟踪学生的软件使用、开发行为。系统实现了自动化评分、自动化提示、编程行为跟踪等网络服务。此外,系统还提供了微信和博客接口,可以实现基于互联网的课堂测试、课堂调研及课后作业,该功能已被广泛用于教学互动环节。

  4 “互联网+”背景下的教学反馈与持续改进

  4.1 教学评价体系构建

  传统的教学反馈形式有课堂教学互动(提问及点评)、课后答疑、期中调研、期末测验等。其中,课堂教学互动效果好但特别耗时,使得课堂教学内容不够浓缩,并且这种收益是一次性的(下一轮教学仍需重复同样的动作)。教学中及时反馈十分重要,但课后答疑、期中调研、期末测验等形式很难保证实时性,从而降低了这类反馈的效果。

  我们基于互联网技术优化教学评价体系,具体做法如下:①在课堂上以讲授理论知识为主,穿插讨论、翻转课堂等形式。此外,可以基于综合实训平台开展微信小测、微信投票等形式的教学活动。②基于教学实训平台组织实验教学。学生在提交实验结果后可以从自动评分模块得到本次实验得分。这在一定程度上降低了教师的工作量,学生还可以根据结果迭代改进。此外,在平台FAQ模块列出学生学习过程中可能会遇到的常见问题,教师和助教负责更新自己课程的FAQ。③实验报告、课后作业以博客的形式提交,教师和助教直接在博客中进行点评。采用内容订阅和推送服务(RSS、Email),方便教师在学生完成博客后收到RSS和Email通知。学生的博客被点评后也会收到RSS和Email通知,这在一定程度上提高了师生交互的效率。   4.2 持续改进

  虽然我们基于互联网信息技术初步构建了较为高效的教学评价机制,但是整个系统的整合度还不是很高,教学反馈过程目前依赖于利用一些已有的工具,这些工具需要进一步与教学实训系统整合。目前,我们已完成微信与教学实训系统的整合,下一步需要整合QQ这种在学生中广泛使用的即时通信工具。我们的目标是实现微信、QQ、Email、RSS等互联网工具或服务与整个教学实训系统的融合,不断优化它们之间的接口,以提高师生交流的效率,从而方便学生和教师的使用。

  5 结 语

  软件测试课程是计算机专业的核心课程,我们在构建教学知识体系上注重系统性;在实验教学组织上注重实践性,加强实验平台建设,选择紧跟企业需求的实践素材;在教学反馈机制建设上注重互联网信息技术的应用和整合。我们下一步工作是优化课程理论教学体系,对课程教学实训平台进行升级,增加新的测试功能,进一步缩短教学反馈传播途径。通过持续改进教学内容和过程,提高对软件测试人才培养的效率。

“互联网+”背景下的软件测试课程教学体系构建

论文搜索
关键字:教学体系 软件测试 背景 体系 课程 互联网
最新学科教育论文
软件工程专业“计算机网络”课程实验教学研
“赛教学训”四位一体化的物联网工程专业人
浅议幼儿美术趣味教学及创新能力的培养
如何利用奥尔夫音乐教学法培养幼儿的创造力
解读体育游戏在初中体育教学中的应用及影响
如何在美术教学中营造快乐的氛围
微积分慕课教学资源与应对策略探究
浅析在德育课教学中如何灌输团队观念
MOOC引领下中学历史课程多元化教学模式研究
“情感过滤”假设对大学英语听力教学探讨
热门学科教育论文
浅谈语文教学中学生创造力的培养
变“教师教,学生学”为“教师教学生学”
素质教育与小学语文教学
小学“语文综合性学习”实践初探
素质教育和小学语文教学改革
现代体育课堂教学重在创新
浅谈《体育课程标准》与体育教师观念的转变
电教手段优化体育教学
陶行知健身思想研究
简论现代游泳技术与训练的发展方向