面向企业需求的《软件测试》课程教学改革探讨

2016-03-29 06:18崔春英
赤峰学院学报·自然科学版 2016年6期

崔春英,李 靖

(周口师范学院 计算机科学与技术学院,河南 周口 466001)



面向企业需求的《软件测试》课程教学改革探讨

崔春英,李靖

(周口师范学院计算机科学与技术学院,河南周口466001)

摘要:为满足企业对软件测试人才的需求,高校软件测试课程的教学内容和教学方式应做灵活改革.从岗位设置、专业技能要求、专业素质等方面探讨了企业对软件测试人员的实际需求,分析了目前高校软件测试教学现状,提出了加强校企合作、合理安排教学内容、灵活采用多种教学手段等软件测试教学改革的具体方案.

关键词:软件测试;企业需求;教学改革

软件测试是为发现错误而执行程序的过程[1],它软件质量保证的重要环节,在整个软件工程中占的比重较大.目前,软件测试在软件发达国家已发展较成熟[2]:软件测试在公司中的很重要,测试人员与开发人员的比例可以达到1:1;软件测试的理论研究也发展迅速;软件测试市场繁荣,提供了大量商业和开源测试工具.在我国,软件测试起步较晚.在以往一些中小IT企业“重开发,轻测试”,只有一些知名企业才有专门的软件测试人员.随着国内软件市场不断扩大,软件企业逐渐走入正轨.近年来,软件质量越来越被关注,软件测试日益引起国内软件企业的高度重视[3],企业在软件测试人力上的投入也在逐渐增大,对于软件测试人员的需求越来越大.本文首先从岗位设置﹑专业技能要求﹑专业素质等方面分析了企业对软件测试人员的实际需求,接着探讨了目前高校《软件测试》课程教学现状,最后提出高校《软件测试》课程教学的改革方向和具体方案.

1 企业对软件测试人员的需求

随着软件行业的不断发展,用户对软件质量要求的提高,企业对软件测试人才的需求量逐年递增,对软件测试人员的专业知识﹑技能和素质也有一定的要求.

1.1企业对软件测试人员的岗位需求

目前在国内软件测试行业还处于起步阶段,大家对测试工程师这个职业的认识并不明确.规范的软件测试和开发一样,开发有的岗位,测试也应有.软件测试一般有测试员﹑测试工程师﹑高级测试工程师﹑测试经理(测试架构师)等岗位.也有一些公司在软件测试方面已有较完善的体系,比如性能测试领域,有专门的性能测试分析师,架构师.随着软件测试行业的逐步规范,测试岗位的分工会越来越明确.

1.2企业对软件测试人员的专业技能需求

根据上述岗位需求的分析,不同的岗位要求的专业技能的侧重点不同.但总的来说软件测试人员要具有一定的代码编写的技能,才能更好地完成单元测试﹑性能测试等测试工作;测试人员还要具有测试的理论和实践知识,熟悉缺陷管理,具备优秀的缺陷诊断和发现能力,能熟练运用几种常用的软件测试工具,能运用所学软件测试技术和工具解决实际软件测试问题;测试人员还需要掌握关于网络﹑操作系统等的知识,能配置各种测试环境,分析各种系统平台.

1.3企业对测试人员的综合素质需求

基于软件测试工作的特点,测试工程师需要具有良好的沟通能力﹑学习能力﹑适应能力﹑较强的逻辑思维能力﹑团队协作能力和组织能力.软件测试工作贯穿于软件的整个生命周期,软件测试人员要与项目中的不同成员合作,要求测试人员注重团队之间的交流沟通,善于清晰准确地表达自己的观点,能够适应高强度和快节奏的工作方式,服从项目经理的工作分配.

2 高校《软件测试》课程教学现状

作为人才培养的主要基地,高校是目前企业引进软件测试人才的主要途径[4].然而,由于国内高校对市场需求反应迟缓,目前开设软件测试专业的高校还比较少.开设软件测试课程的高等院校中,实际教学过程中也存在诸多不足和困难[5].

2.1师资力量缺乏,教学效果差

