论文部分内容阅读
【摘 要】在分析软件测试行业人才需求现状和课程教学现状的基础上,根据软件测试人员的职业能力要求,本文探讨了软件测试课程设计理念和思路、教学模式、教学方法、教师队伍、实验实训条件和考核方式等方面的改革和建设,更好地培养学生的软件测试技术应用能力。
【关键词】软件测试;应用型人才;培养模式;课程群
据前程无忧网数据显示,去年国内软件测试人才缺口高达20万,今年有望突破30万人。目前国内软件测试和开发人员比例大约在1:4-1:5,而国外测试和开发人员比例为1:1,微软测试人员和开发人员的比例已达到2:1。软件测试人才正在成为我国软件行业目前最紧缺的人才之一。随着我国软件产业的迅速发展,软件测试人才的地位正在逐年提升,这种供需矛盾将变得越发突出。
目前,国内软件测试人才的培训[1]主要有三种机构:企业、高等院校和IT培训机构。企业培养的人才大多是通过参与项目自己摸索的软件开发人员,由于缺乏对软件测试全面的认识,在测试思想、技能、思维方式、沟通能力等方面都需要进一步提高。高校培养出来的人才具备一定理论知识,但动手能力较差,进入企业后需要再培养,不能立即到岗。培训机构则能弥补前两种方式的不足,但价格昂贵。
一、软件测试课程教学现状
(一)学生学习枯燥,兴趣低
软件测试是计算机专业课,课程内容理论性和操作性都很强,并且需要学习了解的自动化测试工具种类繁多。目前各个高校在开设这门课程时,大多数还停留在理论教学阶段。教师准备好课件,学生拿着课本,首先给出书上官方的定义和自己的解释,然后结合一些课本上或自己参与的项目,给出实例证明这些理论。学生容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。
(二)软件测试实验开展不充分,学生实践能力弱
软件测试知识点众多,理论内容的授课量占绝大部分[2],实验课时数仅占到四分之一左右。由于实验时间、实践环境有限,日常实验教学都是验证性的小实验。由于没有一个实际的面向企业的项目支撑,很多测试过程难以进行,比如集成测试、性能测试、验收测试等等。通过对从事软件测试方向工作的毕业生就业情况调查发现,软件企业认为软件测试课程理论丰富,但还存在学生实践能力不足、测试工程师职业素质有待进一步提高等诸多问题。
(三)教师缺乏实际软件测试经验
软件测试行业发展迅速,软件测试工具种类多,更新快。软件测试这门课程实践性较强,高校计算机教师大多数软件项目开发测试经验不足[3],对软件公司软件项目研发测试过程没有切身的体会。教师在讲授这门课程时没有实际的软件项目案例可以操作,实践教学显得吃力,很难给学生软件测试方面的经验知识。
面对软件测试人才的社会需求紧迫性和软件测试教学现状,人才培养单位应该扩大软件测试人才培养规模,总结软件测试知识点,改革教学方法,培养学生兴趣,提高教学质量。
二、软件测试工程师职业能力需求
为更好地培养学生的软件测试工程师职业素质[4][5] [6],提高学生的就业率和用人单位的满意度,充分分析软件测试工程师的职业能力要求。
(一)素质要求[4][5]
1、具有团队合作精神。
2、有较强的责任感及进取精神。
3、细心、耐心,具备逆向思维。
4、技术方面的基本素质,熟悉系统的应用,熟悉办公软件的应用,熟悉基本的测试流程;熟悉测试管理工具的应用。
5、具有测试人员的学习能力、领悟能力。
6、对行业具有信心,对测试的信心,相信软件一直存在BUG。
7、良好的英语阅读和写作。
8、良好的语言及文字表达。
9、较好的沟通技巧。
10、怀疑精神具有测试人员必须保持的怀疑态度。
11、捕获用户观点的能力,强烈的质量追求,对细节的关注。
(二)专业能力要求[6]
1、對Windows、Linux、Unix等大型主流操作系统的熟练掌握能力。
2、具备快速进行应用系统部署和测试环境搭建的能力。
3、测试人员必须掌握目前主流的程序设计语言,比如C、C++、JAVA、C#、VB等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。
4、熟练掌握SQL Server、Oracle、DB2等一种或多种数据库系统的使用,熟悉使用SQL语言。
5、对信息安全知识的基本掌握。
6、必须深刻理解和熟练掌握软件测试基础理论与技术。
7、精通各种测试技术,能够手工或利用相关工具进行单元测试。
8、能够进行测试用例设计、测试执行、编写缺陷报告。
9、熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力。
10、掌握测试管理相关知识和软件。
11、掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。
(三)知识结构要求
1、软件知识:数据结构、操作系统、面向对象程序设计、数据库原理、C程序设计语言、WEB技术、数据仓库与数据挖掘、软件工程。
2、硬件知识:数字逻辑、微机原理与接口、计算机组成原理、计算机系统结构。
3、网络知识:计算机网络技术、计算机网络安全。
4、人文、社会学基础:马克思主义原理、道德与法律、中华民族历史、大学语文、大学英语。
5、数学基础:高等数学、线性代数、概率统计。
三、软件测试课程设计理念和思路 根据软件测试工程的职业能力要求,对软件测试课程我们重新把握课程的设计理念和思路。
(一)课程设计理念
1、与企业共建基于工作过程的课程体系
根据专业办学的定位及特色,《软件测试》课程的设计理念是以软件测试员/测试工程师岗位需求为依据,以培养学生使用自动化测试技术进行软件测试的职业能力为主要目标,以测试工作的典型工作任务为导向,坚持以能力为本位的设计原则,制定突出企業应用能力和素养的课程标准,构建基于工作过程的系统化课程体系。课程组通过开展课程标准研讨会和技术培训会等形式,听取企业专家的建议,修订软件测试课程的内容,保证课程内容与企业用人需求同步;在课程功能上注重学生应用能力的培养,构建以掌握软件测试应用能力为特征的理实一体化的教学内容,做到强化技能、提升业务素质,提高学生的就业竞争力和实际工作能力。
2、和相关课程构成课程群,实现企业应用项目开发过程的案例教学环境
立足于培养满足企业应用的软件项目开发需要的应用型人才,本课程以真实的软件实例项目测试任务和过程为依据,以现代教学理念为指导,精心进行教学设计。
在构建课程体系[7]时,由专业建设及教学指导委员会,充分调查分析不断变化的市场,以企业应用软件项目开发为切入点,构建基于软件项目开发过程平台。将《Java面向对象程序设计》、《数据库原理及应用》、《软件工程》、《软件测试》、《软件项目综合实训》这5门课程,按照专业培养目标,掌握计算机软件技术所必需的理论知识和专业技能,具有较强实践能力,能在软件项目研发测试一线从事软件项目需求分析、设计、编程、测试和软件产品发布等工作的高素质应用型专业人才的要求,对应“软件工程师”、“软件测试师”“数据库工程师”等行业职业特征,以项目为载体,形成一个有机整体,整合成“基于企业应用软件项目开发过程”,组建了课程群。其中《Java面向对象程序设计》、《数据库原理及应用》是专业核心基础课程,《软件工程》、《软件测试》、《软件项目综合实训》是专业核心必修课。通过“软件项目的需求分析、设计、编程和测试技术”这个链将这五门课程紧紧联系在一起,并能带动软件技术、网络工程、计算机信息管理、计算机应用技术等几个专业的协调发展。
(二)设计思路
1、以软件测试工程师对软件测试的能力要求为主线,设计课程体系,强化“工程属性”,突出“项目色彩”。
在课程体系设计中,课程组以软件测试工程师对软件测试的能力要求为主线,整合“JAVA面向对象程序设计”、“数据库原理及应用”、“软件工程”并融合到以多种实际企业项目作为案例的“软件项目综合实训”实践课程中,经过优化,强化课程的“工程属性”和“企业项目开发色彩”,将原来在传统课堂教学中仅仅通过简单实验无法实现的“集成测试”、“性能测试”、“系统测试”、“验收测试”等环节在实际工程项目实训中得到实现,并努力培养学生岗位职业能力。在课程教学中,坚持以实际项目案例中的工作任务为目标,融理论教学与实践教学为一体,以案例教学为导向,结合学生考取软件测试工程师资格证书的实际需要,加强学生职业能力和综合素质的培养,提高学生就业竞争力。
2、以企业工程能力培养为重点,实行分阶段培养模式
根据企业工程能力的形成过程,课程组将教学内容划分为基础理论阶段、技术应用阶段、职业发展阶段三个阶段。其中,基础理论阶段包括测试基础理论模块,主要介绍软件测试的基本理论与技术,测试用例设计和软件测试流程,侧重培养学生的测试思维,了解并掌握软件产品质量保证的基本思想和基本测试流程,以及软件测试的方法、技术,使学生能够设计出测试案例并通过手动测试实现测试案例,为全面掌握软件测试技术,后续实施测试和测试项目管理打下坚实的基础。技术应用阶段包括测试技术应用模块,主要介绍主流的自动化测试工具,包括IBM系列测试工具、HP QTP、HP LoadRunner,企业级项目的测试实施,培养学生将测试知识和技术应用于自动化测试实施的能力。职业发展阶段包括测试项目管理和职业素质教育两个模块,主要介绍软件测试项目管理的相关技术和方法、运用工程项目方式管理软件测试过程、测试企业工作模式和软件测试人员必备素质,培养学生的项目管理能力、团队协作能力和求职应聘能力。
适当加入游戏测试、手机测试、笔记本测试等学生感兴趣的内容。我们了解到学生对游戏测试这部分内容很感兴趣,那些平时听课不太认真的学生在这个问题上都举手要说上几句,跃跃欲试,也都能说出一二。所以,课程组在软件测试这门课程中经常讨论一些游戏测试这部分内容,以引起学生的学习兴趣。
四、改革教学模式和教学方法
(一)教学模式
本着“教师为主导,学生为主体”的思想,采用双证培养、分阶段培养和教学做评一体化教学模式[8]。
1、双证培养教学模式
实行“双证培养”教学模式,将学历教育与技能学习无缝对接,学生毕业后不仅能获得国家承认大学学历证书,同时还将获得国家劳动部高级职业技能认证证书。根据学生的能力特点,推荐学生考取软件测试助理工程师、软件测试工程师、软件质量管理工程师、注册软件质量保证师(国际认证)等资格证书。双证教育使学生专业能力更强、职业素养更高、综合素质更好、更符合企业用人标准。
2、教学做评一体化教学模式
将教学场所直接设在实训实验室,师生双方边教边学边做,理论和实践交替进行,把课堂教学转向工作情境,课堂由教师为主转向以学生为中心,突出学生动手能力和专业技能的培养,充分调动和激发学生学习兴趣。学生真正变成了学习的主人,而老师只是一个引导者或答疑解惑者,可以培养学生的终生学习能力,对加强学生的计算机动手操作能力和解决实际问题的能力也有很大好处。
最后教师跟大家一起对实验结果进行讲评,并对表现优秀的学生给予鼓励,同学们情绪高涨,学习积极性高。 (二)教学方法
根据学生的实际情况,综合采用多种教学方法[9][10]。
1、项目导向教学法
以从企业精选的项目为载体,在授课过程中对项目进行分解,根据学生的个性和他们的意愿分配不同的角色,并引导学生练习操作,体验项目流程,从而形成规范的开发意识和良好的IT职业素质。学生在校内所学习到的软件开发中的各类案例,在实际工作中能够及早地进行规划。
本课程以物流信息网这个项目为主线,把整个课程的教学演变成一系列的教学情境。按照实际工作中项目開发流程的顺序,依次展开,将“显性”的知识灌输,变为“隐性”的能力培养。通过具体项目的实施,引导学生在完成项目的过程中,掌握知识,培养能力。
2、任务驱动教学法
在课堂教学活动中,如果采用传统教学方法,很难激发学生学习兴趣。应该采用任务驱动教学方法,把一个项目分解为若干个大任务,每一个大任务,又分解为若干个小任务,将任务资料发给学生。学生在教师的引导下,课下先要进行消化,然后查阅各种必要的资料,理解知识并思考提出解决问题的方法。课上教师答复学生的问题,并引导学生更深层次的思考。通过这种方法充分调动学生的学习积极性,提高学习兴趣,使学生既学会理论知识又学会用理论知识解决实际工程中的问题。
3、启发式教学法
教师根据课程教学目的、内容、学生的知识水平和认知规律,采用启发诱导方法传授知识。该方法能够充分调动学生学习的积极性、主动性,促使学生独立思考、判断、归纳解答。能较好的培养学生学习能力,达到触类旁通的教学效果。
4、小组教学法
将班内学生分成若干个测试小组,每小组成员不超过7人,每组分配不同的软件项目任务。小组成员模拟与体验软件测试全过程工作职位和角色,使学生全过程适应工作职位的要求。
各项目小组在测试项目过程中,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标,并进行回归测试,以实现软件测试各单项专业知识与技能整合运用的目标。在整个测试过程可以体现“学以致用”的思想,实现理论与实践相结合。
通过演练项目开发测试,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。
五、教师队伍建设
加强双师队伍[11]建设,坚持“引进来,走出去”原则,积极引进具有企业开发经验的高素质人才进行课程教学和实验指导,同时注重本课题组青年教师队伍的培养。采用分批次选派青年教师参加山东大学齐鲁软件学院暑期实训和定期组织青年教师去软件公司实习等方式,将企业的软件测试经验直接带到教学中,提高教师的教学水平。
我们定期引进一些软件公司的软件测试人员或者聘请这方面的专业人士为教师、学生做定期讲座,以弥补我们在教学实践方面的缺陷。
六、实验实训条件建设
为培养应用型人才,本课程注重从不同侧面提高学生的实践能力。一方面,强化课内实验教学,在校内建有多个实训实验室,另一方面,与校外多家企业建立合作关系,为学生提供实训实习平台,开展产学研合作,构建校企合作培养人才的新模式。
本课程组注重密切与行业和企业的联系,与多家软件公司进行长期合作,建立了校外实习实训基地[12],为学生提供了生产性实训和顶岗实习的场所,在真实的职业环境中完成真实软件产品的开发,体验企业文化,培养职业态度和习惯。学生毕业后可成为这些公司的正式员工,真正实现了学校、企业、学生三方受益。
七、改革考核方式
大胆改革课程考核方式[13],采用30%平时成绩+30%实验成绩+10%项目考核成绩+30%期末考试成绩方式。平时成绩主要考核学生的课堂讨论情况、课后作业完成情况及课后自学情况。实验成绩根据学生在实验中的测试用例设计和操作情况,以及测试小组的分工合作情况给以评分。项目考核主要采用项目答辩的形式考核学生对基础知识的理解和掌握情况,由教师、行业专家、学生代表组成专家组给予评分。这种考核方式更注重的是对学生学习过程和实践操作水平的考核,避免学生为考试而学习,死记硬背现象。
八、小结
通过对基于工作过程的软件测试应用型人才培养模式的探索研究,学院已取得了实质性进展,建立了软件测试课程教学团队和软件测试实验实训基地。学生的软件测试综合应用能力有明显的提升,得到用人单位的好评,提高了学生的就业率。
参考文献:
[1]龚宇辉.软件测试课程教学改革研究[J].教育与职业,2010(24):130-131.
[2]温艳冬,石冬凌.软件测试课程三级项目教学实践[J].计算机教育,2010(22):77-79.
[3]胡宏银.软件测试课程教学方法探讨与实践[J].计算机教育,2007(03):11-13.
[4]http://baike.baidu.com/link?url=5xO-IodKMsEhsyUjQhIeqybDGR-8AypYffsnAnZdMWpLRpgEhLehfzGEROxq9fIC.
[5]孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.
[6]钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报(自然科学版),2007(03) :89-92.
[7]田小霞.软件测试人才培养的探索[J].福建电脑,2013(02):181-182.
[8]刘育熙,耿雪春.面向应用的软件测试人才综合能力培养模式研究[J].教育与职业,2009(11):111-112.
[9]范洪辉,朱洪锦,朱广萍.“软件测试技术与软件质量”课程教学改革探索[J].江苏技术师范学院学报,2012(12):151-153.
[10]周改云,马丽.行动导向教学在软件测试技术课程中的应用[J].电子测试,2013(04):192-194.
[11]兰景英.构建应用型软件测试人才培养实践教学体系[J].黑龙江教育学院学报,2011,(05):78-80.
[12]兰景英.应用型软件测试人才培养模式探索与实践[J].潍坊教育学院学报, 2011,(04):78-80.
[13]叶振,杜斌.开放式软件测试教学实践探索[J].现代企业教育,2011(01):140-141.
基金项目:
山东协和学院教改项目(2012xh01)。
作者简介:
李兆翠(1980.1-),女,山东莒南人,硕士,讲师,研究方向:软件工程。
殷晓峰(1956.10-),男,山东济南人,本科,应用研究员,研究方向:计算机应用。
赵淑芳(1980.12-),女,山东曲阜人,本科,院长助理,研究方向:计算机应用。
【关键词】软件测试;应用型人才;培养模式;课程群
据前程无忧网数据显示,去年国内软件测试人才缺口高达20万,今年有望突破30万人。目前国内软件测试和开发人员比例大约在1:4-1:5,而国外测试和开发人员比例为1:1,微软测试人员和开发人员的比例已达到2:1。软件测试人才正在成为我国软件行业目前最紧缺的人才之一。随着我国软件产业的迅速发展,软件测试人才的地位正在逐年提升,这种供需矛盾将变得越发突出。
目前,国内软件测试人才的培训[1]主要有三种机构:企业、高等院校和IT培训机构。企业培养的人才大多是通过参与项目自己摸索的软件开发人员,由于缺乏对软件测试全面的认识,在测试思想、技能、思维方式、沟通能力等方面都需要进一步提高。高校培养出来的人才具备一定理论知识,但动手能力较差,进入企业后需要再培养,不能立即到岗。培训机构则能弥补前两种方式的不足,但价格昂贵。
一、软件测试课程教学现状
(一)学生学习枯燥,兴趣低
软件测试是计算机专业课,课程内容理论性和操作性都很强,并且需要学习了解的自动化测试工具种类繁多。目前各个高校在开设这门课程时,大多数还停留在理论教学阶段。教师准备好课件,学生拿着课本,首先给出书上官方的定义和自己的解释,然后结合一些课本上或自己参与的项目,给出实例证明这些理论。学生容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。
(二)软件测试实验开展不充分,学生实践能力弱
软件测试知识点众多,理论内容的授课量占绝大部分[2],实验课时数仅占到四分之一左右。由于实验时间、实践环境有限,日常实验教学都是验证性的小实验。由于没有一个实际的面向企业的项目支撑,很多测试过程难以进行,比如集成测试、性能测试、验收测试等等。通过对从事软件测试方向工作的毕业生就业情况调查发现,软件企业认为软件测试课程理论丰富,但还存在学生实践能力不足、测试工程师职业素质有待进一步提高等诸多问题。
(三)教师缺乏实际软件测试经验
软件测试行业发展迅速,软件测试工具种类多,更新快。软件测试这门课程实践性较强,高校计算机教师大多数软件项目开发测试经验不足[3],对软件公司软件项目研发测试过程没有切身的体会。教师在讲授这门课程时没有实际的软件项目案例可以操作,实践教学显得吃力,很难给学生软件测试方面的经验知识。
面对软件测试人才的社会需求紧迫性和软件测试教学现状,人才培养单位应该扩大软件测试人才培养规模,总结软件测试知识点,改革教学方法,培养学生兴趣,提高教学质量。
二、软件测试工程师职业能力需求
为更好地培养学生的软件测试工程师职业素质[4][5] [6],提高学生的就业率和用人单位的满意度,充分分析软件测试工程师的职业能力要求。
(一)素质要求[4][5]
1、具有团队合作精神。
2、有较强的责任感及进取精神。
3、细心、耐心,具备逆向思维。
4、技术方面的基本素质,熟悉系统的应用,熟悉办公软件的应用,熟悉基本的测试流程;熟悉测试管理工具的应用。
5、具有测试人员的学习能力、领悟能力。
6、对行业具有信心,对测试的信心,相信软件一直存在BUG。
7、良好的英语阅读和写作。
8、良好的语言及文字表达。
9、较好的沟通技巧。
10、怀疑精神具有测试人员必须保持的怀疑态度。
11、捕获用户观点的能力,强烈的质量追求,对细节的关注。
(二)专业能力要求[6]
1、對Windows、Linux、Unix等大型主流操作系统的熟练掌握能力。
2、具备快速进行应用系统部署和测试环境搭建的能力。
3、测试人员必须掌握目前主流的程序设计语言,比如C、C++、JAVA、C#、VB等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。
4、熟练掌握SQL Server、Oracle、DB2等一种或多种数据库系统的使用,熟悉使用SQL语言。
5、对信息安全知识的基本掌握。
6、必须深刻理解和熟练掌握软件测试基础理论与技术。
7、精通各种测试技术,能够手工或利用相关工具进行单元测试。
8、能够进行测试用例设计、测试执行、编写缺陷报告。
9、熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力。
10、掌握测试管理相关知识和软件。
11、掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。
(三)知识结构要求
1、软件知识:数据结构、操作系统、面向对象程序设计、数据库原理、C程序设计语言、WEB技术、数据仓库与数据挖掘、软件工程。
2、硬件知识:数字逻辑、微机原理与接口、计算机组成原理、计算机系统结构。
3、网络知识:计算机网络技术、计算机网络安全。
4、人文、社会学基础:马克思主义原理、道德与法律、中华民族历史、大学语文、大学英语。
5、数学基础:高等数学、线性代数、概率统计。
三、软件测试课程设计理念和思路 根据软件测试工程的职业能力要求,对软件测试课程我们重新把握课程的设计理念和思路。
(一)课程设计理念
1、与企业共建基于工作过程的课程体系
根据专业办学的定位及特色,《软件测试》课程的设计理念是以软件测试员/测试工程师岗位需求为依据,以培养学生使用自动化测试技术进行软件测试的职业能力为主要目标,以测试工作的典型工作任务为导向,坚持以能力为本位的设计原则,制定突出企業应用能力和素养的课程标准,构建基于工作过程的系统化课程体系。课程组通过开展课程标准研讨会和技术培训会等形式,听取企业专家的建议,修订软件测试课程的内容,保证课程内容与企业用人需求同步;在课程功能上注重学生应用能力的培养,构建以掌握软件测试应用能力为特征的理实一体化的教学内容,做到强化技能、提升业务素质,提高学生的就业竞争力和实际工作能力。
2、和相关课程构成课程群,实现企业应用项目开发过程的案例教学环境
立足于培养满足企业应用的软件项目开发需要的应用型人才,本课程以真实的软件实例项目测试任务和过程为依据,以现代教学理念为指导,精心进行教学设计。
在构建课程体系[7]时,由专业建设及教学指导委员会,充分调查分析不断变化的市场,以企业应用软件项目开发为切入点,构建基于软件项目开发过程平台。将《Java面向对象程序设计》、《数据库原理及应用》、《软件工程》、《软件测试》、《软件项目综合实训》这5门课程,按照专业培养目标,掌握计算机软件技术所必需的理论知识和专业技能,具有较强实践能力,能在软件项目研发测试一线从事软件项目需求分析、设计、编程、测试和软件产品发布等工作的高素质应用型专业人才的要求,对应“软件工程师”、“软件测试师”“数据库工程师”等行业职业特征,以项目为载体,形成一个有机整体,整合成“基于企业应用软件项目开发过程”,组建了课程群。其中《Java面向对象程序设计》、《数据库原理及应用》是专业核心基础课程,《软件工程》、《软件测试》、《软件项目综合实训》是专业核心必修课。通过“软件项目的需求分析、设计、编程和测试技术”这个链将这五门课程紧紧联系在一起,并能带动软件技术、网络工程、计算机信息管理、计算机应用技术等几个专业的协调发展。
(二)设计思路
1、以软件测试工程师对软件测试的能力要求为主线,设计课程体系,强化“工程属性”,突出“项目色彩”。
在课程体系设计中,课程组以软件测试工程师对软件测试的能力要求为主线,整合“JAVA面向对象程序设计”、“数据库原理及应用”、“软件工程”并融合到以多种实际企业项目作为案例的“软件项目综合实训”实践课程中,经过优化,强化课程的“工程属性”和“企业项目开发色彩”,将原来在传统课堂教学中仅仅通过简单实验无法实现的“集成测试”、“性能测试”、“系统测试”、“验收测试”等环节在实际工程项目实训中得到实现,并努力培养学生岗位职业能力。在课程教学中,坚持以实际项目案例中的工作任务为目标,融理论教学与实践教学为一体,以案例教学为导向,结合学生考取软件测试工程师资格证书的实际需要,加强学生职业能力和综合素质的培养,提高学生就业竞争力。
2、以企业工程能力培养为重点,实行分阶段培养模式
根据企业工程能力的形成过程,课程组将教学内容划分为基础理论阶段、技术应用阶段、职业发展阶段三个阶段。其中,基础理论阶段包括测试基础理论模块,主要介绍软件测试的基本理论与技术,测试用例设计和软件测试流程,侧重培养学生的测试思维,了解并掌握软件产品质量保证的基本思想和基本测试流程,以及软件测试的方法、技术,使学生能够设计出测试案例并通过手动测试实现测试案例,为全面掌握软件测试技术,后续实施测试和测试项目管理打下坚实的基础。技术应用阶段包括测试技术应用模块,主要介绍主流的自动化测试工具,包括IBM系列测试工具、HP QTP、HP LoadRunner,企业级项目的测试实施,培养学生将测试知识和技术应用于自动化测试实施的能力。职业发展阶段包括测试项目管理和职业素质教育两个模块,主要介绍软件测试项目管理的相关技术和方法、运用工程项目方式管理软件测试过程、测试企业工作模式和软件测试人员必备素质,培养学生的项目管理能力、团队协作能力和求职应聘能力。
适当加入游戏测试、手机测试、笔记本测试等学生感兴趣的内容。我们了解到学生对游戏测试这部分内容很感兴趣,那些平时听课不太认真的学生在这个问题上都举手要说上几句,跃跃欲试,也都能说出一二。所以,课程组在软件测试这门课程中经常讨论一些游戏测试这部分内容,以引起学生的学习兴趣。
四、改革教学模式和教学方法
(一)教学模式
本着“教师为主导,学生为主体”的思想,采用双证培养、分阶段培养和教学做评一体化教学模式[8]。
1、双证培养教学模式
实行“双证培养”教学模式,将学历教育与技能学习无缝对接,学生毕业后不仅能获得国家承认大学学历证书,同时还将获得国家劳动部高级职业技能认证证书。根据学生的能力特点,推荐学生考取软件测试助理工程师、软件测试工程师、软件质量管理工程师、注册软件质量保证师(国际认证)等资格证书。双证教育使学生专业能力更强、职业素养更高、综合素质更好、更符合企业用人标准。
2、教学做评一体化教学模式
将教学场所直接设在实训实验室,师生双方边教边学边做,理论和实践交替进行,把课堂教学转向工作情境,课堂由教师为主转向以学生为中心,突出学生动手能力和专业技能的培养,充分调动和激发学生学习兴趣。学生真正变成了学习的主人,而老师只是一个引导者或答疑解惑者,可以培养学生的终生学习能力,对加强学生的计算机动手操作能力和解决实际问题的能力也有很大好处。
最后教师跟大家一起对实验结果进行讲评,并对表现优秀的学生给予鼓励,同学们情绪高涨,学习积极性高。 (二)教学方法
根据学生的实际情况,综合采用多种教学方法[9][10]。
1、项目导向教学法
以从企业精选的项目为载体,在授课过程中对项目进行分解,根据学生的个性和他们的意愿分配不同的角色,并引导学生练习操作,体验项目流程,从而形成规范的开发意识和良好的IT职业素质。学生在校内所学习到的软件开发中的各类案例,在实际工作中能够及早地进行规划。
本课程以物流信息网这个项目为主线,把整个课程的教学演变成一系列的教学情境。按照实际工作中项目開发流程的顺序,依次展开,将“显性”的知识灌输,变为“隐性”的能力培养。通过具体项目的实施,引导学生在完成项目的过程中,掌握知识,培养能力。
2、任务驱动教学法
在课堂教学活动中,如果采用传统教学方法,很难激发学生学习兴趣。应该采用任务驱动教学方法,把一个项目分解为若干个大任务,每一个大任务,又分解为若干个小任务,将任务资料发给学生。学生在教师的引导下,课下先要进行消化,然后查阅各种必要的资料,理解知识并思考提出解决问题的方法。课上教师答复学生的问题,并引导学生更深层次的思考。通过这种方法充分调动学生的学习积极性,提高学习兴趣,使学生既学会理论知识又学会用理论知识解决实际工程中的问题。
3、启发式教学法
教师根据课程教学目的、内容、学生的知识水平和认知规律,采用启发诱导方法传授知识。该方法能够充分调动学生学习的积极性、主动性,促使学生独立思考、判断、归纳解答。能较好的培养学生学习能力,达到触类旁通的教学效果。
4、小组教学法
将班内学生分成若干个测试小组,每小组成员不超过7人,每组分配不同的软件项目任务。小组成员模拟与体验软件测试全过程工作职位和角色,使学生全过程适应工作职位的要求。
各项目小组在测试项目过程中,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标,并进行回归测试,以实现软件测试各单项专业知识与技能整合运用的目标。在整个测试过程可以体现“学以致用”的思想,实现理论与实践相结合。
通过演练项目开发测试,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。
五、教师队伍建设
加强双师队伍[11]建设,坚持“引进来,走出去”原则,积极引进具有企业开发经验的高素质人才进行课程教学和实验指导,同时注重本课题组青年教师队伍的培养。采用分批次选派青年教师参加山东大学齐鲁软件学院暑期实训和定期组织青年教师去软件公司实习等方式,将企业的软件测试经验直接带到教学中,提高教师的教学水平。
我们定期引进一些软件公司的软件测试人员或者聘请这方面的专业人士为教师、学生做定期讲座,以弥补我们在教学实践方面的缺陷。
六、实验实训条件建设
为培养应用型人才,本课程注重从不同侧面提高学生的实践能力。一方面,强化课内实验教学,在校内建有多个实训实验室,另一方面,与校外多家企业建立合作关系,为学生提供实训实习平台,开展产学研合作,构建校企合作培养人才的新模式。
本课程组注重密切与行业和企业的联系,与多家软件公司进行长期合作,建立了校外实习实训基地[12],为学生提供了生产性实训和顶岗实习的场所,在真实的职业环境中完成真实软件产品的开发,体验企业文化,培养职业态度和习惯。学生毕业后可成为这些公司的正式员工,真正实现了学校、企业、学生三方受益。
七、改革考核方式
大胆改革课程考核方式[13],采用30%平时成绩+30%实验成绩+10%项目考核成绩+30%期末考试成绩方式。平时成绩主要考核学生的课堂讨论情况、课后作业完成情况及课后自学情况。实验成绩根据学生在实验中的测试用例设计和操作情况,以及测试小组的分工合作情况给以评分。项目考核主要采用项目答辩的形式考核学生对基础知识的理解和掌握情况,由教师、行业专家、学生代表组成专家组给予评分。这种考核方式更注重的是对学生学习过程和实践操作水平的考核,避免学生为考试而学习,死记硬背现象。
八、小结
通过对基于工作过程的软件测试应用型人才培养模式的探索研究,学院已取得了实质性进展,建立了软件测试课程教学团队和软件测试实验实训基地。学生的软件测试综合应用能力有明显的提升,得到用人单位的好评,提高了学生的就业率。
参考文献:
[1]龚宇辉.软件测试课程教学改革研究[J].教育与职业,2010(24):130-131.
[2]温艳冬,石冬凌.软件测试课程三级项目教学实践[J].计算机教育,2010(22):77-79.
[3]胡宏银.软件测试课程教学方法探讨与实践[J].计算机教育,2007(03):11-13.
[4]http://baike.baidu.com/link?url=5xO-IodKMsEhsyUjQhIeqybDGR-8AypYffsnAnZdMWpLRpgEhLehfzGEROxq9fIC.
[5]孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.
[6]钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报(自然科学版),2007(03) :89-92.
[7]田小霞.软件测试人才培养的探索[J].福建电脑,2013(02):181-182.
[8]刘育熙,耿雪春.面向应用的软件测试人才综合能力培养模式研究[J].教育与职业,2009(11):111-112.
[9]范洪辉,朱洪锦,朱广萍.“软件测试技术与软件质量”课程教学改革探索[J].江苏技术师范学院学报,2012(12):151-153.
[10]周改云,马丽.行动导向教学在软件测试技术课程中的应用[J].电子测试,2013(04):192-194.
[11]兰景英.构建应用型软件测试人才培养实践教学体系[J].黑龙江教育学院学报,2011,(05):78-80.
[12]兰景英.应用型软件测试人才培养模式探索与实践[J].潍坊教育学院学报, 2011,(04):78-80.
[13]叶振,杜斌.开放式软件测试教学实践探索[J].现代企业教育,2011(01):140-141.
基金项目:
山东协和学院教改项目(2012xh01)。
作者简介:
李兆翠(1980.1-),女,山东莒南人,硕士,讲师,研究方向:软件工程。
殷晓峰(1956.10-),男,山东济南人,本科,应用研究员,研究方向:计算机应用。
赵淑芳(1980.12-),女,山东曲阜人,本科,院长助理,研究方向:计算机应用。