当前位置:首页 期刊杂志

以技能为导向的“软件测试”课程实践教学改革探索

时间:2024-05-04

贾晓辉 刘安战 李勇军

摘  要∶文章以测试实战及就业导向为根本出发点,对“软件测试”课程开展了以测试大赛及开源项目为测试实践的“两段式实践”教学改革探索,并详实记录了实践教学的“两真”执行过程及“一真”执行结果。该实践方案为学生指明了测试行业就业的方向,为实现软件工程专业应用型人才培养目标指出了一条切实可行之路。

关键词∶两段式实践;软件测试;教学改革;开源软件;测试大赛中图法分类号∶TP311    文献标识码∶A

Exploration on practical teaching reform of skill-oriented "software testing" course JIA Xiaohui,LIU Anzhan,LI Yongjun

(Software College,Zhongyuan University of Technology,Zhengzhou 45007, China)

Abstract:The article takes the actual testing and enployment orientation as the fundamental starting point, carries out the“two-stage practice”teaching reform and exploration for the“software testing”course with testing competitions and open source projects as the testing practice, and records the "two truths" of practical teaching in detail and"olne true”execution result. This practice program points out the direction of the students employmert in the testing industry, and points out a practical way to achieve the goal of training applied talents in software engineering.

Key words: two-stage practice,software testing, teaching reform, open source software, testing competition

1現状

现阶段,功能测试、自动化测领域试及人工智能、大数据方向的新兴测试领域蓬勃发展。2020年,第十四届软件测试现状调查数据统计显示,54.2%的公司未来在功能测试领域投入更多资金,56.9%的公司计划未来在接口自动化测试领域投入更多资金,行业对接口自动化测试需求呈现出快速发展趋势。据统计,2020年,中国软件测试人才缺口近40万,并且每年以20%的速度增加。然而,测试就业优势并没有打破大学生对软件测试学习的固有认识。绝大部分学生及讲师对测试工作依然留有刻板印象。例如,学生对测试行业没有客观认识,教师缺乏教学热情、照本宣科、自顾自讲课,难以激发学生的学习热情,教学内容不能紧跟软件测试行业的发展,测试课程的实践环节不能从根本上发现项目存在的场景问题。学生视野囿于教材,看不到社会需求。因为没有经历合适的实践过程,课程学习结束之后依然看不清形式,找不到就业方向,甚至不能全面正确理解软件开发所包含的工作。因此,高校的“软件测试”课程亟须从实际出发,主动拥抱企业检验,用实际行动缩短“供、需”之间的差距。

针对所存在的问题,国内外学者进行了相关研究。例如,吴潇雪等[1]从教学方法方面进行了探索,提出了基于Scrum方法的“软件测试”课程教学模式,取得了良好的教学效果。郑霖娟等[2]从岗位需求出发,提出教学时应以岗位核心能力为中心确定教学目标,极大提高了学生的岗位技能和职业素养。李雯睿等[3]基于项目提出了以基于主动学习策略的“软件测试”课程学习方法。张维勤等[4]对“软件测试”课程提出了基于项目驱动教学模式的改革实践。刘晓荣等[5]从课程体系方面研究了技能大赛对“软件测试”课程的作用和意义。“软件测试与质量保证”是中原工学院软件学院软件工程专业的一门核心专业技能课程,受专业总学时压缩影响,设置成为30学时的秋季学期考查课程,常规教学效果微乎其微。经过讨论及权衡,明确以培养软件测试工程师岗位核心能力为教学目标,从提升学生的实践动手能力入手,提出了以“两段式实践”为抓手的“软件测试”课程教学改革。

2教学改革探索

如何有效利用有限的课堂时间并能从测试能力上训练学生,同时保证学生从心底欣然接受软件测试的相关就业岗位,是教师首先需要考虑的问题。软件测试是保证软件质量的重要手段,也是软件工程中不可分割的一个组成部分。随着移动互联网的迅速发展和当前市场对软件测试人员的需求越来越大,“软件测试”课程的地位应该也逐步提高,目标应该调整为培养符合社会需求的优秀软件测试工程师,不应该继续止步于课本上的测试概念,因此从“测试竞赛+测试开源项目”两个方面进行了改革尝试。

2.1竞赛参与

最直接、最近距离了解企业需求的渠道就是参加社会竞赛。因为企业的真实需求存在于竞赛中,因此竞赛也是行业需求的风向标。比如,美国有名的Netflix百万推荐算法大赛和国内的火焰杯软件测试大赛等都是基于行业需求。

