专业认证背景下的“软件测试技术”课程教学改革探索

2019-09-26 04:55张艳梅王荣存鞠小林姜淑娟
计算机教育 2019年9期
关键词:软件测试案例测试

张艳梅,王荣存,薛 猛,鞠小林,袁 冠,姜淑娟

(1.中国矿业大学 计算机科学与技术学院,江苏 徐州 221116;2.南通大学 计算机科学与技术学院,江苏 南通 226019)

0 引言

所谓专业认证(即专门职业性专业认证)指的是专业性认证机构对高等教育机构开设的职业性专业教育实施的专门性认证,由专门职业协会会同该专业领域的教育工作者一起进行,为相关人才进入专门职业界从业的预备教育提供质量保证。它主要是对专业学生培养目标、质量、师资队伍、课程设置、实验设备、教学管理、各种教学文件及原始资料等方面的评估,指向一所学校的具体专业或专门学校。专业认证是社会中介组织进行的外部评估,以本专业所有学生的学习结果为认证的主要目标,保证与改进教育质量,建立与今后注册工程师制度相衔接的与国际等效的认证体系。专业认证的目的之一是吸引工业界的广泛参与,密切工程教育与工业界之间的联系,提高工程教育人才培养对产业的适应性,开展专业认证可以为学生就业提供保证[1]。

在我国启动高校“双一流”建设战略的新形势下,专业认证处于重要地位,发挥着其积极作用,为高校建立良好的人才培养体系,建立持续优化的质量保障机制提供保障,从而不断提高专业实力和人才培养质量。我国加入《华盛顿协议》意味着专业认证具备国际实质等效性,能促进高校专业按照国际先进理念促进教学改革,加快我国高校与国际水平接轨,最终建成世界一流大学[2]。

随着“互联网+”和信息技术的发展,IT产业在社会生活和国民经济中广泛深入,软件质量和可靠性的保证尤为重要。目前我国IT行业大约有400万左右技术岗位,其中软件测试技术人才缺口至少30万。软件测试人员与开发人员占比在1∶4及以上的企业高达55.13%。目前,我国高质量软件测试技术人才非常稀缺,严重影响着软件行业的发展,因此培养软件测试行业所需技术人才的软件测试技术课程,显得尤为重要。

1 软件测试技术课程教学存在的不足

1.1 软件测试课程重视度不高

从软件公司及高校角度来说,大都存在轻测试、重开发的想法,认为软件测试任何人都能够轻易学会。因此,有一部分高校并没有开设软件测试这类课程,或者即便设置了这门课程,但是学时较少,或是经常被一些其他的新课程代替。这些轻测试的思想,对保证软件产品的质量是非常不利的。

从学生角度来说,他们对软件测试的认知度整体不高,对软件测试行业也存在着一定的偏见。由于传统的软件测试技术课程的教学内容涵盖的大多数是理论知识,并且有些内容在其前置课程软件工程课程当中有所涉猎,案例大多也是一些规模很小的实例,因此导致学生误认为软件测试技术课程内容很简单,将来毕业不想从事软件测试相关的行业,只是抱着应付考试的心态对待这门课程。

1.2 软件测试技术和专业认证目标不匹配

(1)能力培养目标不达标。软件测试技术作为计算机科学与技术专业的一门专业课程,在培养学生分析问题、解决问题的能力中占据重要的地位。通过本课程的学习,学生应具有以下能力:获取项目相关信息的能力、解决工程实际问题的能力、在具体的实践中测试工程软件的能力、团队合作与人际交流能力、终生学习的可持续发展能力[2]。然而传统的教学重理论轻实践,内容陈旧,学生所学知识停留在教材上,学生兴趣不易激发,缺乏主动思考的动力,探求问题的积极性不高,应用能力和创新能力不强。

(2)教学内容不够合理。传统的教学中,任课教师往往基于教材,注重原理性和知识性,按部就班地讲解一门课程的知识点。学生也只是被动地接受和学习知识点,而并不能接触完整的实际项目。现有的软件测试技术教学素材大多是任课教师自己设计一些实例,或者从互联网站(如开源网站或软件公司网站等)下载的一些规模较小的项目。作为一门完整的课程来讲,这些素材之间往往是孤立的,并不能从根本上发挥培养学生实践技能的作用。

1.3 课程教学平台不完善

缺乏完善的课程教学平台。目前很多高校没有软件测试技术课程的教学平台,大多采用公共邮箱、网盘等公共资源,上传课件、布置题目。虽然这种方式一定程度上带来了便利,但是也存在着较大的局限性,如上传课程内容过于简单,无法提供真实的测试平台;教师对学生和作业的管理,尤其是对于工业界的实际案例的测试结果的判断难度较大,需要手工批改作业,效率极低、互动性不强等,需要借助一个更加完善的软件测试技术课程教学平台,用以提高该课程的教学效果。

2 软件测试技术课程教学改革

2.1 鼓励教师积极参加师资培训项目

