开发内化教学法在软件测试人才培养中的应用

时间:2022-09-11 02:12:00

开发内化教学法在软件测试人才培养中的应用

摘要:近年来,软件测试人才缺口已达30万并呈上升的趋势,造成这个现象的原因之一是大学培养的软件测试人才与人才需求存在差距。为了解决这个问题,我们提出一种面向就业的软件测试人才培养模式。该模式采用规范的系统案例进行理论及实践教学,模拟实际软件开发过程中软件测试实施的方式方法进行实验教学,同时,结合“成功素质教育”办学理念,融入了开发内化的教学方法,以培养出具有较强就业竞争力的软件测试人才。

关键词:开发内化教学法;就业竞争力;软件测试人才培养

中图分类号:G642文献标识码:A

武昌理工学院坚持以“成功素质教育”为特色的教育理念和人才培养模式,致力于培养“专业素质扎实、非专业素质过硬、个性特长突出、创新与实践能力强”的高素质人才 [1]。通过广大师生十余年的努力,我校毕业生的就业率和就业质量稳步上升,取得了一定的成效。2010年,我校被列为国家教育体制改革试点高校,承担“创新民办高校高素质人才培养模式”的改革试点任务,目前,我校正沿着这一任务的指导思想,采用通过教师的开发促成学生内化的教学方法,进一步深化教学改革。近两年来,笔者主要承担计算机科学和软件工程专业软件测试课程的教学任务,在此,简要分析软件测试人才的市场需求及软件测试课程教学中存在的问题,结合课程特点和开发内化教学法,探索软件测试人才的培养模式。

一、软件测试人才的需求状况

软件产业发展的几十年中,软件测试已逐步渗透到各个领域,成为越来越重要的技术成分。很多优秀的企业中,开发人员与测试人员的比例达到了3:1或2:1[2]。大量的人才需求导致我国软件测试人才严重缺乏,专家分析其主要原因是国内软件测试人才教育相对滞后[3]。实际上,我国从2003年起计算机相关的教育机构就相继开设了软件测试课程,经过多年的软件测试人才培养,用人单位依然缺乏软件测试人才,而学过软件测试课程的毕业生还是难于找到工作。针对这一问题,笔者对软件测试人才的市场需求进行了调研。

调研结果显示,各公司的用人条件和考察内容虽不尽相同,但多数条件都比较相似,归纳起来包括以下几个方面:

① 计算机相关专业毕业;

② 有测试工作经验;

③ 能独立编写各类测试文档;

④ 熟练相关工具使用(包括测试工具及配置管理工具);

⑤ 熟悉主流操作系统;

⑥ 具备很强的语言表达能力、沟通能力和团队合作精神;

⑦ 学习能力强,能快速上手新技术,新业务。

此外,其他调查结果显示,在计算机行业,随着外包开发行业快速发展,对人才在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高[4]。前面列举的软件测试人才招聘条件也应证了这一点。

二、软件测试课程的教学现状

近年来,各教育机构的教师们围绕该课程展开了一些课堂和实验教学的研究,在教学中采用案例教学法,强化实验教学环节,取得了一定的成果,但从案例的规范性和实验体系看,忽略了软件测试具有以工程项目为对象、以设计文档为依据的特征。主要存在的问题表现在以下几个方面:

① 缺乏规范的系统案例;

② 重技术实现轻文档训练(使用及书写);

③ 测试工具流于产品说明;

④ 缺乏面向项目的实验教学体系。

由此可见,我们教学中存在的问题正是人才市场的需求所在。

三、开发内化教学法在软件测试人才培养中的应用

成功素质教育的基本教学方法包括启发式教学法、互动式教学法、实战式教学法,成功素质教育的基本学习方法包括自主式学习法和研究式学习法[1]。开发内化教学法以培养和调动学生自主学习的积极性为前提,通过教师的开发促成学生内化的一种教学方法,笔者认为开发内化教学发就是成功素质教育的基本教学方法和基本学习方法的总和。软件测试是近年来诞生的一门新学科,目前已基本形成其独立的理论体系,但是随着软件产业的发展,有关软件测试的有效技术和方法还有待人们进一步探索。软件测试课程主要针对计算机相关专业高年级学生开设,需要多门先修课程作为铺垫。针对具备一定计算机专业知识的教学对象及还有较大发展空间的学科来说,采用开发内化教学法是比较适合的。下面主要针对人才市场需求和软件测试课程教学中存在的问题,利用开发内化教学法探索软件测试人才培养模式。