“全国大学生软件测试大赛”旨在建立软件产业和高等教育的资源对接,探索产教研融合的软件测试专业培养体系,进一步推动高等院校软件测试专业建设。截止到2019年,参赛人次已超过41000人,涉及高校超过390所,在高校中具有一定影响力,因此课程组教师决定带领学生迎接挑战,参加2021年的全国大学生软件测试大赛。

(1)组织学生报名。考虑到教学目标及学生的课业承受能力,结合测试时间,及时调整教学内容,将该课程的实践学习主要内容修改为测试大赛的练习。组织2019级网络方向54名学生结合个人兴趣报名参加了2021年的Web应用、移动应用等六个测试方向的全国大学生测试大赛。并提出“靠开发进不了大厂,也要靠测试进入大厂”的学习口号。

(2)结合竞赛方向安装测试环境。为了打消大部分学生的畏难情绪,有效利用有限的课堂时间,提高课堂教学质量及效率,发挥学习能力强的学生“领头羊”的作用,课堂上分享个人测试环境安装经验,激发更多学生的竞争意识,其他学生紧随其后,积极参与,测试环境的安装问题得以高效解决。

(3)测试题目的练习。因为测试大赛主要工作涉及功能测试及性能测试,考虑到不同的测试方向,其测试环境、测试软件各不相同,不能占用课堂时间一一讲解。而不经历完整的测试竞赛,则不能提升学生的测试经验。因此,经反复权衡,决定教师主讲性能测试,学生自学功能测试的解决方案。一方面,教师课前将历届测试大奖得主的经验分享及JMETER测试软件、测试得分点等以不同形式推给学生提前了解,然后课堂上重点内容重点讲解。性能测试问题很快得到了较好处理,部分学生经过练习,性能测试取得了满分的好成绩。另一方面,同一测试方向的学生结成学习小组,共同解决相似的测试问题,学生也明确了需要自学的测试工作。高效率的群体学习,使得大部分学生很快熟悉了各自测试方向的竞赛要求,并迅速进入测试训练状态。

2021年,中原工学院软件学院第一次组织学生参加了全国软件测试竞赛,以赛促学,从最开始的了解大赛、报名、安装环境、练习、参加大赛,每个环节都是师生共同面对的巨大挑战,每一步都离不开教师的引导,更离不开学生的积极配合。这不仅提升了课堂学习质量,学生通过竞赛或找到了学习目标,或明确了学习兴趣,或实现了自我突破,所有参与的学生都极大地锻炼了自学能力,并感受到了集体智慧的力量。中原工学院软件学院2019级网络方向学生主修高级程序语言是C++,而软件测试竞赛需要的语言环境全部是Java,测试脚本、测试用例、测试运行都需要Java实现,需要有极大勇气挑战自己。历经初赛、复赛,长达1个多月的准备时间,取得了3个省级三等奖,4个省级优胜奖的好成绩,如表1所列。

2.2项目实践

实践是提升学习能力的重要手段。测试大赛初赛结束后,小部分学生晋级省赛,大部分学生回归正常课堂。若测试大赛更多的是依靠个人兴趣及毅力坚持到底,则课堂实践学习就要更多依赖老师引导、激励。为了使学生真正理解测试行业并能从业测试行业工作,经过研究,最终决定抛弃最初测试个人项目的测试实践教学安排,转而投向开源项目的测试。

“禅道”是一款开源的国产软件项目管理软件,其版本迭代非常快。关于测试的管理流程,从建立测试小组,分配测试任务、测试执行、bug提交、缺陷修复等管理流程,全程使用“禅道”。布置实践任务的时候,鼓励学生测试“禅道”,并把测试发现的bug提交到“禅道”官网的论坛中,一方面是体现学生的个人测试能力,另一方面也提高自身在测试行业的关注度。部分学生在测试“禅道”候的确发现了缺陷,而教师关于测试对象、测试论坛、缺陷管理等提醒也使得学生看问题越来越长远,学生在学习中逐步具备了初步描绘自己职业发展的想法。以团队形式组建的项目测试小组,不仅加强了交流,也提升了合作能力,加深了学生之间的相互了解和友谊。

2.3教学相长