软件测试课程是一门理论性和实践性都非常强的课程.该课程的主要教学目标是让学生掌握软件测试的基本理论和方法,熟练运用一些常见的测试工具,熟悉软件测试的流程,掌握测试用例的设计方法.讲授该课程不仅要求老师有较高的软件测试理论水平,同时也要有实际的软件测试项目实践经验.目前很多高校都缺少有软件测试实践经验的老师[6].一些教师仅仅凭借书本进行理论教学,无法针对企业的人才需求开展教学活动.在这种教学师资缺乏的情况下,软件测试课程无论是理论教学的深度还是实践教学的设计都较难满足教学的需要,导致最终的教学效果并不理想.

2.2课程内容孤立,教学方式单一

软件测试课程的授课内容大致如下:首先介绍软件测试的基本概念,软件缺陷,测试用例等;接着讲授测试用例的两种设计技术:黑盒测试和白盒测试内容;然后按照软件测试的流程讲授单元测试﹑集成测试和系统测试的内容;最后介绍软件测试过程的管理.课程内容的理论性过强,基本概念和基本理论较为抽象,知识点孤立,使得学生感觉枯燥乏味,对课程的理解不够深入.

在教学方式上,大多数高校还是教师在课堂上讲授理论知识,学生上机完成相应作业的方式.不论是授课内容,还是课后作业,都是以掌握知识点为主,并围绕知识点布置相应的上机作业,这种方式并不能达到较好的实践目的.比如讲解黑盒测试中边界值测试,教师会在课堂上讲解这种测试用例设计的原理和方法,也会布置相应的作业.但是学生最终还是不清楚什么情况下应用边界值测试,甚至在实际项目应用中真正的测试用例是什么样都不清楚.单一孤立的知识点没有按照实际应用过程展开容易导致学生掌握了各个知识点,却无法形成知识实际应用的能力的结果.

3 具体改革方案

3.1加强校企合作,注重双师型教师的培养

通过加强校企合作,一方面可以培养具有实际软件测试项目经验的教师,另一方面,可以根据企业的实际应用需求搭建软件测试实验平台,选取实验案例,更有针对性的培养学生的专业技能和专业素质.校企合作的方式主要有教师进企业接受培训或者直接顶岗﹑学生进企业顶岗实习﹑邀请企业进高校.

目前我校在与企业的合作方面已初见成效.2013~2015年,连续三年学期末,都邀请51testing公司的高级测试工程师来我校进行软件测试课程的实训,案例选择合适,学生反响较好;与上海泽众软件开发公司合作,搭建了软件测试的实验平台,有自动化测试工具﹑性能测试的工具以及测试流程管理的平台,满足了软件测试课程实践教学的需要.在2013年﹑2014﹑2015年河南省软件测试大赛中学生团队均获得了特等奖﹑一等奖的好成绩,该比赛注重的就是软件测试工具的实际应用以及软件测试知识的综合运用.今后还应进一步的推进校企合作,尽量选择不同类型的企业来合作,以便更全面了解软件测试岗位和岗位所需要的专业技能.另外,除了派教师到企业学习外,教师在工作中与企业员工也可以保持合作,例如合作组织成立软件测评小组,承接一些实际的软件测评任务.一方面可以给学生提供实践的机会,另一方面可以让教师从事实际生产实践,促进测评环境和测试队伍的发展,既加速教学改革,又有了一条产业化的发展道路.

3.2合理安排教学内容,提高学生专业技能

3.2.1注重课程理论内容的整体性

从不同的维度整合课程的理论内容,注重课程内容的整体性,使学生从测试概念﹑测试技术﹑测试过程﹑测试管理几个维度来清晰地理解课程的主线.在讲授课程体系中各单项知识点和单项技能的基础上,注重知识的融会贯通比如在讲系统测试的功能测试和性能测试时可以选择合适的案例,让学生使用前面学习的黑盒测试技术来设计典型测试用例,并结合测试管理的知识来进行相应的测试计划,完成测试目标;在讲授白盒测试的相关技术的时候,可以结合学生以前的编程基础,选择合适的实验案例,进行打桩和驱动模块编写的练习.最终实现软件测试各个单项专业知识与技能整合运用的目标.

3.2.2加强实验环节,合理选择实验内容

要提高软件测试课程的教学效果,一定要加强实验环节的比重.理论指导实验,实验帮助学生更好地理解所学理论.实验内容的选择一方面要结合软件测试岗位的实际需求,另一方面要让学生的容易理解,使学生能够体会学以致用,这样才能充分调动学生的积极性.例如选择计算器软件﹑课程教学网站﹑教务管理系统等学生应用较多较熟悉的软件作为实验中的被测试的软件,进行测试需求的分析﹑用例设计﹑缺陷分析等实验内容.

