首页 -> 2008年第6期

高职软件测试课程的改革与实践

作者:徐 芳 戴坚锋




  摘要:探讨了面对高职学生的软件测试课程建设的定位,提出了渐近的分级课程教学体系,针对课程教学中遇到的问题提出了相应解决办法。
  关键词:高职;软件测试;分级
  
  近年来,我国软件产业保持了迅猛发展的态势,但是,由于我国许多软件企业存在着“重开发、轻测试”的倾向,在造成软件产品质量问题日渐突出的同时,也凸显了软件测试人才的极度匮乏。随着企业对软件质量要求不断提高,软件测试近几年在国内软件项目开发中越来越受到重视,并得以迅速发展,因此对软件测试人才的需求也不断增加。
  目前,软件测试人才的培养主要有两种途径:一是在各高校的计算机类专业课程中开设软件测试课程,二是社会上各类软件测试工程师的培训课程。在软件测试课程教学中针对学生的基础设计一套适合高职生源的课程内容和教学方法,使学生能尽快地掌握软件测试基本概念和方法,并具备软件测试岗位的基本能力要求,显得非常重要。
  
  软件测试职业分析及高职学生定位
  
  软件测试工程师的主要工作职责是:理解产品的功能要求,并对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,写出相应的测试规范和测试案例。主要包括:(1)负责项目/产品的测试工作,分析产品需求,建立测试环境和计划,保证产品质量以及测试工作的顺利进行;(2)按照软件工程规范和项目管理流程,实施、管理和指导软件开发不同阶段的各种测试,并提交测试报告。测试计划安排包括人员安排、进度、使用的软硬件环境、测试流程等;(3)提交测试报告,并撰写用户说明书;(4)参与软件测试技术和规范的改进和制定。
  测试工程师一般分为以下几个等级:(1)高级测试工程师。高级测试工程师不但需要掌握测试与开发技术,而且要对所测试软件对口的行业非常了解,能够对测试方案可能出现的问题进行分析和评估。(2)中级测试工程师。中级测试工程师要能编写测试方案、测试文档,与项目组一起制定测试阶段的工作计划、能够在项目中合理利用测试工具来完成测试任务。(3)初级测试工程师。初级测试工程师的工作通常是按照测试方案和流程对产品进行功能测试,检查产品是否有缺陷。
  根据高职学生的能力特点,应该把高职学生定位在初级和准中级测试工程师,具有一定的设计方案的编写能力,能利用测试工具完成一定的测试任务,并能够执行功能测试。整个课程的重点是软件测试岗位的基本技能,主要包括:软件测试基本概念的建立;软件缺陷生命周期管理;系统测试的基本概念、方法和用例设计;典型测试工具的应用;对于典型系统的测试方法。
  在课程教学过程中,需要解决下列难点:(1)在有限的教学时间内培养满足实际工作要求的测试人员;(2)采用合适的教学方法,使学生能够更加容易地掌握理论知识;(3)建立有效的实践环境,培养学生实际工作技能。
  设立渐进的软件测试课程教学体系
  高职高专以培养实用型人才为主要目标。软件测试人员的培养是一个长期的过程,并非靠一两门课程便可以完成全部目标。此时,通过一门课程的学习培养能够直接开展实际工作的测试人员就成为一个课题。
  通过研究软件企业软件测试人员的主要工作后我们发现:一个软件测试团队一般是由具有不同技能和经验的人员搭配而成的。对三个级别测试工程师所需要具备的能力和需要承担的工作进行分析,将教学目标定位在初级和准中级上。进一步分析初级、中级测试工程师的工作内容和所需要的技能,将这些技能按照渐进的顺序分为不同的组,当掌握了该组所需要的技能之后,就可以认为达到了一个新的测试工程师等级。这样,在教学过程中可以循序渐进地让学生掌握不同的技能组,每完成一个技能组,都可以完成对应的实际工作。考虑到教学目标,可以设置4个技能组,当完成这些技能组的学习之后,学生能够达到初级和准中级测试工程师的要求。由于不同技能等级的定义,完全取材于实际的岗位需求,因此学生能够通过课程学习,满足实际工作的初始要求并在后续的工作中不断提高。课程教学体系设计思路如图1所示。
  
  首先,将软件测试工程师分为初级、中级、高级三个级别。不同级别的测试工程师需要具备不同的技能并在软件测试的不同环节承担相应工作。然后,分析每个级别的技能要求,得到该级别对应的“技能清单”。其次,分析高职学生的职业定位。接着将初级测试工程师、中级测试工程师的技能清单进行更加细致的分析和分组。分组的原则是:当掌握了某个分组的技能之后,就可以完成一项实际工作。不同分组之间有渐进关系。最后,将每个技能组定义为一个“学习级别”,并用Level1、Level2、Level3、Level4给以命名。设定的四个学习级别是渐进的,分别具有不同的理论教育、实践教育内容和考核。
  根据软件测试职业的基本技能要求(见图2),通过对企业实际软件测试团队工作的调研分析,在知识模块的划分上采用分级的设计思路,使知识模块既包含了软件测试职业的基本技能要求,又利用循序渐进的方式,以利于高职学生消化吸收,同时也符合企业实际测试团队对岗位的要求。课程内容模块分级如下表。
  
  
  引入实践优先的“五步教学法”
  
  在传统的教学方法中,学生首先被动接受理论知识,然后通过实验等实践环节去巩固、理解理论知识。学生在学习理论知识时,往往不知道为什么要学习这些内容,而在实践过程中,往往无法把实践内容和所学的理论知识较好地联系起来。
  在教学实践中我们发现,学生学习缺乏动力的原因是不明白“为什么学这些内容”;另外,一味地模仿教师,学生的分析能力、自主学习的能力不易提高。因此,我们根据软件测试岗位实践性强的特点,在教学中结合实际项目、开展“五步教学法”(见图3),按照以下五个步骤来组织教学:布置问题、动手实践、分析和讨论问题、理论讲授、实践提高。
  
  通过动手实践,学生明确工作任务。通过教师的分析和学生的讨论,学生能认识到自己动手实践中存在的问题。经过前三个环节的铺垫,学生就比较容易接受理论讲授,并能在实践环节去消化、运用。
  该教学法以完成职业培养为目标,并将目标细分为一个个渐进的具体目标,通过不断地设置问题、解决问题,学生最终掌握一系列实际工作技能,达成培养目标。
  “五步教学法”的开展,一方面,通过先动手、后总结的方式,强调在实践中学习,使学生对理论知识的学习有更清楚的目的,提高了学生的学习兴趣;另一方面,通过个人思考和小组讨论,锻炼了学生的思维能力,同时学生的自主学习能力得到进一步提升,而这也是学生从业后需要具备的基本素质。
  建立工程化的教学配套资源
  软件测试教学面临的重要问题是项目案例的组织和规划,为此可以组织开发不同层次的软件测试基线包用于教学,其中包含几个主要内容(见图4):一是历年典型的学生开发项目案例;二是包含着人为设置的软件缺陷的软件系列,所设置的缺陷代表着在实际软件开发过程中的典型问题;三是企业的项目资源,包括项目需求文档、项目设计文档以及项目软件的不同版本,这些资源能够让学生接触到完整的案例,并且由于基线包中包含了软件的不同版本,从这些版本中,可以清晰地发现软件缺陷是怎样被不断地发现和修复。
  为了使软件测试基线包具有可移植性,可通过技术手段实现软件测试基线包的快速部署,使学生能快速便捷地完成测试环境及测试软件在不同场合的搭建。软件测试基线包的开发为教学和实践提供了有力保障,同时便于课程教学资源共享。
  
  通过对软件测试岗位的分析,可在软件测试课程教学中建立面向职业要求的分阶段渐进教学体系,突出职业能力培养。同时根据高职学生认知特点,以职业技能培训为出发点,通过开展先动手工作、后理论总结的“五步教学法”,提高了学生的学习兴趣,培养了学生分析解决问题的能力。最后,利用开发配套的软件测试基线包提供丰富的实战资源,给学生提供良好的测试训练环境。经过近几年的课程教学实践,这些方法和措施取得了良好的教学效果, 2007年,该课程被评为省级精品课程。
  
  参考文献:
  [1](美)Robert Culbertson,Chris Brown,Gary Cobb.快速测试(影印版)[M].北京:清华大学出版社,2004.
  [2]徐芳.软件测试[M].北京:机械工业出版社,2006.
  作者简介:
  徐芳(1970—),女,上海市人,浙江机电职业技术学院讲师,工程师,主要从事计算机工程与教学研究。
  戴坚锋(1975—),男,浙江三门人,浙江机电职业技术学院讲师,高级工程师,主要从事计算机教学研究。