第一次测试课程的实践教学探索,参与改革的教师无形中需要投入更多地学习时间。为了保证教学内容紧跟行业发展,每次课程都能使学生有收获,教师都是提前组织即将学习的主题内容,在网上找各种视频及其他形式的资源,经过筛选,把最合适的视频及文本转发到学生群,安排给学生自学。然后,教师独自消化、总结,随时线上交流,相互探讨。最终,在课堂上以教师讲解或者学生分享等方式传达到更多学生,并留出时间开展测试练习,撰写测试报告。

学生在实践的过程中遇到各种问题,反过来能启发教师。在利用“禅道”管理软件进行测试的过程中,某学生发扬愚公移山、持之以恒的精神解决登录密码丢失的问题,其锲而不舍的学习精神值得表扬与肯定;有学生还聪明地发现免下载、免注册的“云禅道”,为大家提供了更快捷的使用方法;还有学生经过测试发现了“禅道”的一些缺陷。学生发现问题并独立解决问题的成长过程,让老师获得职业成就感。

3课程考核

学生的成绩与学生的学习过程紧密结合,综合考虑测试大赛的实践过程、测试环境安装或者测试流程相关视频的录制、测试报告、口头汇报、测试论文等各个实践环节,加权打分,该班级最终成绩打破了历史上最好期末考试成绩记录,54人中21人最终成绩90分以上,占比39%。但是,也有1人因为很多实践过程没有参与而不及格。期末成绩分布如图1所示。

分数并不能完全反映学生的学习收获情况,需要教师针对实际情况给与客观评价。比如,一部分从来没参加过任何競赛的学生,认为自己敢于实现从0到1的突破,就是最大的收获;有的学生因为参加竞赛更加明确了自己的努力方向;有的学生因为学习该课程对自己的专业更加有信心;也有学生不仅专业技能得到提升,更是从团队合作中获得了友情等不一而足。

4经验总结

采取上述形式打破常规组织教学,实际上任课教师最初也曾经动摇过,因为该课程是只有30学时的考查课,部分学生只希望获得相应学分。当教师要求他们投入更多的时间去参加竞赛,可能遭到拒绝,甚至可能对教师的教学评价成绩产生影响。但是,这种最接近工作场景的竞赛才能够最大限度地让学生体会测试的工作内容、了解行业的发展和需求,即使再困难也值得尝试。因此,首先要想办法让学生理解教师的良苦用心,主动配合。其次是调动学生的积极性,尽力帮助学生进入竞赛状态。

5改进措施

不断总结经验,继续完善以技能为导向的软件质量保证与测试课程改革,有效开展“两段式实践”教学,既能学习软件测试理论知识,又可以积累软件测试实践经验,为就业做好准备,形成成熟并可以推广的教学执行方案。

第一阶段围绕竞赛安排教学进度及教学内容。因为测试大赛初赛是在每年的10月底举行,所以学期开始首先安排大赛需要的功能测试理论知识,然后结合个人兴趣,围绕软件测试大赛报名、练习等开展实践学习,直到测试初赛结束;第二阶段以开源项目为测试对象安排教学工作。在测试实际项目的同时,强调测试用例设计的重要性及测试报告的规范性,合理分配测试工作,有计划地结合专业方向,重点传授与方向相关的测试工具的使用方法。

6结束语

本文围绕以实践为抓手的“软件测试”课程实践教学改革,以提升学生实践能力为目标,介绍了“软件测试”课程中创造性地加入测试竞赛、开源项目为测试对象的实践探索,并总结了实践教学经验,同时指出了后续的改进方向。

参考文献:

[1]吴潇雪,郑炜,慕德俊,等.基于Scrum方法的软件测试教学模式探索与实践[J].计算机教育,2018(2):74-77.

[2]郑霖娟,林昆.基于岗位核心能力的“软件测试技术”课程设计与实践[J].软件,2020,41(10):286-288.

[3]李雯睿,张鹏程,杨种学.基于主动学习策略的软件测试教学方法初探[J].计算机教育,2012(8):54-57.

[4]张维勤,张国锋.基于项目驱动教学模式的软件测试课程创新研究[J].信息与电脑,2020,32(17):243-244.

[5]刘晓荣,高兰德.基于技能大赛下的软件测试课程体系的探讨与研究[J].电脑知识与技术:学术版,2019,15(11):91-92.

作者简介:

贾晓辉(1972—),硕士,副教授,研究方向:知识图谱。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!