(一)启发式教学法的应用

启发式教学能提高学生的学习能力、快速上手新技术和新业务的能力,因此,能帮助学生达成人才需求条件中的⑦,并能促进学生养成自主式学习和研究式学习的良好习惯。

软件测试是一门主要由计算机科学及管理学相结合的新学科,目前,教材中的很多内容基本都是前人采用技术的介绍,这些技术往往是利用计算机技术和管理学的思想,在软件测试实践中探索出来的。因此,在教学中,对于各种测试技术的学习,不是直接介绍技术实现的方法,而是先提出一个具体的测试对象,让学生思考怎么测试更科学,在这一过程中,我们经常发现学生们也能利用先修课程学到的知识想到教材上介绍的方法,抓住这样的时机,鼓励学生,表扬学生,让学生坚定“我行”的自信心,有了自信心学生们就能更大胆更主动地思考和解决问题。

对软件进行有效的测试,提升测试效率,是软件测试面临的关键性挑战,也是软件测试技术进一步发展的瓶颈,各种测试工具的诞生正是基于这样的出发点。但由于种种原因测试工具的使用还远远达不到普及的程度和期望的效果,这说明工具不够完善,有待我们去开发更有效更易于使用的新工具来突破这一瓶颈。在软件测试工具的学习中,我们主要不在介绍工具的作用,而主要是启发学生去思考测试工具采用的技术并评判这种技术,让学生通过查阅资料进一步学习,思考还有没有更好的手段和方法来改进测试工具。

此外,由于软件测试的手段基本都来源于计算机专业的相关知识,教学中就要引导学生去挖掘已经学过的知识来解决测试中的问题,并不失时机地强调每一位计算机专业的学生都要有“计算机头脑”,这个“计算机头脑”要善于观察,捕获日常生活中一切可以用计算机来解决的问题,并思考解决方法。

(二)互动式教学法的应用

互动式教学法能提高学生能过的思考能力、资料查阅能力、归纳总结能力、表达能力,因此,能帮助学生达成人才需求条件中的⑥和⑦。

启发式教学产生的最佳效果就是带来师生间良好的互动,由于授课时间和内容的制约,我们采用启发式教育常常是教师自问自答的方式。目前,我校推行的教学改革,倡导学生自主学习,大力提倡课堂提问,并要求加大授课时间中提问和互动时间的比例。在这一改革思想的指导下,软件测试教学中将按照启发式教育中针对的相关内容,提出问题,采用让学生随堂回答的方式和课后查阅再做答的方式进行。主要以两种方式进行提问:第一,预习提问,在这一环节,设置基本概念和知识点的提问,主要检验学生的预习效果,并在提问过程中对重点内容进行讲解;第二,复习提问,复习提问的难度比预习提问有所加大,属于基本知识的衍生提问,需要学生在掌握基本知识的基础上经过一定的思考或资料查阅才能回答。通过这两种形式的提问,可以促进学生掌握知识、训练学生灵活运用知识解决实际问题的能力。

(三)实战式教学法的应用

人才需求条件中的测试工作经验是毕业生们就职难的关键,而实战教学法是达成这一条件的主要途径,在软件测试的实战中,还能训练学生测试文档写作及测试工具的使用,因此,实战教学法能达成人才需求条件中的②、③和④。

在近两年的教学改革中,主要采用案例教学法,在实验教学中用规范完整的案例模拟企业测试工作模式,让学生在实践中形成“技能”、具备“经验”。实验内容的安排上,注重指导学生使用设计文档、自己编写测试文档,并利用自动化测试工具实施测试,兼顾测试技能训练及工具熟练程度的提高。

