余 波 陈 君 于学军
文章编号:1672-5913(2009)01-0062-03
摘要:本文结合我院计算机科学与技术专业软件测试职业能力培养的经验和体会,介绍了独立学院的软件测试职业能力培养的目标、实施过程,以毕业设计为例指出软件测试职业能力过程中存在的问题,并提出了有针对性的解决方案。
关键词:职业能力;计算机专业;软件测试;独立学院;
中图分类号:G642
文献标识码:B
1引言
大多数公司已经将软件测试看作是技术工程专业工作,有意识地在项目组中培训软件测试人员[1]。但由于IT企业的快速发展,对软件测试人员需求的缺口依然很大。应用型本科学院加强计算机专业学生的软件测试职业能力培养,既可以缓解社会上软件测试人才不足的现状,又有助于毕业生迅速找到合适的工作岗位。
目前,大多数独立学院均设立了计算机科学与技术专业。我院针对学生来源和社会对计算机专业应用型人才需求等特点,以培养应用型本科人才为目标,修订专业培养方案,确立软件工程和网络工程两个培养方向,开设职业能力辅导课128学时(4学分),分别占总教学学时和总学分的5.3%、2.1%。自2006年,我院在软件工程方向开展软件测试职业能力培养模式的探索,取得一定经验,同时也存在一些问题。
2教学现状
该院自2002年开始计算机科学与技术专业招生,基本情况见表1。表1表明计算机专业学生已经清楚认识到加强专业技能培养的重要性,因此按软件工程和网络工程方向培养学生也符合学生的需求。
我院引进了一批计算机专业教师,已经形成自有专业专职教师团队,基本情况见表2。除教授年龄超过60岁外,其他老师的平均年龄仅32.1岁,教学经验丰富,精力充沛。
我院已建设两个高标准的计算机专业实验室,PC机120台、服务器5台,可开展软件工程方向全部专业课实验和网络工程方向部分专业课实验。
3软件测试职业能力培养目标
优秀的软件测试人员除了具有良好的职业道德外,还须具备如下基本素质和技能:①与开发员、客户或者管理者谈判与沟通的能力;②与其他测试员、开发员或管理者协同工作的团队合作能力;③分析和解决相关问题的能力;④掌握软件测试理论、方法和操作技能,具备适应发展的能力。
软件测试职业能力培养的主要目标是通过学习和掌握软件测试原理、方法和工具的,具备软件测试人员所必备的基本素质和技能,不经过职业培训或少量培训就可以从事软件测试工作。应至少达到如下要求:①能够在单机、网络环境下建立软件运行和测试环境;实施多种体系结构软件的测试;②熟悉主流软件开发技术并能够编写简单应用程序、测试脚本和测试计划、设计测试用例、执行测试并填写缺陷报告;③熟悉常见测试流程、缺陷管理流程,并能对测试流程实施监督和处理;④能够独立或协助开发人员进行单元测试和白盒测试;以及使用自动化测试工具来进行各种测试。
4实施过程
软件测试职业能力培养分为两个阶段:①基本阶段:即计算机专业课程学习、实验和课程设计阶段,学生掌握软件测试的基本原理、方法和工具,具备从事软件测试工作的基本素质和能力,经过时间不长的职业训练可以胜任软件测试工作;②高级阶段:目标是让学生掌握专门的软件测试技术和工具,形成独特软件测试职业能力,培训时间更短或者不经过培训就能胜任特定领域的软件测试工作的,通常指软件测试综合实践课程和毕业设计环节的教学。其中毕业设计环节的软件测试能力培养能够提升基本阶段形成的软件测试实践技能,通过选择适当的课题加强对软件测试的整个流程的技术掌握,进一步提高软件测试职业能力。
软件测试教学内容见表3第一列。Ⅰ至Ⅶ各列分别对应C/C++、Java、数据结构、算法设计与分析、软件工程、软件测试综合实践、毕业设计。A表示初步掌握,B表示重点掌握。
4.1基本阶段的软件测试能力培养
在C/C++、Java、数据结构、算法设计与分析课程的实验和课程设计教学中,由于所编写代码规模不大,要求学生借鉴“极限编程”和“测试驱动开发”方法的思想,源代码和测试代码开发并重,灌输“源码要能够通过测试”的观点。
软件工程课程设计和软件测试综合实践两个教学环节要求学生以团队形式完成一个规模适当的软件系统。除单元测试外,还必须关注集成测试、系统测试等环节,达到掌握集成测试和系统测试的基本过程和常用测试工具、形成良好的软件质量保证意识的目的。
4.2高级阶段的软件测试能力培养
高级阶段的软件测试能力培养指学生选择软件测试类毕业设计课题,在指导老师的指导下,在仿真工作场景的实验室环境完成课题要求的任务,或者对实现的软件系统按照工程规范进行测试。
除了软件设计类课题外,02、03和04级计算机专业毕业生完成软件测试类毕业设计课题有五类:①基于J2EE平台应用系统的性能、负载和压力测试;②EJB组件测试;③测试数据的生成方法及评价(如基于遗传算法或组合策略生成测试数据);④应用程序的图形用户接口测试;⑤应用程序的安全测试。
5存在的问题
计算机专业完成的软件测试相关课题情况见表4。第2列表示“测试过所实现软件系统的学生数/选择该类课题的学生数”;第3列表示选择软件测试类课题学生数;第4列表示选择软件测试类和选择软件设计类课题并测试过所实现系统的学生数与选择两类课题的学生数之比。第5列表示毕业后从事软件测试占全部学生的百分比。显然,软件测试职业能力培养已经逐步得到计算机专业学生的认可。
对2004级毕业生25人问卷调查,结果是选择软件测试类课题和软件设计类课题的共22人。影响软件测试及软件设计课题测试相关任务完成的原因中,课题的过大或者过难的占23%,实验条件不完备的占45%,中途改题目占13.6%,时间未规划好的占31.8%,论文文献不符合要求占18%,老师指导不足占23%,课题过于简单占27%,编程能力不足占36%。
6解决方案
针对上述问题,可以采取如下措施:
根据IT企业软件研发的应用场景,配置IT企业流行的分析、设计、开发、测试和管理等常用工具软件,构建软件设计与软件测试专用平台,为计算机专业学生提供模拟IT企业的开发环境。
软件测试和软件设计类课题的指导老师命题时应该结合自身科研、教学、技术研发特点等因素,制定适当的课题。在指导时根据现代软件工程规范和课题要求加强对学生的指导,及时检查学生的工作进度。
在专业课程学习阶段,加强语言类、数据结构与算法类课程的教学,要求学生坚持测试所开发代码,提高学生编程技能。
建设有助于培养计算机专业学生的软件测试职业技能的教学团队,定期邀请软件测试行业专家来学院讲学讲座或者专业教师深入IT企业,了解软件测试在软件质量保证过程中的应用现状。
鼓励学生参加软件评测师等软件水平与任职资格考试,所获证书可抵学分,提高学生加强职业能力培养的积极性。
参考文献
[1] 孙家广, 刘强. 软件工程—理论、方法与实践[M]. 北京:高等教育出版社,2008.
[2] 刘强等. 中国软件工程学科教程[M]. 北京:清华大学出版社,2005.
[3] 全国计算机技术与软件专业技术资格(水平)考试办公室. 软件评测试考试大纲[M]. 北京:清华大学出版社,2005.
[4] Kent Beck著. 测试驱动开发(影印版)[M]. 北京:中国电力出版社,2003.