为了加强对软件测试技术课程的重视程度,应鼓励教师积极参加各种有益的培训,以提升教师的专业技能和教学能力,如团队教师积极申报教育部产学合作协同育人项目——慕测师资培训项目,该项目主要面向青年教师,由企业组织教师开展技术培训、经验分享、项目研究等内容,为的是不仅可以提升教师的工程实践能力和教学水平,更重要的是支持基于高校在软件测试相关专业开发者测试、Web测试、安全测试、移动应用测试的应用型人才培养中出现的技术与行业脱节,人才培养不符合企业需求等方面,建立有实用价值的软件测试案例库,提出合理的改革方案,形成与行业对接的培养方案,构建素质、能力、知识、创新等方面相互协调的培养体系。

2.2 以工程案例应用为导向设计教学模式

为了解决现有软件测试技术教学达不到专业认证关于人才能力培养目标这一问题,转变思想,与时俱进,更新教学理念,积极采用小组讨论、案例教学、项目训练等多种形式,缩短与软件行业需求之间的差距,培养学生的工程观。

2.2.1 参与互动教学

授课前,我们对学生喜欢的教学形式和是否希望学到工业界真实案例内容进行了一份问卷调查,并以其中的一个班级为例,发现针对喜欢的教学形式这一问题(如图1所示),有75%(39人)的学生选择学生参与互动授课,有25%(13人)的学生选择了传统授课。由此可见,学生内心还是更倾向于双向交流,希望在与老师和同学们的讨论过程中提高自己的能力。对于是否希望学到工业界真实案例内容(图2)这一问题,几乎所有的人选择愿意接受工业界真实项目,达到96%(50人)。

2.2.2 以工程案例应用为导向的教学实施

为了解决学生在解决实际工程问题方面得不到真正锻炼,不能满足专业认证的目标中要求培养的软件测试能力的问题,我们从教材的选取出发到课程的授课方式等阶段进行了较为全面的改革。首要是教材的选取,需要选取一本涵盖内容较全又不过于冗余、软件测试技术较新的课本作为教材。①由于软件测试技术具有时效性的特点,而课程教材案例往往时效性不强。在课时很有限的情况下,如果需要满足保质保量完成教学任务,一般不能完全依据课本的内容安排教学内容,因此我们适当地对内容进行了一定调整、删减并增加了一些当前研究最前沿的内容,如移动应用测试、Web应用测试的相关内容;② 由于软件测试技术具有实践性的特点,而课程教材案例都过于简单。因此,在理论教学的基础上,可以根据计算机科学与技术专业的特点,安排与时俱进、适应专业认证目标的最新项目案例教学内容,特别结合实际工程选择一些具有代表性的实训项目作为教学案例,以培养学生解决实际问题的能力。

图1 喜欢的教学形式

图2 喜欢的教学内容

(1)教学案例来源于本课程所借助的实验平台中的题库。其中的案例丰富多彩,且易于理解,共包括6种类型的112个真实案例,分别是Android 55个,pc 10个,Python 3个,Junit Testing 27个,Selenium 7个,Jmeter 10个。教学中以工作任务为中心组织课程内容,通过实训项目培养学生的实践能力,大力推广“工程案例应用”为导向的教学模式,为培养学生的创新能力,根据软件测试工作岗位职业能力的需求,围绕软件测试人员应掌握的工作任务,通过实训项目的实现来形成相应职业能力。同时,每个项目都给出了目标和要求,由学生自行选题进行练习、讲解,最后以大作业的形式写出报告,充分发挥学生的学习主观能动性。采用实际项目导向教学,学习积极性高,在已经实施的教学质量跟踪调查中,学生反馈效果良好。

(2)为了更全面的涉及各个类型的题目,要求每人从不同类型的题目中各选择1个,总共6个题目,并将学生分组,4人一组,作为一个独立的小团队。其中,每个成员负责自己所选择的题目,并且每个团队选出一个负责人,负责协调管理本组成员对题目的完成情况,并按时做好记录;成员定期向负责人汇报完成情况,不懂的问题及时沟通解决,可以同学之间互相沟通,也可以与老师在课前和课后联系。通过这样的方式,还可以有助于老师明确上课时要重点讲解的内容。这种方式不但可以锻炼学生解决问题和分析问题的能力,还有助于提高学生的团队合作精神和人际交流能力,符合专业认证对人才的培养目标。确定好具体项目前还需要学生首先进行教学案例的学习与分析。课后要求相关学生提前预习这部分的知识点。教师上课讲解部分案例,并抽选部分学生讲解其案例,教师负责点评和答疑解惑。最终分值由教师打分,其中教师根据项目完成情况、汇报情况以及查看平台当中的分值进行综合评价,给予相应合理的分值,而小组成员之间不互相打分,主要目的是避免有的学生怕影响同学之间的感情而盲目打分,不好意思打低分等情况。

2.3 采用现代化教学平台MOOCtest