1. 规范案例的选择:早期的软件测试教材只涉及一些小的程序段和非系统的案例,2009年以后的软件测试教材在这方面做了很大的改进,出现了较多的案例教程及实践教程。利用系统案例作为理论知识讲解的载体,将更直观地让学生理解知识。但要让学生具备软件测试经验,教材中的案例还存在一些问题,学生的经验只有通过动手实验才可能具备,而且这里所说的经验不是零散的,而是系统化的软件测试经验。在实际工作中,软件测试过程中的单元测试、集成测试、系统测试、验收测试分别对应软件设计中的详细设计、概要设计、系统设计和需求分析,要让学生在实验中完成一个系统的较完整测试过程,不仅需要被测案例系统的完整代码及数据,还必须提供全套的设计文档,这样的案例系统是现有软件测试教材和很多软件开发的实例参考书所不具备的。

我们通过企业调研,分析软件行业的流行开发模式,主要从清华大学出版的系列丛书“软件开发全程实录”中选择案例,并陆续补充完案例的设计资料(需求分析、系统设计、概要设计、详细设计)。利用规范的案例系统,在理论教学中用系统案例诠释理论,在实验教学中用系统案例模拟实际工作模式进行实战训练。

2. 实际测试过程的模拟:在实验教学中,我们花1/3的时间进行软件测试基本技能训练,主要针对白盒及黑盒测试技术选择最实用的测试技术进行用例设计,这一部分是常规的软件测试课程的主要实验内容,属于基本功训练实验。我们用2/3的时间进行模拟实验,在这部分,根据学生的实际情况及笔者多年企业工作经验,模拟企业对新手软件测试人员的培养及职业规划模式,循序渐进安排实验。

在软件测试的模拟实验中,我们采用文档齐全的规范案例实施教学,采用先实施后设计的顺序,依次让学生进行单元测试、集成测试、系统测试的实施及用例设计。注重测试过程、设计文档的使用及测试文档的书写训练,在实验后期,采用分组实验的方式,让学生分担测试任务中的不同角色,模拟团队协作完成测试任务。

3. 一体化教学的实施:从软件测试人员的招聘条件看,除了要求具备软件测试的基本知识,要设计出较好的测试用例、跟踪软件缺陷并改正软件缺陷、选择较好的测试手段提高测试效率等,还需要相关计算机专业知识的支撑。此外,企业期望的是懂编程、设计、测试、管理的综合人才,因此,必须结合专业方向形成课程体系。我们已经进行了在同一学期三门课程之间,利用同一案例进行一体化教学的尝试,即在软件建模设计课程、编程语言课程、软件测试课程中采用相同的案例推进教学,以期让学生更深入地体会软件开发的全过程,具备软件工程化的“经验”。

四、结论

在“创新民办高校高素质人才培养模式”的改革试点中,软件测试课程的教学改革将在总结前面教学改革经验和教训的基础进一步推行开发内化教学法。在今后的教学中,我们打算进行相同案例跨学期跨课程的一体化教学探索,在这一探索过程中,将建设规范的教学案例资源库,探索合理的一体化教学体系,以帮助学生系统地学习专业知识、领悟知识的连贯性、提高学生的工程素养和实战能力。参与一体化教学的各门课程在试验教学中注重企业工作模式和场景的模拟,让学生在学习过程中具备软件工程全过程的“经验”,以进一步提升学生就业竞争力。

参考文献:

[1] 赵作斌. 大学成功素质教育理论与实践[M]. 武汉: 武汉大学出版社, 2009.

[2] 张向宏. 软件测试理论与实践教程[M]. 北京: 人民邮电出版社, 2009.

[3] 刘德宝. 软件测试工程师培训教材[M]. 北京: 科学出版社, 2009.

[4] 北京阿博泰克北大青鸟信息技术有限公司. 行业规则和行业经验手册[M]. 北京: 科学出版社, 2008.

[5] 吴建平. 高职“软件测试技术”课程存在问题和应对措施[J]. 计算机教育, 2007(9).

[6] 陆慧娟等. 面向本科就业市场的计算机工程型人才培养研究[J]. 计算机教育, 2011(5).

[7] 佟伟光. 软件测试[M]. 北京: 人民邮电出版社, 2008.

[8] 陈技能. QTP自动化测试实践[M]. 北京: 电子工业出版社, 2009.

(本文审稿李宗华)

上一篇:浅析数字媒体艺术 下一篇:试论以开发内化教学法为主导的课堂中的新型师...