来源:华盛论文咨询网时间:2018-09-15所属栏目:科技论文
摘要:分析应用型本科院校软件测试课程的教学实际和培养目标,分别从现有教学模式的改进、实践教学方法、职业道德养成教育3方面进行探讨。
关键词:软件测试;教学改革;教学方法;职业道德
0引言
2010年6月,教育部宣布启动“卓越工程师教育培养计划”。“卓越工程师教育培养计划”是贯彻落实《国家中长期教育改革和发展规划纲要(2010—2020年)》和《国家中长期人才发展规划纲要(2010—2020年)》的重大改革项目,旨在培养造就一批创新能力强、适应经济社会发展需要的高质量各类型工程技术人才[1-2]。这项涉及逾千所高校400万工科专业学生的重大项目,将联合行业企业着力培养学生的实践与创新能力。
1教学中存在的问题
1.1课程知识体系单一
软件测试课程的教学通常是针对测试的基本概念、测试用例设计方法、测试各阶段的主要任务为主线展开的,就测试讲测试,而没有置软件测试的内容于软件工程的大背景下,与软件工程其他专业课的衔接也没有跟进。其结果就是学生知识体系的构建不够完整,学到的是条条块块的知识,而无法建立一个完整的软件工程知识体系。
1.2基本概念的讲授方法单一
软件测试课程涉及许多基本概念,如桩、驱动、路径覆盖、回归测试、吞吐量等,准确理解这些概念是顺利进行软件测试的基础。对于教师来讲,采用常规教学手段讲授清楚这些概念并不困难,而学生学习这些概念靠的是死背硬记,没有理解和掌握概念的含义。究其原因是理论教学和实践教学脱节严重,理论教学采用满堂灌的方式,很少与学生交流和互动,学生也没有机会在实践中深入理解这些概念。
1.3学生重视程度不够
一方面是由于软件工程类专业的课程设置多偏重于软件开发类课程,从程序设计语言到设计模式、架构设计,学生自然认为开发是软件工程的重中之重。反观测试类课程,只有一门软件测试技术课。另一方面,课程的内容在很大程度上引导学生去给现有的程序或软件找缺陷,学生也会认为只有不会编程的人才会去做测试。因此,学生对软件测试课程的重视程度不够,学习动力不足。
2教学模式的改进
2.1构建全面的知识体系
作为软件工程学科的分支,软件测试技术与软件工程理论有着密切的联系。因此,教师在教学过程中首先联系先修课程软件工程,重温软件生命周期,这样既可以消除学生对本课程的陌生与敬畏感,又可以为本课程内容的展开做好铺垫。讲授软件测试的过程和阶段时,会重申软件工程课程的相关内容,同时也可以比较软件工程中提到的瀑布型模型和当前软件开发中的V型模型,这样可以使学生将两门课程有机地联系起来进行学习。
在讲授缺陷管理和跟踪时,除了介绍常规的缺陷管理工具等内容外,还兼顾本课程的后续课程——软件项目管理,对软件项目管理的内容适当点拨,引领学生的思路从测试管理自然延伸到软件项目管理。
在授课过程中也注意到与并发课程内容的衔接和整合。如在讲授单元测试工具JUNIT时,会结合并发课程JavaWeb开发中SSH框架开发的内容,讲授JUNIT工具如何应用在SSH框架下进行单元测试。
综上,在本课程的教学过程中,同时兼顾课程的先修课、后续课和并发课的内容整合,使软件测试过程置于软件工程学科的背景之下,这样就打破了各门课程内容之间的壁垒,改善了彼此很少关联的传统课程教学模式,能够建立课程之间的有机联系。
2.2案例教学
在理论教学环节,重视采用案例教学手段。让学生带着问题去学,通过一个个具体问题的解决,将基本概念和原理的讲授置于实践的背景下,从而帮助学生准确理解重要概念。如,通过几组案例的介绍,强调软件测试的重要性,同时激发学生的学习兴趣,并由此引出软件测试的目的。明确软件测试的目的才能准确地定位测试,并更有效地进行测试,学生学习才有动力和目标。对于各阶段的测试方法和测试工具,选择一个简单的小程序或小型软件,边讲边演示。如在讲授单元测试的时候,以类Gcd(求两个数的最大公约数的类)为测试对象,结合讲授单元测试工具JUNIT用法。在讲授集成测试的时候,以类Environment(设定系统时间和日期的类,教师自编)为测试对象。在给学生展示类Environment的代码以后,学生可以通过现有的知识来判断,直接对这个类做单元测试是不可行的。通过提出对类Environment的测试问题,分析该测试问题,引出桩和驱动的概念,从而给出该问题的解决方案,即集成测试方法的讲授。在讲授性能测试、验收测试和测试管理的时候,选择以往学生的毕业设计项目作为样本,解析对该项目的测试过程。因为学生对这类项目的需求是十分了解的,而且案例项目来自本校高年级学生之手,自然会激起学生的极大兴趣。这样就可以顺利地展开对项目的需求分析、测试计划制定、测试环境搭建、测试用例设计、测试执行、测试结果分析及发布测试报告等测试环节。这样,寓重要概念和重要方法的讲授于实际问题的解决中,既可以激发学生的学习兴趣,又能加深他们对重要概念的理解。
综上所述,在软件测试课程的教学实践中,一方面注重从软件工程学科的宏观背景下讲授软件测试的基本流程,另一方面注重结合案例在微观项目中讲授软件测试概念和方法,从而打通课程间的壁垒,帮助学生快速构建知识体系,在实践中理解和掌握软件测试的重要概念。
2.3教师角色转换
传统教学模式中,教师占据主体地位,教师讲,学生听,学生容易产生依赖心理,甚至感到疲劳、枯燥。在教学实践中,我们的做法是让教学实施围绕某问题、任务或项目展开,以项目为载体,由教师引导学生自主学习和研究。如在讲授测试用例的设计方法时,以软件测试领域经典的测试问题(如nextDate问题、买枪问题等)为案例,要求学生以小组为单位讨论测试用例的设计方案。由每个小组派代表交流设计思路,最后由教师点评。
同时,针对本课程的重要知识点进行梳理,制作了7套时长10分钟左右的慕课,充分利用线上手段对这些重要知识点进行集中简短的讲授。
翻转课堂和慕课等现代化教学手段的实施,使学生从知识的被动接受者转变为主动建构者,这种方法极大调动了学生学习的积极性,让学生学会独立思考,综合运用所学知识解决实际问题;同时也锻炼了学生的表达沟通能力。
3实践教学
软件测试对学生的实践能力也有很高的要求。有效的实践教学是促进知识理解、培养动手能力的一个重要的环节。我们在实践教学环节改革方面也进行了积极探索。
实践教学分为课内实验和课程设计两个部分。课内实验作为理论课的有力补充,与课堂教学相辅相成,具有启发学生积极思考,深入理解理论课内容,达到理论联系实际的作用。内容安排上本着由浅入深、循序渐进的原则交叉安排了认知型、设计型、综合型3种类型的实验项目。认知型实验是基础实验,目的是让学生掌握一些软件测试工具的使用方法。我们选择了大多数企业测试部门最常用的测试工具,包括JUNIT、JMeter、QTP、Selenium、Bugzilla等。对于大多数被测软件来说,这些测试工具完全能够支撑整个软件测试过程。设计型实验是另一类基础实验,让学生通过设计实验方案将课堂所学理论知识应用于实践,进一步巩固理论基础,内容有黑盒测试、白盒测试、单元测试等。综合型实验是对知识点的综合应用,使学生理解和掌握软件测试技术和各种具体的测试方法在项目中的应用,感受软件测试项目的工作流程和实施细节,为后续的课程设计做好准备。综合型实验毕竟属于常规实践教学环节,规模和难度都会适当控制。高年级学生的毕业设计作品、软件测试中的经典问题等都作为综合实验的素材。综合实验一般包含2~3项软件测试的重要方法或者重要概念。如针对公交换乘查询软件(学生毕业设计作品)做功能测试,验收测试并利用工具实现缺陷管理和跟踪。课程设计是实践教学中非常重要的环节。理论教学和常规实践教学给学生打牢理论基础、奠定基本的操作技能,而课程设计则要求学生综合运用本课程及相关课程的知识解决实际的工程问题。课程设计安排在理论课程和常规实践教学结束后进行。学生自由组合为小组,分角色进行。在课程设计教学中,
我们应用了当今工程教育的CDIO理念。CDIO分别代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程[3-6]:“构思”侧重测试的需求分析和测试策略的制定;“设计”侧重测试用例设计和测试过程的设计;“实现”和“运作”侧重测试工具的选择、具体测试方案的实施。在课程设计中,我们选择软件企业的实际项目作为测试对象,结合企业提供的项目需求文档,从需求分析、测试方案设计、测试计划制定、测试用例设计到缺陷跟踪等都由学生独立完成。
在课程设计的教学和考核中,我们采取宽严相济的考核办法:严格要求学生自己动手设计方案并实施,杜绝个别学生拷贝的现象;严格验收和检查,要求学生编写规范化文档,并结合演示,随机抽取提问等手段,使学生在思考—实现—再思考中真正得到提高。同时营造一个比学赶帮超的学习氛围,鼓励学生发表自己的见解,鼓励学生放开手脚大胆实践。
4职业道德养成
卓越工程师不仅要能解决实际工程问题,而且还必须具备相应的社会意识、人文精神、诚信和职业道德[7]。对学生进行专业教育的同时,还要注意培养其职业道德。在课程教学中,让学生了解作为一名合格工程师所必须具备的素质与规范,并要求学生在未来的学习与实践环节中始终以工程师的道德标准与行为准则要求自己。我们教育学生要勤学好问,发现问题不放过,学会充分利用各种资源解决问题。我们提倡理论联系实际,要想真正学会测试,必须进行实际的测试。我们反对闭门造车,鼓励学生多了解行业动态,了解行业需求,有针对性地学习。我们教育学生要细心有耐心,软件测试是对人的技术和意志的考验,不细心就有可能与缺陷擦肩而过;没有耐心就无法将枯燥的测试进行到底。我们注重培养学生的团队精神和沟通能力,工程领域的工作绝非个人能力所及,必须学会汇集众人的智慧和力量。在团队中,还要学会与团队中各种角色的人进行有效、顺畅的沟通。
5结语
作为软件工程专业的重要基础课程,软件测试课程对传授软件测试技术,培养学生的工程实践能力都有重要作用。我们在软件测试技术课程教学过程中,探索出“强化基础,重视实践,着力提高动手能力”的教学理念,并注重学生职业道德的养成教育,为卓越工程师培养方式进行了积极探索。我们在教学过程中始终秉承这一理念,连续三年学生评教得分94.37(校平均得分90.96),连续三年督导评价得分92.21(校平均得分90.12)。
我们将在教学实践中继续探索,不断总结经验教训,期望能为卓越工程师培养做些实事,为培养符合现代企业要求的工程技术人才做出自己的贡献。
参考文献:
[1]新华社.国家中长期教育改革和发展规划纲要(2010—2020年)[EB/OL].[2017-07-29].http://www.gov.cn/jrzg/2010-07/29/content_1667143.htm.
[2]新华社.国家中长期人才发展规划纲要(2010—2020年)[EB/OL].[2017-08-30].http://www.gov.cn/jrzg/2010-06/06/content_1621777.htm.
[3]康全礼,丁飞己.中国CDIO工程教育模式研究的回顾与反思[J].高等工程教育研究,2016(4):40-46.
[4]谢爱娟,曹剑瑜,罗士平,等.CDIO视域下构建“五位一体”实验教学新模式[J].教学研究,2015,38(1):98-101.
[5]汪军,强俊.基于CDIO理念的软件工程专业人才培养模式的研究[J].重庆工商大学学报(自然科学版),2015,32(6):70-74.
[6]成淑萍.TOPCARES-CDIO模式下软件测试课程教学改革[J].软件导刊,2015,14(5):187-189.
[7]隋秀凛,吴秋凤,段铁群,等.卓越工程师人才培养管理模式探索与实践[J].大学教育,2016,(5):165-167.