3.3采用多种教学手段,培养学生专业素质

3.3.1组织基于项目小组的实践教学

软件测试课程一般都是大三开设,学生已经有了一定的开发基础,学习过软件工程课程,初步具备完成一个完整项目的能力.在课程一开始,就组织学生自由结合,组成3~5人的小组,并选出一位同学作为项目的负责人.让每组同学选择一个课题,这些课题的内容可以是学生比较熟悉的,比如图书信息管理﹑学生信息管理﹑校园二手物品交易等系统的设计与开发.选择课题后,每组成员在负责人带领下,分工合作,从项目的需求分析开始,完成项目的概要设计﹑详细设计﹑代码实现.每个小组完成软件系统的开发任务后,将软件提交给另外一组进行测试,符合“第三方测试”的测试原则.测试内容包括对文档的静态测试,对源代码的单元测试,在各单元测试完成后,再进行的集成测试,以及把已经测试过的模块组装起来的系统测试.在测试过程中,结合课程中学到的理论知识,分别进行有关的测试计划﹑测试设计﹑测试实施﹑测试结果分析和测试流程管理,并形成文档.每个小组在课堂上演示和讲解整个项目的测试过程.

通过这样的一个完整的项目实践,让学生理解了测试和开发的关系.在测试的时候以自身的开发实践促进测试,提高软件测试技能,测试的经验又有利于开发时候考虑到可能出现的问题.项目小组的实践教学组织形式和企业的人员组织方式接近,有利于培养学生团队合作精神,又能获得软件项目管理与被管理的实际经验,“第三方测试”又锻炼了学生之间以及“测试人员”与“开发人员”之间的沟通能力.通过这样的实践教学组织方式,让学生灵活运用理论知识对软件项目进行开发和测试,使学生真正进行团队合作完成实际应用项目,激发学生学习的热情和兴趣,培养软件测试人才所必须的实践能力和专业素质,满足企业对软件测试人才的要求.

3.3.2案例驱动教学

为避免讲授基本测试理论的枯燥乏味,除了课本知识外,收集一些实际项目的案例,在课程上讲解分析.让学生认识到软件测试的实际问题是复杂的,需要相关理论的指导和学习.在案例教学中,注重采用启发式教学方法,引导学生动脑.如在讲授软件缺陷的概念时,通过不同的案例,如钢水外溢事件﹑服务器重新启动﹑美国火星登录事故等,认识不同的软件缺陷的类别及软件测试的重要性.在讲解黑盒测试的一些技术,如等价类测试﹑边界值测试的时候,可以使用第二日计算﹑三角形判断﹑佣金计算等案例,并把这些案例编写成能执行的软件,在课堂上演示不同的测试方法设计出来的测试用例的测试效果,激发学生的好奇心和积极性,引导学生思考不同的测试用例设计方法的应用情景.

4 总结

本文从企业对软件测试人员的需求情况出发,对高校软件测试人才的培养及教学现状进行探讨,针对高校软件测试课程的教学改革,提出一些具体方案,期望能对高校软件测试人才培养起到一定的促进作用,为企业提供合格的软件测试人才.

参考文献:

〔1〕(美)Myers Glenford J,Badgett Tom,Sandler Corey.软件测试的艺术[M].北京:机械工业出版社,2012.20~21.

〔2〕武剑洁.软件测试实用教程-方法与实践(第2 版)[M].北京:电子工业出版社,2012.27~28.

〔3〕杨鹏,贺平.高职软件测试专业的构建与探索[J].计算机教育,2008(02):63~66.

〔4〕穆海伦,李万清.面向企业的高校软件测试教学改革探索[J].计算机教育,2013(10):36~40.

〔5〕唐春玲,胡方霞,沈敏.软件测试技术课程的教学改革与研究[J].科技信息,2013(05):35~36.

〔6〕潘丽丽,王天锷,秦姣华.软件测试教学研究与实践[J].计算机时代,2015(07):57~59.

基金项目:周口师范学院教育教学改革研究项目(J201428)

收稿日期:2015-12-30

中图分类号:G642

文献标识码:A

文章编号:1673-260X(2016)03-0273-03