为了解决缺乏完善的课程教学平台的问题,我们借助的是当下最著名的由南京大学软件学院开发的软件测试技术课程教学平台——Mooctest,用以提高该课程的教学效果。

Mooctest是致力于编程、软件测试类考试和练习的服务平台,教师可以轻松监管考试流程,学生自由练习。系统负责自动化评估及可视化展现,配合当下红火的MOOC慕课课程,慕测平台是学生自学的好帮手。该平台主要面向软件测试类考试和练习,其中,以Java覆盖测试、Java Debug分析,以及Android应用测试为主。能够帮助高校的教软件测试技术课程的老师便捷地组织在线考试,帮助高校的学生接触工业界真实的APP案例,以提高学生的测试能力。全国大学生软件测试大赛是目前用于评估学生软件测试能力的一项最为权威的竞赛,这项比赛也是目前国内唯一的全国性软件测试大赛,该大赛致力于推进软件测试的实践教学改革、促进软件测试产业人才培养,该软件测试大赛也依托于该平台[4]。随着社会信息化水平的提高,目前,各企事业单位对具备较高测试能力的软件测试人才的需求相当大。因此,掌握并灵活运用该平台的学生更具有较强的竞争优势。

2.4 改革评价方式

已有的对学生的考核方式与专业认证标准相去甚远,因此应该开展多元化的能力评价体系,以促使学生具备相应的能力。因此,本课程考核采用“平台发布的任务完成情况+课堂案例讲解+书面报告”模式,加大了工程实践技能、语言的表达能力、个人的组织协调能力以及合作能力等综合素质在学习成绩评定中的比重,全面评定学生对课程内容的掌握程度。这种评价标准的多元化重视学习过程,能够更充分真实地反映学生的学习效果。工程案例的完成情况在本课程教学中发挥着至关重要的作用,由学生独立完成,坚决杜绝抄袭。

对于评教系统,不能只简单地通过对客观选项加权求和的方式来统计教师的最终得分,而应该参考主观问答题,从评价的角度,充分地利用现代化手段评价,采用定量与定性相结合的方式,借助统计学方法,切实地对评教数据进行系统地梳理和分析,最终给出一份尽可能客观合理的评价结果。同时,评教指标要根据同学科教师的教学性质与特点,并根据学生的程度、专业等特点“量身定做”,而不应该一概而论,一刀切。此外,针对任课教师的性格等各方面的特点,可由任课教师自行设置个人的评教指标,交由教务处审核后,再依照任课教师意愿选择是否放入学生的评教系统的指标当中。

评价教学考核方式要以专业认证所要求的需要实现的课程标准规定的教学目标为依据,规范合理的教学考核方式有助于学生对教学内容知识点的理解,并能激发学习热情,提高实践动手能力。

3 实践效果

通过采用上述教学方案,我们经过2年的实践,取得了良好的教学效果,学生的实践能力、动手能力和创新能力都有了一定程度的提高。

教学团队教师鼓励学有余力的学生参加了全国大学生软件测试大赛。全国大学生软件测试大赛是目前评估学生软件测试能力的一项权威竞赛,大赛致力于推进软件测试实践教学改革、促进软件测试产业人才培养以及建立软件测试产学研合作平台,主要包括开发者测试、移动应用测试、Web应用测试等分项赛。目前该项赛事吸引了来自全国32个省份的330多所高校,累计参加学生有4 000多名。此项比赛也是国内目前唯一的全国性软件测试大赛,可以很好地体现软件测试技术教学平台的应用效果。据统计,在参加全国大学生软件测试大赛中,中国矿业大学计算机科学与技术学院分获开发者测试二等奖、开发者测试优胜奖、Web安全测试二等奖、Web安全测试三等奖各1人。南通大学计算机科学与技术学院分获开发者测试二等奖、开发者测试三等奖和移动应用测试三等奖各1人。通过竞赛,进一步激发了学生对专业学习的热情,培养了学生的创新能力和实践动手能力,锻炼了其随机应变能力,提升了就业竞争力,同时也展示了中国矿业大学计算机学院和南通大学计算机学院的人才培养质量,提升了专业影响力。

4 结语

虽然软件测试技术课程取得了一定改革成效,但是由于软件测试技术课程是理论与实践结合紧密的课程,因此还应该将科研成果应用到教学内容中,从而推动并促进教学水平和能力的提高。这就需要在软件测试技术课程的教学中,对学生进行科研方法的训练,培养学生的科研能力。

下一步的工作中,我们将继续不断地对软件测试技术课程进行教学改革,这需要对教师提出更高要求。任课教师需要不断学习,提升业务能力,总结他人以及以往的教改经验,不断完善自我,以便更好地开展教学活动,培养学生的综合能力。

猜你喜欢
软件测试案例测试
软件测试方向人才培养“1+X”融合研究
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
心理测试
关于 Web 应用系统的软件测试的研究
随机变量分布及统计案例拔稿卷
心理小测试