时间:2022-10-12 19:03:24
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件测试课程总结,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
我院从2004年即开设了软件测试方向,在培养方案、课程体系、实践环节等方面作了大量的探索、研究和实践工作,取得了一些成效,也遇到了许多问题。本文对我院的软件测试技术人才的培养模式进行分析和总结,希望能抛砖引玉,与同行交流。
1两年制软件测试方向课程体系的特点
两年制软件测试人才培养的特点主要有:
(1) 学制短,只有两年;
(2) 目标是培养实用型软件测试技术人才;
(3) 要具备一定的编程能力。
上述特点决定了软件测试人才的课程体系的特点:
(1) 方向即专业由于学制短(两年),除了第四学期的毕业实训,实际上真正上课时间只有三个学期。所以软件职业技术人才不能像本科生培养一样,到大三才分方向,而必须从入校就开始分,所以软件测试方向实际上是按软件测试专业来培养。
(2) 开发与测试兼备一个合格的软件测试人员必须具备基本的编程能力和软件开发人才的基本素养。所以软件测试方向的课程除了测试课程外,还要掌握软件技术的基本课程,包括数据结构、数据库、计算机网络、软件工程,以及至少一门主流程序设计语言等。
(3) 课程紧凑、课时多由于相对于其他专业来讲,软件测试方向的学生要学习更多的课程,所以课时就多,课程安排紧凑。
(4) 实用性和实时性作为实用型软件测试人才,学生必须掌握当前主流的测试工具、实用测试技术和方法等。所以课程体系必须要具备实用性和实时性。
2课程的设置
在设置课程时,我们进行了大量的调研,经过2004级和2005级两届学生的培养实践,针对培养效果,进行了一些分析和课程改革。目前2006级的课程设置是在掌握基本的软件技术基础知识和一门主流程序设计语言的基础上,开设了“软件测试技术”、“功能测试与性能测试”、“测试管理”等软件测试专业课程。
主要专业课程设置见表1。
从功能上讲,课程的设置可以分成5个部分,对应学生不同层次能力的培养。
第一部分程序设计能力、工程化开发思想的培养。该部分的课程主要包括VB、Java、数据结构、计算机网络、数据库、软件工程等,主要是软件技术基础知识的学习,培养学生基本的程序设计能力,使之具备软件技术人才的基本素养,同时软件工程等培养学生工程化和规范化的软件开发思想。采用Java作为主要编程语言,将另一主流语言C#作为选修课,体现课程设置的灵活性。
在编程的课时和基础训练上和软件技术专业编码方向的学生一样,设置的原则:首先是一个软件测试人员必须具有基本的编程能力和经验,才能更好地搞好软件测试工作。第二是根据当前软件企业的人才需求考虑学生的就业,因为河南省绝大多数软件企业规模都较小,设置专职的软件测试岗位的较少,程序员通常又是测试员,所以使学生既能编程又能测试,拓宽就业渠道。
第二部分软件测试基础知识。主要是“软件测试技术”课程,侧重于测试理论和技术的掌握、搭建测试环境、测试工程师的基本职业素养培养。使学生在学习编程的同时,掌握对应的测试技术概念和基本知识。为进一步的实际项目测试打下基础。该部分对应有2周的一级集中实践课题,进行基本的测试训练。
第三部分主流测试技术和工具的掌握和使用、实际测试能力的强化和提高。对应的课程是“性能测试与功能测试”,该课程主要是结合实际的软件项目,介绍主流的测试技术和测试工具的使用,但并不只是性能测试与功能测试。该部分对应有3周的二级集中实践课题,分组进行实际的测试训练。
第四部分测试项目管理能力培养。主要课程为“软件测试管理”,培养学生工程化的测试思想,学习主流测试管理方法和工具的应用。该部分对应有3周的三级集中实践课题,训练项目的测试过程管理和测试管理工具的使用。
第五部分综合测试能力培养,即毕业实训。该实训为最后一个学期,学生到软件企业或实训基地参加实际的软件项目开发和测试,进行实境实习,综合地运用所学的测试和编程技术。
3实践环节
培养过程的实施可以归结为“夯实基础,强化训练”,夯实基础即培养基本的编程能力和掌握基本的测试技术。强化训练即强调实际能力的培养,通过对实际的软件项目进行测试训练,使学生熟练掌握主流的测试技术和测试工具的使用。
为了加强实际能力的培养,在正常教学的实践外,我们还在第1~3学期分别设置了一级、二级、三级集中实践课题,并要求软件测试方向的学生要与软件编码方向的学生组合协作进行,专门负责相应的软件测试工作。使学生感受到测试工作的重要性,同时培养其协作能力。一级和二级实践课题主要为验证型,三级实践课题则为设计型。
第4学期为毕业实训,采用实地场景教学,对实际的应用项目进行测试,角色模拟,项目驱动。该阶段从测试需求分析开始,一直到测试总结报告的撰写,贯穿一个完整项目的开发和测试整个过程。是对学生所学知识的一个总结和综合利用的强化。
各实践环节环环相扣,循序渐进,由易到难,由单一到综合,形成一个完整的实践体系。
集中实践环节安排见表2。
4测试工具的选择
由于软件测试工具较多,而两年制课时太紧张,所以只能学习常用测试工具的使用。我们选用的主要自动化测试工具见表3。
通过测试工具的使用,可以加深对测试原理和理论的理解,掌握主流的测试技术和方法。
5遇到的问题及采取的措施
软件测试人才作为刚兴起的职业技术人才,在培养过程中必然会遇到许多问题,相信这些问题也是其他院校在培养软件测试人才时遇到的共性问题,我们针对这些问题采取了许多有效的措施,不断改进。
(1) 对口就业较难
主要原因是我国“重开发,轻测试”的现象过于严重,很多软件公司没有专门的测试部门,测试工程师太少,开发人员兼作测试工作的现象十分普遍。但并不是说我们的培养方向不对,这正说明软件测试工程师职业还没形成规模,正在兴起时期。据2006年12月国家信产部“2006中国软件质量年会”公布,软件测试人才为2006年最紧缺的人才之一,在上海、北京等地,软件测试工程师已成为“地位高,待遇高”的“双高”人才。企业规范化需要规模和过程,软件质量问题将成为软件企业能否继续发展壮大的关键所在,越来越多的企业管理者意识到产品测试的重要性,所以软件测试工程师属于朝阳职业。
当然我们也采取了有效措施,如在前期强化基本的编程训练,使学生既能搞开发,也能搞测试,提高就业的灵活性。
(2) 教材少
软件测试作为一个新的专业(方向),目前还没有成体系的软件测试系列教材,所以在选教材时只能选与教学大纲内容相近的教材或技术书,或自己编写讲义。但给讲师授课带来许多困难。当然要很好地解决该问题需要教育管理部门和众多同行的共同努力。
(3) 测试项目实例缺乏
由于测试项目都属于公司内部资料,一般很难获得,不像通用应用程序模块一样在网上可随意找到。对此我们组织设计了一些测试案例,同时从合作的软件公司获取了一些实际项目案例,使学生能在实境中实践。毕业实训时大部分学生则直接到软件公司进行实地实习。
(4) 师资力量薄弱
师资是保证教学质量的关键,开始时师资力量较薄弱,我们采取的措施有:挑选有实际项目开发经验的老师来授课、从IT公司引进专业测试工程师、将有一定测试工作经验的老师送出去加强培训等。另外还不定期聘请IT公司的测试专家来做专业讲座,拓展学生的知识面。
关键词:案例教学;教学模式;软件测试
近几年来,软件测试人员的培育要求和计划已纳入高职教育范畴,具有软件测试的知识体系和工作技能已成为软件人才新的职业构成标准,《软件测试》这门课程成了各高职院校计算机软件专业的一门必修专业课。开设该课程的主要目的是使教学对象掌握软件测试的基本概念和基本理论,掌握基本测试技术和方法,并应用到实践;使教学对象具备软件测试的必备专业知识和实际工作能力,能基本承担起软件测试的工作任务,并为未来成长为软件测试工程师奠定必备的理论知识与实践基础。而目前的情况是,大部分院校软件测试课程的教学并没有较好地达到预期的要求和目的。
一、软件测试课程的传统教学
软件测试课程涉及的专业知识面较广,而且要求有良好的基础知识,如英语、数学等方面的知识。课堂教学内容繁杂,没有规律可循,更难以用一条主线相连、跳跃性大,从而导致学生对教材的理解不深,容易出现前面学、后面忘的情况。本课程具有很强的实践性、综合性和社会性,与工程实践联系紧密,知识更新的速度很快,涉及到有关学科的综合运用和团队合作精神等。因此,如何将所学的内容与实际工程联系起来,学会用所学的理论知识分析和解决实际工程问题,成为该课程教学成败的关键问题。
“粉笔+黑板”仍是目前许多课堂教学的主要方法,这种传统的方法,相对来说,教学环境一成不变,教学手段呆板枯燥,课时效率低。在教学活动中主要采用的是“教师讲,学生听;教师写,学生抄的满堂灌”的教学方法。在学习过程中,学生要不断巩固测试理论知识,加深对其理解和认识,完成所承担的测试项目中的各项工作任务,提交测试分析报告,通过项目培养和训练协同工作、沟通交流、角色转换等,形成实际工作能力。按照传统的教学方法教学,很难解决以上问题,也无法满足现代教学要求。
二、软件测试课程案例教学的重要性
软件测试课程在高职院校是一门本着“理论够用,实践为主”原则的重要专业基础课,但在实际操作中,如何把握这个理论够用的度,实践为主又如何展开,这都需要从实际的教学过程中不断地总结和调整。在软件测试这门课程中,针对高职高专学生基础差、学习积极性和主动性不强的特点,在教学过程中采用“案例驱动”、“从实践中领悟理论”,即案例教学是比较理想的模式。这种模式能够让学生在教学中动手动脑、直观体会实际的测试过程,寻找理论的根据和支点,从而达到预期的教学效果。
案例教学法源自医学教育的问题导向学习(Problem-based learning),强调以学习者为中心的合作学习,是一种跨学科领域的学习架构。此种方式较口述或文字叙述更能传达真实问题情境的复杂,给学生提供更接近真实的问题学习情境。案例教学法除强调问题的真实性外,也着重解决问题过程中学习者搜集、分析、整理资料,乃至提出解决方案的学习历程。
案例教学法的特点是突出实践性、较强的综合性、深刻的启发性、过程的动态性。案例教学法注重学生的智力开发及培养学生解决实际问题的能力。在本课程的教学活动中,采用案例教学能改变传统的灌输式的教学方法,充分调动学生的学习积极性,使学生的思维空间得到拓展,提高其学习兴趣;使学生学会用所学的理论知识分析和解决实际工程问题的方法,从而也改变其对理论学习的枯燥感和“读书无用”的观念。
三、软件测试课程案例教学的思路
1.案例的引入和设计
首先,要根据教学计划安排和教学进度的要求设计教学案例,为课堂的教学内容埋下伏笔。案例教学以案例为基本教学材料,将学习者引入工程实践的情境中。因此,教学案例应具有很强的实践性;要蕴涵工程实践的理论、原则与原理和方法;要具有新颖性、讲究时效性、背景要清晰等特征。其次,在完成理论课的讲解后,再将相关案例发给学生,给学生较充足的课外时间准备相关的材料。一般情况下可通过多媒体教学软件或服务器的形式发放给学生,要求他们在规定的时间内认真完成。一个好的测试案例应包含测试目的、特殊的硬件要求、特殊的软件要求、特定的配置、执行测试的描述、测试的预期结果或成功条件。另外,还要考虑如何将本堂课的新知识点贯穿其中。
2.案例分析讨论
案例分析讨论是案例教学中的重要环节。学生通过分析案例,可以知道本节课要掌握的理论知识、操作内容、注意事项、所要达到的教学要求和目的、在课后应完成哪些报告或查找哪些资料等。案例分析的过程是学生与学生或教师与学生之间讨论交流的过程,教师要善于在讨论过程中启发引导学生,培养他们思考问题的敏捷性和洞察力,让他们学会用理论知识来指导实践,遇到关键节点时能够急中生智,稳中求胜。
在案例教学中,学生的学习在讨论与争辩中进行,学生充当主角,是主动的学习者,教师的角色是指导者和推动者,其作用是领导案例教学的全过程。课堂上教师要组织案例讨论,不仅要引导学生去思考、去争辩、做出决策和选择,解决案例中的特定问题,进而从案例中获得某种感悟,而且要引导学生探寻特定案例情景复杂性的过程及其背后隐含的各种因素和发展变化的多种可能性。
3.案例实验操作
教学案例的主要内容是与教学内容为依据相匹配的,要有较强的可操作性。下面是一个教学内容与案例的匹配图示:
从图1可以看出,在设计实验案例时,既要有简单的基础性实验案例,又要有综合实验甚至是课程设计。简单的基础性实验案例主要是让学生熟悉基本的软件测试方法,综合性的实验案例主要是让学生增强实际操作能力,增加软件项目测试的综合经验。通过一个个综合性的案例,特别是较大型的软件项目测试实验,让学生在实验的每一个步骤中理解软件测试技术和各种具体的测试方法。同时,学生可以通过对案例的操作和理解,进一步了解熟悉软件测试工作的完整流程,包括文档的编写与收集,都是一个很好的锻炼。这样的教学在不知不觉中就迈出了“工学结合”的第一步,与高职教育需求完全吻合。
4.案例归纳总结
案例讨论后要做简短的归纳和总结,从案例讨论中得出一定的结论,为后续的课堂理论教学提供准备。教师在总结过程中,要讲明案例中的关键节点,以及在实验操作时存在的长处或不足,但不宜对错误的观点简单地否定,以免挫伤学生的积极性。实验结果可以多元化。在总结中,要揭示出案例中包含的理论,强化以前讨论的内容,提示后续案例,达到突出教学重点,回归教学的目的。
四、其他丰富的教学方法和手段
经过实践中的不断摸索和总结,发现《软件测试》课程在教学过程中要增强师生互动,提高教学效果,达到预期的教学要求,在教学方法和手段上还可以采取以下几种形式的结合。
(1)课堂进机房,避免纯理论的“PPT滚动”,注重课堂里的师生互动。(2)FLASH动画分解操作内容,教师录相演示操作流程。(3)分组合作讨论,责任到人,各尽其能。(4)优秀组员示范,荣誉物质兼并鼓励。(5)定时地带学生了解软件测试企业“完整的工作过程”,让他们从实践中得到熏陶。(6)“一带一”订单式的互助。让基础好的学生帮助基础不好的学生,督促完成相应的教学内容。(7)开设课外兴趣小组,为基础兴趣较好的学生提供更多更好的实践环境。
五、结语
在高职院校,对软件测试这门课程,我们结合自己的学生不断地进行探索和实践,进行了一系列的教改与创新,受到学生及领导的好评。该教法以企业的要求为导向,注重学生动手能力的提高,注重培养学生主动思考问题、解决问题的能力,同时又运用现代教育学理论,在教学过程中采取案例教学与项目教学等多种教学方法和手段来实现“工学结合”。通过学生座谈会了解到,大多数学生认为这种多样化的教学,使他们对课本知识的理解更加深入,主动思考问题的能力有了一定的提高,动手能力得到进一步加强,“软件测试”的教学质量和教学效果有了较明显的好转。
参考文献:
[1] 张尚仁.古希腊哲学家的故事[M].北京:中国青年出版社,1984.
[2] 李亚.“软件测试”教学探索与实践[J].Computer Education,2008,(6).
[3] 贺平.软件测试课程开发[J].计算机教育,2006,(12).
[4] Ron Patton.Software Testing Second Edition(第2版)[M].北京:机械工业出版社,2006.
[5] 钟元生.软件测试实践教学特色的构建实践[J].电化教育研究,2006,162(10):62-65.
[关键词]软件测试 课程体系 教学改革
[作者简介]李静(1969- ),女,陕西兴平人,河北北方学院信息工程学院,副教授,硕士,研究方向为教学设计、操作系统与软件测试;赵志升(1965- ),女,河北张北人,河北北方学院信息工程学院,教授,硕士,研究方向为教学设计、软件工程、数据挖掘。(河北 张家口 075000)
[中图分类号]G642.3 [文献标识码]A [文章编号]1004-3985(2014)02-0135-02
软件测试技术近年来发展迅速,已经成为与软件开发齐头并进的专业技术。软件测试工程师承担产品功能、性能、可靠性、易用性等全方位测试,保证产品质量,满足用户需求,保证企业信誉,是当前IT业界需求量骤升的热门人才。目前我国软件产业在产品功能和性能测试领域仍然存在着严重不足,软件测试的广度和深度已成为影响企业生存与发展的核心问题。培养大量的具备专业素养和高层次技能的测试人才,更好地推进我国测试行业和测试技术的长足发展,是高等院校必须担负的职责。
一、国内软件测试专业教育现状
自2000年软件测试技术在我国兴起至今十余年,软件测试人才随着软件行业的迅猛发展呈现出供不应求的态势。专业的软件测试机构、测试网站及测试技术培训机构等迅速发展起来。目前,国内许多高校已经逐步设有本科阶段软件测试方向的专业。2011年11月,由教育部主办的“2011年高等学校软件测试课程教学论坛”在上海同济大学召开,对国内软件测试人才的培养及测试领域的全面发展起到积极推动的作用。
1.社会培训模式与现状。当前国内业界一些知名网站主要承担起测试人才的培养职责,如51testing、达内科技、北大青鸟等,为测试行业输送了大批动手能力较强的测试人才。针对性很强的短期教育模式是社会培训的特色。培训机构通常按照助理级、初级、中级和高级测试人员安排培训内容。诸如北大青鸟等规模较大的培训机构引进欧美的混合教学模式,采用“理论知识+分模块项目实践+全真项目实训+职业素质训练”的模式,形成一个科学并且实用的培训体系。培训机构通常设立自己专用的教学平台,通过网络远程授课与集中化分期分班授课方式,在半年到一年的较短时期,培训出上岗快、操作熟练、针对性强的应用人才,而且很多学员直接通过测试工程师面试,并在后期工作中累积了较深厚的测试经验,成为测试领域的支撑力量。培训课程主要内容涵盖操作系统管理、网络应用与Web编程、数据库管理等专业课程,实训环节应用主流的测试工具,如Winrunner,Loadrunner,Rational Robot等。着重于实用性的项目实践和开发是培训机构与高校教育的最大区别。参加这些培训班已成为目前大学生岗前培训的主要途径。
2.高校专业教育现状。软件测试技术要得到广泛应用和深入发展,不能仅依靠社会办学,高校系统化的专业教学体系能够为学生奠定一个更加扎实和科学的专业基础,并对测试技术本身的学科化发展起到不可替代的作用。近三年来,软件测试技术作为专业课程逐渐在多所高校开设。目前,多数高校将“软件测试技术”作为一门独立课程设置,交叉课程主要为“软件工程”。当前一些高校开始申报软件测试专业,但是软件测试技术的学科化发展目前仍受到诸多因素的影响。主要是:(1)缺乏丰富的理论支撑。软件测试目前仍是发展中的计算机技术,专业论著少,适合于高校的教学材料非常有限,并且普遍存在知识结构不合理,教学内容不规范统一,论点少并缺乏依据,实验指导教材匮乏等问题。另外作为一门独立学科,与其他学科的交叉与相辅是理论体系的必要部分,测试技术与计算机领域诸多技术关联,相互结合教学是当前教改面临的问题。(2)目前通用性测试平台仍未完善发展与普及,在高校中缺乏结合教学实验内容的通用的实践平台,实验环境单薄。多数高校停留在泛泛讲授几个热门的测试工具的阶段,缺乏成熟、实用的测试环境来实践完整的测试项目。(3)教学模式上存在严重缺陷,专业培养过程中存在大量的不规范性和随意性。主要表现在:实践课程比例小,测试项目实例缺乏;理论课程知识结构不合理;教学理念和手段陈旧,脱离测试技术发展的实际与市场应用;不重视对学生从事软件测试职业素养的培养。尖端技术的学科化发展是高等院校的职责,建立一个科学、完整的专业教学体系是高等教育最为核心的问题。
3.当前推进测试技术应用的其他途径。除了专业公司培训和高校培养外,当前软件测试行业的发展还依赖于多种良好途径:校企合作、技术沙龙、测试专业微群、社会信息辐射等。新兴技术发展需要社会传播产生的广泛影响力来推动。以MPD(亚太软件研发团队管理)峰会、51testing等领衔的线下技术沙龙活动和巡回演讲,聚集了很多高端的测试人才,相互学习交流,积极推进软件测试行业的发展。一些较有影响的网络微群提供测试技术的交流和分享,如软件测试、敏捷测试、落地微群等,大量的测试人员和测试工程师提供测试过程管理、测试工作总结等资料,有很强的借鉴性。
软件测试行业的人才匮乏仍然是当今的重要问题。依照行业需求,软件测试人员配备应是软件开发人员的2倍,而目前我国软测人员与开发人员比例却仅在15至18之间。以高等院校专业教育为主,实现多种途径的人才培养是当前软件测试行业的当务之急。
二、高校软件测试专业课程体系建设
构建专业课程体系,需要设置好基础课与专业课、理论课与实践课、必修课与选修课的比例关系,并合理安排与协调课程相互间的分工与配合。建设科学完整的软件测试专业的课程体系是一个需要多方考证借鉴和不断探索完善的工作。
1.课程设置。软件测试是一门技术性很强的专业,对专业素养要求很高。在测试模式、测试方法上与软件开发的模式、开发平台直接相关。学生必须对操作系统、软件的逻辑结构以及物理存储过程、操作实现方法达到一定深度的了解和掌握,对于硬件的拓扑结构、物理结构要也需要尽可能多地熟知。在软件测试行业,对优秀人才的要求是拥有高敏感能力、高发散能力、高分析能力,而这些都是以扎实的理论基础为前提的。建设软件测试专业课程体系,应契合技术发展、学科发展与从业需求。经过多方考证,下表所述课程囊括的专业知识对于高层次的自动化软件测试技术的掌握必不可少。
由于计算机专业课程的关联性很强,一些专业课程可以相互结合教学。比如语言类,Shell等可以结合到UNIX/Linux操作系统课程中,HTML/XML可结合到.NET以及网络技术等课程中,PHP融入Web服务器配置等专业选修课程教学中等,避免专业内容交叉而造成的重复教学现象。在教学过程中,要将软件测试的思想广泛地渗透到所有的专业课程中。如在各类程序设计语言基础课程中引入单元测试的思想,在软件工程课程中强调软件测试的重要性,增强软件质量管理意识。当前微软、苹果、惠普等软件公司都推出完整的计算机应用与开发平台,从硬件、操作系统、集成开发环境到用户应用软件,基本上提供一条龙服务。以微软为首的测试框架开发也日趋成熟。高校需要从专业建设角度考虑,把握学科发展方向,汲取众家之长,将尖端技术和主流应用平台作为专业教学内容,在有限的学时之内统筹安排,让学生形成一个专业学习的整体思想,做到知识累积层次清晰、得到一个完整的专业知识体系。随着测试技术的快速发展,课程设置需要不断更新调整,既要考虑专业建设、学科建设,又要考虑市场需求和研发需求。合理选择、科学地纳入新知识到专业课程中,是需要不断探索和改革的无止境的工程。
2.教材选择。教材选择应当宽口径,除了主要教材之外,要为学生提供更多的辅助教材和资料,给学生自主学习的空间和时间。这方面要学习西方高等教育的模式,按照教学计划和教学内容,指导学生分期、分阶段大量阅读与课程相关联的专业资料,并汇总论点和典型实例展开讨论,开阔学生的眼界,培养学生独立思考、逻辑分析能力和探索精神。另外,教材选择应把握专业技术的最新发展,与专业领域的最新研究成果、社会培训资料等结合,及时更新教学内容。例如有经验的测试工程师撰写的技术开发、测试报告与测试总结等书籍资料,是完善和填充教材的重要知识源。
3.实验教学规划。(1)实验教学内容,应包括两部分:测试框架应用和测试项目实践。前者是指基于实验室配置的测试框架,选择针对操作系统或者客户端软件、网站等的服务性能测试案例,编写一些通用的测试脚本,在测试框架上实现完整的测试流程。后者是指选择实际的软件测试项目来组织实验教学内容。在测试项目实践中,需要提供给学生被测试的软件系统代码以及软件开发综述,包括需求分析、概要设计书、详细设计书等文档,便于学生真实地模拟实际工作中的测试流程。项目实践中,可将学生分成若干个项目组,分别设置测试经理、测试负责人、测试人员等角色,依照测试用例设计、测试任务管理、测试计划实施、测试过程监控、测试日志与测试报告管理环节,安排角色各司其职,协同完整测试项目,并对被测软件系统做出质量评审,撰写格式规范的质检报告。通过实验教学,使学生深入理解和掌握常用测试工具,如单元测试工具NUnit等应用,提升学生的项目管理经验和软件测试技能。(2)实验教材选择:实验教材选择应参考社会培训机构的项目实训资料,选择基于主流测试平台的项目实例教程,并结合测试技术的应用发展现状和高校测试环境,广泛筛选辅助资料,设置测试项目,丰富实验教材的内容。(3)实验环境配置:搭建面向高校教研的通用测试环境。当前各类测试平台及测试工具不断推出,种类繁多,但针对性较强,应用性能受到限制,缺乏可被广泛普及的通用型测试平台,导致测试过程缺乏通用性和稳定性、测试标准设定和测试价值评估无法明确等问题。建立一个通用测试环境对高校的实验教学和专业研究十分必要。通用测试环境应囊括软件测试管理平台、回归测试平台和性能测试平台功能。提供软件的文档审查、安装测试、功能性测试、易用性测试等测试项目,并能提交形式内容规范的测试报告。通用测试环境搭建需要高校结合专业研究项目实施二次开发。
三、面向从业需求的教学改革
1.注重面向市场应用的课程体系改革。为了更好地为社会培养应用型人才,高校应以企业岗位能力需求为标准,不断进行课程体系改革,构建“知识+应用+研究”的混合型课程体系结构,为学生从业后尽快适应工作岗位,担负起科技职能,并进一步从事测试技术开发与研究奠定基础。软件测试课程体系改革应基于不断发展的测试技术以及社会测试岗位的能力需求,从培养学生专业素养、测试技能、项目分析能力、探索开发能力等全面素质的高度进行必要的整合和重组,把学生应具有的知识、能力、素质结构作为课程体系改革的依据,组建模块化的课程结构。
2.注重面向从业需求的教学实践改革。面向从业需求,加强教学实践环节是高校实验教学改革的重要内容。目前很多高校与自己的合作企业签订培训合约,建立人才基地,共同开发软件和培训人才、交流人才,是教学结合实际应用的最佳模式。围绕着以企业需求为目标进行实验教学,使学生在真实的项目流程中对软件测试的完整过程与实施细节、管理机制与管理措施进行全面的了解,提高测试能力和积累测试经验,便于学生日后尽快适应实际工作,在专业技术岗位发挥人才作用。
3.注重培养学生的职业素养。高等教育为社会输送专业技术人才,不能忽视对人才职业素养的培养。在教学过程中要把专业素养、技能训练和职业素质培养有机结合起来。在学生实践与实习过程中,注重培养学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力,并培养学生的团队合作精神和相互协作能力,提高将来从事测试行业的职业素养。应结合社会对软件工程师的岗位需求,设立面向毕业生的专项系列讲座,为学生提供面试技巧培训、竞争意识培训、沟通与协作技巧培训和就业指南等,是极具实效且必要的教育内容。依照国外标准,软件测试工程师应与架构师处于同一等级。从事测试行业必须具备扎实的专业基础、综合的个人能力和较高的职业素养,才能真正实现高端的自动化测试。
[参考文献]
[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005.
[2]钱丽.以就业为导向的软件测试课程体系改革探析[J].科技信息,2012(1).
[3]顿煜卿.软件测试教学过程中的思考和实践[J].计算机光盘软件与应用,2012(14).
Abstract: Nowadays, more and more attention has been paid to software testing, many colleges and universities have set up software testing courses, some colleges and universities have established software testing professional. This paper takes the students of the computer science department of Beijing Youth Politics College as the research object, combined with the characteristics of higher vocational college students, through the comparison of different case teaching effect and current interests of the students, and the demand of enterprises, makes a preliminary analysis and produces a relatively suitable software testing technology course case base.
关键词:高职院校;软件测试;案例库
Key words: higher vocational colleges;software testing;case base
中图分类号:G423.07 文献标识码:A 文章编号:1006-4311(2017)03-0217-02
0 引言
随着科技的迅猛发展,人们在日常工作和生活中,已经离不开电子产品,作为它们灵魂的软件,其智能度和复杂度也越来越高,更由于网络和智能手持设备的普及,人们对于软件的质量也提出了更高的要求,而软件测试就是为了保证其质量的有力法宝。目前,软件测试已被越来越多的公司和学校重视,很多高职院校也都开设了相关的课程。但是,作为一个高职的新兴专业,此专业教学内容新、课程案例少,教学资源不足,在这种情况下,研究和制作适合高职院校教学的课程案例是非常有必要的。
1 高职院校软件测试技术课程教学现状
1.1 软件测试技术课程及从业人员特点
软件测试是一门综合性的学科,测试不只是测试的执行,它包括从测试计划的制定到测试结束后测试报告的撰写等一系列活动,有着较强的理论性、设计性和实践性。要学好软件测试课程,满足从事软件测试岗位的要求,业务能力方面,从业人员需要较强的阅读分析能力,文档编写能力,测试用例设计能力,还需要了解软件项目开发基本过程和特征,具有基本的编程能力。个人素质方面,从业人员需要有较强的责任心,要有团队合作的沟通意识和时刻保持怀疑的态度且具有缺陷预防意识,同时还要细心、耐心。
1.2 软件测试技术教材现状
目前,面向高职院校的软件测试技术的教材,其教学目标和教学内容仍然偏重理论知识掌握,很多教学内容严重滞后,大部分教材案例旧,与时代脱节,激发不起学生的学习兴趣,学生的参与度不高。教材中关于实践的设计相对少,与市场上的软件测试岗位要求掌握的基本技能差距较大,而且教学案例简单,学生没有完整的测试思路。
1.3 高职院校学生现状
高职学生录取分数低,加之近几年北京生源减少,高职的录取分数更低,学生的文化基础较差,大部分学生的学习动力不足,自我控制力差,对于学习缺少有效的学习方法。针对北京青年政治学院计算机系2014级计算机应用技术1、2班开设软件测试前的调查显示,学生对于之前学习过的程序开发基础掌握差强人意,文档编写能力弱,理论知识掌握较差。由此,引导学生自主学习,激发学生的学习兴趣,提高学生的实践能力,就需要把握高职学生特点,掌握学生的兴趣点,与课堂教学有机的融合在一起。
2 案例库建设
职业院校的教学应该立足于应用,而应用是为了尽快走向工作岗位,借鉴招聘网站中招聘软件测试岗位的需求,找准目前企业需求的方向,调研测试公司的实际操作流程,再参考测试培训公司的讲课模式,讲课案例,结合高职院校学生的特点,才能开发适合高职学生的课程案例。
2.1 案例库建设原则
软件测试技术课程的理论性和实践性都比较强,而高职学生的特点之一就是对理论的学习效果差。如何选择合适的案例让学生在积极参与实践的过程中把理论知识掌握是案例库建设的指导性原则,由此,案例库建设应满足以下几个基本原则:①规范性:案例的建设要符合国家信息资源建设技术规范。②新颖性:案例库的建设要在充分调研学生的兴趣和爱好的基础上选取,才能调动学生的参与性。③学科性:能与软件测试的理论知识结合起来,让学生在实践中掌握知识点。④连续性:时代在发展,新生事物不断出现,学生的兴趣点也不断改变,案例库的建设应该与时代同步发展。
2.2 案例库建设模型
以案例库建设原则为指导,结合课程知识点,调研学生的兴趣爱好,调查企业需求,找到合适的结合点,开发出适合当前高职院校的软件测试案例,建设模型如图1所示。
2.3 案例库建设举例
由于网络及电商的发展,网上购物已成为常态,现在的学生几乎都参与网购,尤其是双11、618、各大节日时各电商的促销,更是把网购推向高峰。针对这一现象,在讲到黑盒测试中状态迁移方法的时候,打开某购物网站,与学生一起回顾网购经历,从选择产品,加入购物车,清空购物车,提交订单,撤销订单,结算,退换货等流程,引导学生把这些步骤作为一种状态,再按照实际操作过程,与学生一起分析各种状态之间的到达情况,做出状态迁移表。
作为购物买家,只是处理自己的相关信息,流程相对简单。而作为卖家,需要处理的信息量很多,面对的是所有购买本商店商品的买家,所以卖家对订单及相关信息的处理才是业务的关键。由此,在学生自己购物流程的基础上引导学生作为卖家身份来处理信息,并指导学生分小组讨论,模拟买家与卖家,统计出买家与卖家之间的活动有多少种,怎样才更全面,更人性化,更合理。例如,取消订单在何时买家能操作,何时后不能取消,退款、退换货的申请与处理,都让同学们在模拟中体会。以小组为单位,共同找出所有的状态点,再分析各种状态之间的关系,在如表1购物网站订单信息状态基础迁移表所示(X表示不可达,?处需要学生讨论完成)的基础上补充并完成状态迁移表(表中可添加新状态),并进一步按照状态迁移图设计方法,做出状态迁移图,设计出完整测试用例,最后教师点评、总结。案例讲解完成。
3 课堂教学效果
教学效果以北京青年政治学院计算机系2014级计算机应用技术1、2班为调查和测试对象,以讲解状态迁移图为例,在课堂教学中发现,学生对课本的例子注意力整体上比较散,不是特别的感兴趣,学生的参与度不高,而与学生一起打开购物网站,一起回顾购物流程时,发现学生明显比较感兴趣,参与度很高,尤其是分模拟角色在处理退款与退换货时在热烈的讨论中完成了各个状态的设定,并顺利完成了状态迁移图和测试用例的设计。在随堂抽查中,发现学生很好的掌握了状态迁移图方法的精髓,达到预期教学目标。
4 结语
时代在发展,科技在进步,随着新兴事物的出现,学生的兴趣点也会有所变化,所以,案例库的建设不是一劳永逸的,而是一个不断发展和改革的过程,我们要不断淘汰不适合的案例,增加新的适合的教学案例。
参考文献:
[1]田明君,张月,吕俊燕.《软件测试方法与设计》课程教学改革的探索与实践[J].电脑知识与技术,2015(31).
[2]董玉坤.“软件测试”课程教学现状分析[J].课程教育研究,2015(9).
[3]郑小蓉.高职院校《软件测试》课程教学问题及对策研究[J].科技资讯,2016(20).
关键词:软件测试;课程改革;实践教学
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)21-5186-02
Reform and Practice of Software Testing Professional Course in Higher Vocational Education
ZHANG Xiao-qin
(Anhui Vocational College of Electronics & Information Technology, Bengbu 233030, China)
Abstract: Software testing professionals are extremely deficient, training software testing professionals has already been one of the most urgent tasks in higher vocational education. This paper analyzes the teaching situation of the software testing professional curriculum in higher vocational education and analyzes the software testing professional practice of teaching reform form and achievement of Anhui Vocational College of Electronics & Information Technology, offer reference to other vocational colleges in software testing curriculum construction.
Key words: software testing; curriculum reform; practice teaching
近年来,中国软件产业保持了迅猛发展的态势,而与此同时,软件缺陷带来的影响也日益增多,软件产品质量也越来越受到人们的关注。软件测试是减少软件缺陷最有效的手段,然而,由于国内软件测试行业起步较晚,只是最近几年才开始兴起,这就使得软件测试人才极度匮乏。51testing公司的《2010年中国软件测试从业人员调查报告》显示,中国软件企业软件测试人员与开发人员比例为1:1的只占10%,而比例为7:1以上的占了20%。而且这个数据调查的还是设有专门软件测试人员的企业。有的企业甚至还没有软件测试部门和专门的软件测试人员。而国外小一些的软件企业,软件测试人员与软件开发比例基本是1:1,微软公司更达到了2:1。按照这个比例,国内测试人才的缺口至少有20万,在未来5到10年中这一数字还将继续增大。如何尽快建立软件测试人才的系统培养机制、进而保障软件业的健康化发展已成为现阶段亟需解决的当务之急。
1 高校软件测试专业课程教学现状
近两年来,软件测试人才的培养也受到了高校的重视,有的高职院校甚至本科院校也尝试着开设软件测试专业。然而却存在着以下的缺点:
1.1 教学模式陈旧
“本来数量就不多,何况质量又不好”,这两句话可以概括现在高校开设软件测试课程的现状。很多学校本身并没有软件测试专业,软件测试课程的教学只是作为软件工程专业的一门课程《软件测试》。通过一门课程想要系统的讲授软件测试,让学生毕业后从事软件测试工作非常之困难。由于只有一门课程,课时毕竟有限,很多学校就选择将软件测试方法以理论讲授的方式灌输给学生,忽略了实践教学或者实践教学所占的比重很小。
1.2师资力量薄弱
51testing公司的《2010年中国软件测试从业人员调查报告》显示,“软件测试从业人员的出生年代集中在20世纪80年代,所占比例为91%,出生于70年代的不到8%,60年代的比例不到1%”。这份数据从侧面显示,软件测试行业在国内是一个新兴行业。这也说明了现在在高校从事软件测试专业方面课程的教师并不是真正的软件测试专业毕业的教师。这就使得大部分教师本身对这个专业并没有进行过系统的学习。而且,由于教师主要在学校从事教学工作,参与到真正项目中的机会比较少,他们的项目经验不足。这也就导致教师在教学过程中并不能将真正的工作过程传授给学生,使得学生掌握的技能和实际工作的要求有所偏差,甚至有很大偏差。
1.3 案例教学中案例库案例过于简单
很多高职院校在教学过程中也注意到这一点:软件测试专业的课程不能只偏重理论,而应该将理论教学和实践教学联系起来,提出了“项目教学法”和“案例教学法”,这些方法确实取得了不错的效果。然而却也存在着这样一个问题:项目和案例从何而来?从调查情况来看,项目和案例的来源主要有:
1)往届学生毕业设计;
2)学生上机作业和课堂作业;
3)教材和参考书;
4)互联网;
5)教师自己编写的案例。
这些案例相对来说比较简单,实用性不强。作为一门课程的实践教学基本上可以,然而要想让学生通过这些项目掌握真正的测试技术,还是比较困难的。学生在测试这些项目时可能在老师的指导下能够顺利进行,而在实际工作中面对一个真正的项目时却不知如何下手。
2 软件测试专业课程实践教学的改革
2003年,安徽电子信息职业技术学院成为全国35所国家级示范性软件职业技术学院之一。2004年就有预见性地开设了软件测试与维护专业并开始招生。这些年来,一直对软件测试专业的课程建设进行探索,目前取得了不小的成果。
根据这几年的探索与实践,我们认识到,软件测试专业课程教学的难点在于实践教学。软件测试的相关理论学生很好理解,例如黑盒测试方法中的等价类划分法。学生对这种方法能够理解,给出一段程序规格说明,他们能够划分出各个有效等价类和无效等价类。但是在实际项目测试中,在设计测试用例时,又往往设计不出合理的测试用例。要么冗余,要么没有覆盖到所有的等价类。所以,在教学过程中要把更多的时间与精力放在实践教学上。
安徽电子信息职业技术学院软件测试专业课程的实践教学改革主要体现在两个方面。
2.1 单个课程的实验教学――案例教学法
在单个课程的实验教学中我们采用的是案例教学法。例如《软件测试》这门课程,我们的实践教学主要体现在实验教学上。在实验教学中,选取学生熟悉的“学生管理信息系统”,首先对其需求分析说明书进行静态测试,再对其中的重点模块例如登录模块,用户管理模块等进行单元测试,然后将各个模块组装起来进行集成测试等。在教授理论的同时,让学生能将其应用到实践之中。
2.2 整个专业课程的综合实训――企业实际工作场景教学
单个课程实验教学中的案例都很简单,而且是学生熟悉的一些程序,主要是让学生能够更好地理解软件测试的理论方法。然而,想让学生通过这些项目的训练掌握测试技能,毕业之后直接从事软件测试工作基本上不可能。安徽电子信息职业技术学院前两年的软件测试与维护专业采用的就是这种教学模式,然而经过对毕业生的跟踪调查,发现学生对自己掌握的测试技术很不自信,毕业之后根本不敢进入软件公司从事软件测试工作。所以只有很少的学生做测试,其他同学都转向了编程,等有了开发经验之后再转向来做测试工作。
经过我们课程组的讨论,大家认为之所以造成这种现象,最主要的是学生实践不够,训练不多,而且没有接触过真正的项目。而要让学生测试真正的项目,熟悉工作流程,仅仅依靠学校的师资力量是远远不够的。于是,2008年我们进行了教学改革。与中国科技大学软件学院、安徽科大讯飞信息科技股份有限公司合作成立了“科大讯飞软件测试实训班”,聘请科大讯飞公司一线的高级软件测试工程师来给学生上课。而且上课方式采用的是公司上班形式。学生每天8点准时“上班”,下午5点“下班”,有时还设有“加班”。在教学过程中,采用的是公司实际的项目,有的是以前做的项目,有的是正在进行中的项目。学生每天在“公司”上班,早上召开“晨会”,讨论项目进展情况,并制定一天的工作计划。下班前召开“晚会”,对工作进行总结并就遇到的问题探讨解决方案。经过三个月的实战演练,学生的实践能力得到了很大的提高,而且对自己充满了自信。他们毕业后都能找到满意的对口的工作。
3 软件测试专业课程实践教学改革取得的成效
2010年我们针对于08级学生又开办“科大讯飞软件测试实训班”。现在学生还没毕业就已被用人单位“抢购”一空,就业效果非常好。
经过这两个阶段的实践教学,我们的学生对软件测试工作已非常熟悉,在真正的岗位上能胜任软件测试工作,并逐渐地在工作中起到骨干作用。
4 结束语
作为高职院校,软件测试专业以培养软件产业生产一线急需的高素质技能型专门人才为目标,要求学生在毕业前掌握软件测试的基本方法及常用测试工具的使用,具备较好的软件综合素质,满足软件产业快速发展对软件测试人才的需求。而要达到这一目标,实践教学必须得到高度的重视和合理的设计。
参考文献:
[1] 程茂,温静,吴玉洁.《软件测试》课程的教学研究[J].河北师范大学学报,2010,12(4):117-120.
[2] 胡冬萍.普通高校软件测试课程建设初探[J].中国教育信息化,2007(12):70-72.
[3] {志升.软件测试技术教学方法[J].电脑知识与技术,2010,6(9):2275-2276.
[4] 周元哲.“软件测试”教学改革的探索与实践[J].计算机教育,2008(22):14-15.
关键词:翻转课堂 微课程 PPT制作
中图分类号:G712 文献标识码:A 文章编号:1003-9082(2016)02-0243-01
一、引言
双语教育(bilingual education)的历史源远流长,它最早在美国、加拿大等国家实施并获得了成功,被国际外语教学界公认为是一项成功的外语教学策略。有些国家出于统一语言、社会稳定的需要,专门由政府立法把它上升为国家的一项基本国策。[1]国外的“双语教育”,在我国称为“双语教学”,近几年我国部分中小学、高职、本科开始了双语教学的探索,即把英语教学大胆整合到非语言学科教学中,以此来提高学生的英语能力。双语教学是外语教学发展到一定阶段的产物,这是由我国的现实情况决定的。[2]随着世界经济一体化、全球化和现代化进程的加快,社会对精通双语的复合型人才的需求越来越迫切。
我国《教育信息化十年发展规划(2011―2020年)》指出,“教育信息化的发展要以教育理念创新为先导,以优质教育资源和信息化学习环境建设为基础,以学习方式和教育模式创新为核心”。[3]微课程的概念最早可追溯到1960年在美国传统教育中兴起的“微型课程”概念,“微型课程”又称为短期课程、专题式课程或者模块课程,是在学科范围内由一系列半独立的、小容量的学习单元(学习专题)组成的一种课程形式。[4]“微型课程”作为新型的课程形式在20世纪70年代正式引人美国的课程改革,因其自身周期短、灵活性强、易操作的特点得到广泛的应用和推广。本文以计算机双语的微课程建设为例,讨论了基于翻转课堂的软件项目开发双语微课中的软件测试实例,为基于翻转课堂的计算机双语课程的研究提供了范例。
二、基于翻转课堂的计算机双语微课程的开发
在基于翻转课堂的计算机双语课程的开发过程中将翻转课堂与微课程相结合,先让学生通过计算机双语微课程对教学中的重难点进行自学,再在课堂上通过教师的指导、学生间的协作学习掌握和内化知识,实现先学后教的计算机双语课堂反转。下面以基于翻转课程的软件项目开发双语微课程中软件测试为例,讨论微课程的设计环节。
1.教学分析
在计算机双语教学软件项目开发时软件测试(Software Testing)是教学的一个主要内容,这个章节主要求学生学会如何进行软件测试,如要求学生掌握软件测试的概念、软件测试的目的和原则、软件测试方法、软件测试的步骤、软件测试用例的设计以及面向对象的测试等。现以“测试用例的设计(Testing samples design)”为例进行分析与设计。
1.1教学目标分析
知识与能力目标:掌握白盒子法测试用例的设计(如语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖)、黑盒子法测试用例的设计(等价值划分、边界值分析、错误推测法),培养学生解决问题的能力和专业英语的应用能力。
情感态度和价值观:通过实际用例的设计提高学生的专业素养和英语水平;进一步培养学生的学习兴趣。
重点:针对具体问题用不同方法进行测试用例的设计。
难点:条件组合覆盖、错误推测法。
1.2教学条件分析
教室中必须要配有计算机、投影设备、音响等教学设备,教师应熟悉计算机软件的测试用例的设计及具备一定的英语水平,能熟练使用教学课件。
1.3学习评价设计
本课程主要采用形成性评价的学习评价方式。[5]在教学过程中对学生的学习情况进行形成性评价,即在课堂中及学生完成随堂作业的过程中,通过巡视课堂、观察学生操作的情况,通过询问以了解学生对知识点的掌握情况。
2.基于翻转课堂的微视频设计
首先依据软件项目开发的课程标准进行视频素材的选取,一般是对已有的资源进行创作和加工。
然后再进行微视频内容的设计。这里将其分为三个步骤。步骤一:展示软件测试后的实例结果,进行翻转教学。[6]先让学生对测试用例的设计有一定的认识,再引发其对学习这个任务的兴趣;步骤二:先后使用不同方法进行用例设计。从实际测试用例的设计入手,让同学们对这个任务有一个感性的认识;步骤三:进行测试方法的总结。总结不同的测试方法并进行比较和分析。
接着要对上述内容进行详细的脚本设计。脚本设计完成后,再根据脚本进行视频的制作,用录播软件将上述过程和步骤都记录下来,在后期的编辑过程中,把画面编辑好后,再配上解说词和标注。
三、结语
在基于翻转课堂的软件项目双语微课设计中,需要教师在对本课程内容非常熟悉及英语口语非常熟练的前提下进行大胆创新,通过内容翻转和新的教学手段,促进高职计算机双语课程的教学质量。
参考文献
[1]王亚丽:“双语教育在我国的实践”,《学前教育研究》,2002年
[2]魏日宁:“文莱的双语教育及其启示”,《中小学英语教学与研究》,2004
[3]白丽洁.学前教育专业情境教学法在一体化教学中的应用 [J]. 校园英语,2014.
[4]刘梅.浅谈“微课"及其在高职专业英语教学中的应用[J].长沙通信职业技术学院学报,2013.
[5]陈葆华.浅析微课在高职高专教学中的运用[J].时代经贸,2014.
本人从事一年级《计算机组装与维修》教学,根据中职学校学生的升学和就业的需要,在教学中,我认为《计算机组装与维修》课程主要涉及四类主要的知识块:硬件组装(匹配)、故障检测、软件安装及软件测试。下面具体探讨“硬件组装”、“故障检测”、“软件安装”及“软件测试”四类主要的知识块如何按照“任务驱动”教学模式进行教学。
⒈“硬件组装”知识块
该知识块的教学组织与实施一般过程为:课堂设计――示范引导――模仿试做――纠错重做――复述总结。主张课堂组织以学生小组为中心,内容教学以任务为驱动,形成师生互动、生生合作的探究式学习氛围。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
示范引导――主讲教师进行操作示范,在此过程中结合录像、课件、网络、软件进一步向学生展示操作的全过程。
模仿试做――学生在观看完老师的演示后开始动手实际操作,教师巡视指导,发现个别错误与一般错误。
纠错重做――及时纠正个别错误,集体讲评一般错误,之后让学生重做一些步骤。
复述总结――最后老师对操作步骤进行复述,特别提醒容易出错的步骤和环节,总结整堂课技能要点、方法要点和社会需要要点。
例如,在“为系统安装网络硬件”课例中,抓住其中的网卡安装、插槽选择、金手指的接触情况、网卡类型的选择,IP地址的设置等几项关键技术,而在网络原理、网络ISO的分层则一带而过只作简单介绍。教师先讲解示范,接着由学生试做,同时教师巡回指导,发现个别性问题,及时指导解决;针对一般性问题,教师则讲评纠错;之后对一般性问题容易出现的环节,让学生重做有关步骤。
2.“故障检测”知识块
“故障检测”包括硬故障和软故障的检测,硬故障是指计算机硬件出现的问题,软故障是指软件运行出现的问题。该模式的一般过程为:课堂设计――预设故障――分组讨论――尝试修复――纠错重试――分析总结。上课前教师提前预设若干个可控制故障,上课开始时分组讨论每个故障产生的原因,在讨论的基础上小组尝试排除故障。这种模式采用问题驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
3.“软件安装”知识块
“软件安装”包括系统软件安装和应用软件安装,以及多操作系统安装。“软件安装”行为引导教学模式的一般过程为:课堂设计――软件介绍――安装提示――学生安装――个别辅导――总结提高。本模式教学以问题或任务为驱动展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
软件介绍――介绍所要安装的软件背景知识,包括软件的开发商、版本的演化、最新版本的功能等。
4.“软件测试”知识块
“软件测试”就是用软件对硬件系统进行性能测试,目的是观察或比较不同品牌的组件的性能表现。“软件测试”行为引导教学模式的一般过程为:课堂设计――布置任务――分组操作――结果报告――比较分析。这个过程采取任务驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
布置任务――软件测试包括两类任务,一是匹配性测试,一是系统优化测试。教学中可以选择某一类任务或两类任务组合进行。
分组操作――学生在明确任务后开始分组测试。
结果报告――对小组测试参数进行分析,形成一个有说服力的组件选择方案或匹配优化的测试报告。
在教学中可以充分利用学校的现有资源。现在计算机技术发展很快,各个学校都有许多淘汰的计算机,但它们都还可以正常使用。我们可以利用它们建立计算机组装与维修实验室,在加上一些典型的、比较新的演示教师机,基本就能满足教学要求,解决学生的动手操作问题。上述大部分教学都应该在组装与维修的实验室进行才能达到教学目的。
在本课程中还有很重要的组成部分那就是实训部分。《计算机组装与维修》实训的目的是锻炼和培养学生实际操作技能和解决问题的动手综合能力。学生可在基本掌握各部分内容的基础上集中进行相关实验,以加深对知识的理解和掌握。在实验的基础上进行实训,提高学生的软硬件安装水平和排除故障的能力。
本课程考试改革的目的旨在加强学生技能、能力培养,使学生重视实践性技能的学习。课程考试采用抽签抽取问题决定操作考试和口试内容的考试方法。通过建立涵盖《计算机组装与维修》各关键技术的项目库,给出各操作项目的难度系数,考试前将这些操作项目作为考试内容公布给学生,让他们全面准备,这些项目涉及组装、测试、维护和维修的主要方面,目的是要学生全面掌握操作内容。考试时,让每个学生随机抽取一个项目,学生先口头陈述本操作项目的原理、方法、步骤和过程等,然后再进行动手操作,操作完成后学生还可以再作补充陈述。教师根据操作与口试结果,以及所选择项目的难度系数,以操作与口试7:3的比例给学生评定本课程考核成绩。具体安排为整个考试总时间为3小时,包括口试和操作考试。口试陈述、答问30分钟,其余时间为操作考试时间,操作完成后学生还可以再作补充陈述。
考试程序为:
(1)学生抽取考试项目。
(2)根据项目名称,口头陈述本项目的原理、方法、步骤和过程,期间老师根据学生陈述情况随时提出问题,学生口头回答。老师做好相应口试记录。
(3)学生进入操作考试,教师和辅导教师全程监控,并做好相应的记录。
(4)操作完毕,有需要再陈述的学生可以提出补充陈述要求,否则离开考场。监考老师合议评定学生考试成绩。
如上面的考题学生基本都能回答正确,这样进入社会工作后,基本可以达到用人单位对中职计算机应用专业学生的要求。那我们的教学目的也就达到了。
附加:
本课程所需要的实验条件:
随着软件开发应用需求和软件产业经济的发展,软件工程理论、方法和技术也在不断发展,社会对软件人才的数量需求越来越大,对软件人才的规格的要求也越来越高,越来越精细。2002年,我国教育部新增软件工程专业,2011年软件工程被设置为一级学科。
由于软件的应用领域不断拓展和深入,软件规模不断扩大,复杂程度不断提高,可靠性要求越来越高,软件的质量风险越来越高,1991年美国爱国者导弹由于系统时钟内的一个软件错误导致导弹误炸美国士兵等恶性事故给软件质量敲响了警钟,软件质量保证与测试的重要性日益突出,越来越被业界所认同和重视,软件质量保证与测试已经成为软件工程专业的核心课程,介绍软件质量保证与测试的相关基本概念、软件测试理论、测试方法和测试技术等,通过该课程的学习,要让学生树立软件质量保证和测试的观念,了解测试理论,掌握测试方法和技术,能够分析软件测试问题,制定测试计划,设计测试用例,编写测试脚本,执行测试过程,对测试结果进行总结分析,撰写测试报告等。
软件质量保证与测试是一门新课程,为做好该课程的建设,我们依托校企合作,从以下方面来加强课程建设。
一、紧贴企业职业岗位需求,明确教学目标和要求
应用型本科教育主要任务是培养高端技术应用型人才,为体现应用型人才培养的特点,我们软件质量保证与测试课程的教学内容、难易程度把握等应针对企业职业岗位需求,为此我们和文思海辉等多家企业合作,深入企业了解软件质量保证与测试职业岗位的知识、素质、能力需求,并以此作为课程的教学目标和要求。
二、引入企业教学资源和实践教学师资力量,快速提高课程建设水平
软件质量保证与测试是一个新兴领域,一门新的课程,校内教学资源积累不太多,任课老师的相关实践能力不太强,为此,我们专门从合作企业引入软件质量保证与测试完整案例;测试需求分析、测试计划、测试设计、测试报告等全套文档;软件测试工程师等,投入我们的软件质量保证与测试课程建设和实践教学,快速提高课程的建设水平和教学水平。
三、加强实践教学条件建设,建设立体化课程,强化实践能力培养
实践教学环节在软件质量保证与测试课程中非常重要,目的是要通过实践教学让学生理解和掌握软件质量保证与测试的相关理论、方法和技术,掌握规范化的软件质量保证与测试流程和测试工具的使用,并能应用到实际的软件质量保证与测试项目当中去,提高学生分析和解决软件质量保证与测试问题的能力。
为此,我们大力加强实践教学条件建设,建立软件质量保证与测试实验室,从企业引进了多个软件质量保证与测试相关软件,如表1,用于课程实践教学。
表1用于课程实践教学的软件质量保证与测试相关软件
[序号\&软件名称\&教学用途\&1\&Logiscope\&静态代码分析\&2\&IBM Rational Functional Tester\&自动化功能测试\&3\&51test\&综合测试项目\&]
为强化实践能力培养,我们的软件质量保证与测试课程由理论课程、实验和课程设计三个环节组成,如表2,三个环节有机结合,服务于学生的实践能力培养。
表2软件质量保证与测试课程的三个教学环节
[序号\&教学环节\&学时\&教学内容\&1\&理论教学课程\&32\&介绍软件质量保证与测试的相关概念、理论、方法和技术。\&2\&课程实验 \&16\&黑盒测试、白盒测试、自动化测试等测试技术的课程实验。\&3\&课程设计\&20\&学生实际参与综合测试项目,完成整个测试过程。\&]
四、结合校企合作,编写应用教材型
在经过一段时间的软件质量保证与测试课程教学和建设资源积累的基础上,结合校企合作,我们在2013年12月自编了教材《软件测试技术实验指导和习题》,由南京大学出版社出版,该教材规范了实验教学内容,并把依托于Logiscope、IBMRationalFunctionalTester等测试软件的实验教学设计写了进去。
下一步我们将依托校企合作继续进行《软件质量保证与测试》理论教材的编写,并开发相关教学课件,开设软件质量保证与测试MOOC。
总体来看,我们的软件质量保证与测试课程建设取得了一些阶段性的进展,如:①依托校企合作、结合实际案例、强调实践教学的课程组织和实施形式大大提高了学生的学习兴趣,受到学生欢迎。②建立软件质量保证与测试实验室,引进多款软件质量保证与测试相关软件,改善了教学条件,保障了教学需求。③引入企业教学资源和实践教学力量,安排理论课程、实验和课程设计三个教学环节,强化了学生的实践能力培养,提高了学生的实践能力。
但是,作为一门新课程,软件质量保证与测试距离优秀课程还有很多工作要做,下一步,我们要进一步提高课程建设和教学水平,依托校企合作继续进行《软件质量保证与测试》课程教材的编写,开发相关教学课件,开设MOOC,适应不断发展的课程建设和教学需求。
一、建立独立学院特色计算机软件人才培养机制的必要性
1.1 软件产业人才结构与就业现状的需要
据权威部门公布的调查数据显示,我国对IT人才的需求每年至少在40万人,其中每年至少存在20万软件人才缺口,并且这个缺口还在以每年20%左右的速度增长。各地举办的IT招聘会场场爆满的情况即可看出些端倪。如此之大的软件人才需求量,给作为高等教育新生力量的独立学院带来了比较好的机遇。
然而,我们也看到大量计算机专业毕业生面试时却屡屡受挫。经过分析,公司或企业需要的是能够马上投入实际工作的人员,而不是像大多数应届毕业生那样,缺乏实际编程能力,甚至不知所措,需要公司投入大量人力、物力、财力进行培训,这无形中加重了公司的成本负担,因此大多数的工作机会顺理成章地被给予有过从业经验的人士。有研究曾经对185家用人单位进行问卷调查,结果表明:68.6%的用人单位希望毕业生能掌握系统的专业知识,缩短培训期;54.6%的用人单位认为毕业生的适应期应在三个月以内。计算机专业学生感觉就业难,企业招不到合适人才,已经成为令人极为头疼的矛盾现实。究其根本原因,是我国高等院校目前的计算机教育,尤其是软件人才培养,不能满足企业的现实需求。高等教育市场化,高校毕业生人数不断增加,就业压力越来越大,如何在激烈的就业市场竞争中毫不逊色,改革势在必行,这对独立学院的计算机软件人才培养机制提出了更大的挑战。
立足独立学院特殊性,特色的人才教育是关键。求职时,学生时常抱怨在学校里没有学到企业需要的技能。主要是因为,目前大多数高校计算机软件人才培养机制改革的速度落后于软件产业发展的速度,重点注重学生理论功底,理论与实践脱节,课程设置的职业导向性不强,导致学生缺少就业核心竞争力和优势。
大部分软件企业需要下述三类人才:既懂技术又懂管理的软件高级人才;系统分析及设计人员,即软件工程师;熟练程序员,即软件蓝领。这三类人才正常比例应该是呈金字塔形,而我国软件人才呈两头小中间大的“橄榄”型,既缺乏一大批能从事基础性工作的“软件蓝领”,又缺乏既懂技术又懂管理的软件高级人才,即“软件金领”。独立学院的计算机软件人才培养导向应选择以基础程序员为主,培养中低端实用型人才,来尽量弥补这部分人才需求缺口。
1.2 独立学院自身特点与发展定位的需要
独立学院作为高等教育办学领域内的一个新生事物,是按照新的机制和模式举办的本科层次的二级学院,利用公办母体高等学校的部分资源,实行严格的独立办学。所招收学生主要来自高考的第三批次,学生入学分数低于普通高校生,基础知识相对薄弱,学生主体的学习自觉性不够,对新知识的接受能力要比一本、二本的学生差。独立学院的人才培养不能以学术型、研究型为取向,而是应以广大用人单位实际需要的技术型教育为取向。因此独立学院的自身特点决定了它不能完全照搬母体高校的人才培养机制,需要站在一个新的角度来重新审视。
二、独立学院特色计算机软件人才的培养机制
2.1 树立特色人才培养理念
独立学院必须具有自身特色人才培养的先进理念,一改以往重理论轻实践的教育模式,计算机软件的人才培养应以面向应用,突出实践为主,培养具有创新精神和实践能力的应用型人才,全面实施素质教育,坚持个性发展原则和创新原则,注重教育功能性,由学生未来岗位决定教育内容。
2.2 构建特色人才培养计划
传统教学计划标明的培养目标过于宽泛和笼统,与本专业领域相关职业岗位相脱节,导致教师实际课程教学目标不明确,学生更是不知所云。课程设置中计算机一般基础课多,富有特色和针对性的专业技术课少;课程内容滞后于职业实际需求;内容安排中追求本科教育学科知识的理论性和完备性,理论课时偏多,实践教学课时少,模拟现实的实训课程更少。
学校应建立起有别于一般普通高校、课程设置合理、继承递进、灵活更新的教学计划,从理论教学与实践教学两个方面提出较为完善的课程体系,使所培养的计算机软件人才更加适合市场的需要。课程体系的设计应遵循宽口径、多方向、模块化、组合型的原则。
计算机软件人才大致分为软件开发、软件测试、网络管理三大方向。图1大致描述了特色软件人才培养计划中,为培养各方向人才,所设置的相应基础课程、通用课程以及专业课程。
所谓“宽口径”,是指强调学校首先做好学生行业通用技能的培养。例如,“计算机基础课程”和“C语言程序设计”等通用课程是各个培养方向的前导课程。又如,培养软件测试人员和软件开发人员所需的前导课程是基础课程,一级通用课程,以及二级通用课程 (“JAVA OOP”、“数据结构”) 。
对于这类课程,学校应高度重视教材与师资,力求做成精品课程。学生只有具备了扎实的基础,才能在毕业后既具有上岗适应能力,又具有转移工作的再适应能力。学校培养的是“多方向”软件人才,是指按照岗位设置专业方向,围绕“职业特定技能”,设置相应的专业课程。
该特色课程体系最大的特点是“模块化”,模块具有继承、共享和重用特性,便于教学管理,易于提高教学质量;有利于提高教学效率和教学资源的利用率。教学进程构建灵活,易于快速跟踪市场,对课程进行及时的更新。例如,“软件测试”方向和“软件开发”方向都需要具备面向对象程序设计能力,“JAVA面向对象程序设计 (OOP) ”课程就构成了一个通用课程模块。又如,据统计,软件测试工程师是2006年最紧缺的人才之一。目前市场上,软件测试工程师正处于一个地位高、待遇高的“双高”地位,职业前景非常广阔。学校应该把握这一趋势,有计划地加强对学生“软件测试”职业导向性的培养,具体做法是进一步细化“软件测试”方向的专业课程模块,如可细化为白盒与黑盒测试、测试用例设计等课程。“组合型”就是在“模块化”的基础上,自下而上,沿着“基础-通用-专业”方向的模块间组合,形成各个方向的培养计划路线。
考试是检验学生对课程掌握程度的衡量尺度之一。旧的考试形式,多数注重对死记硬背知识的熟记,而忽略了真正对学生能力的考查。考试内容和方式的设计直接导向课程在学生心目中的实际掌握标准。因此,绝不可忽略考试这一重要环节。
2.3 重视师资组建与培训
提高独立学院的师资水平,并不单单是指提高在校专职教师的学历水平。目前,众多院校的教师缺乏实践经验,讲授按部就班的多;教材内容更新不及时;师生互动,启发讨论式教学少。因此注重提高教师实践能力的培训是必不可少的。通过培训,教师可以对课程体系和教学目标有更为深入的了解,能够掌握更新的计算机技术,其独特的教学方法也应该是从实践中总结出来的,这样更有益于学生接受与掌握。具有科学教学方法和先进教学内容的“双师”型教师才真正能够胜任独立学院的教学工作。
此外,建设一支专兼职教师结合的师资队伍,建立聚集专业带头和骨干教师的培养与引进结合机制,定期邀请企业内专业人士进行现场授课,举办一些针对性的培训或技术讲座,与教师、学生座谈。
2.4 更新教学模式
软件人才一般要具备抽象思维、逻辑思维的能力、算法设计与分析的能力,计算机系统的认知、分析、设计和应用能力。这些能力的培养,并不是一两门课程就可以完成的,而是需要在一个循序渐进的过程中逐渐完成的。因此,在授课过程中应注意形成学生良好的职业习惯,“潜移默化”地“养成”合格人才所要求的“能力”和“素质”。例如,网页制作课程中,在学生动手制作网页之前,一定给学生强调html文本命名规范,以及采用功能模块化设计思想来预先进行网页设计等问题。又如,C语言程序设计课程,首先必须使学生养成“程序设计”的习惯,初步掌握程序设计的基本方法和思想 (如自顶向下的思想) ,而不要急于代码的实现。
软件人才能力的培养毫无疑问是以实践为主,但是为了学生今后职业生涯能够持续发展,必然要具备一定的理论深度。也就是说,教师要善于在合适的时机渗透理论教学。例如,网页制作课程可以采用以实践为先为主的教学方式。在网页设计课程的教学环节中,让学生完成预先设计好的若干个网页课题,学会网页三剑客 (Dreamweaver、Firework、Flash) 的使用后,再帮助学生剖析超文本标记语言HTML的主要标记及结构特征。
采用强调教师的教学目的和方法的同时,更要强调学生的学习目标和方法,不断激发学生独立思考。使学生确信,持续的专业发展需要终生的学习,并为之作好准备。教会学生使用信息资源,掌握适当的策略,以了解领域前沿。在院校中,适时根据当期课程内容,发起一些竞赛活动或参加企业实践。鼓励协作式的学习,促进集体的交互。
摘要:本文从“软件工程”课程的特点和目标出发,从调整课程结构、加强工程实践、规范文档三个方面进行了详细的阐述,并对课程改革中的重要问题及细节作了分析与解决。
关键词:软件工程;课程改革;分阶段课程;工程实践训练
中图分类号:G642
文献标识码:B
1引言
目前,在国内1900多所普通高校中有500多所开设了计算机科学与技术专业,有40所左右的院校开设了软件工程专业。“软件工程”是软件工程专业的专业核心课程,是一门综合性很强的课程,几乎包含了SWEBOK的全部领域。在教学中为了教学课时的安排和突出重点,通常是以软件需求、软件设计、软件工程工具和方法为主,再加上各种条件的限制,较多地强调理论学习,所讲授知识相对当前的新技术来讲有些滞后,虽然也有一定的实践相配合,但实践与当前软件工程技术的发展还有较大差距。
再加上由于软件工程的优势在训练学生的小型项目上体现不充分,学生普遍认为软件工程就是画画图,学与没学差别不大,导致学习效果不好,使得软件方向的学生只重视编码,面向对象的开发方法重视不够,建模方法使用混乱,文档不规范,影响了对学生工程素质的培养和能力的提高,与社会对毕业生需求的能力相差较大。这些暴露出的问题说明“软件工程”课程的教学结果不令人满意,教与学的付出和收获没有成正比,没有得到社会的认可。此外,随着软件工程技术的发展,软件工程领域的教学内容不断更新、丰富,软件企业对软件工程能力的要求越来越高。为改变这一现状,适应技术的发展,对现行的“软件工程”课程进行改革势在必行。
2以培养工程型应用人才为课程目标
开设软件工程专业的大部分院校通常会把培养目标定位于应用型人才。但是,对于软件工程专业来说,仅局限于应用型人才是不够的,这是由软件工程专业的特点(即它是计算机科学为基础的新兴交叉学科,具有鲜明的工程特色,与应用领域结合紧密)决定的。软件工程专业的培养目标应当是培养信息化社会需要的工程型应用人才。学生通过理论和实践的学习,应具备软件工程师从事软件工程实践所需要的素质、知识和能力。
对软件工程专业核心课程的“软件工程”来说,课程目标应同专业的培养目标一致,也就是培养学生的软件工程素质,提高学生的软件工程能力,促进工程型应用人才的培养。
3调整课程结构,不断强化工程能力
现行软件工程课通常是以软件生命周期为主线进行教学,在内容上,以需求分析、软件设计、编码为主,辅以软件测试、软件维护、软件项目管理的一般知识;在方法上,面向过程和面向对象均有;课程安排,通常集中在一学期内完成,课时通常较其他专业课程多,配套的实践课通常是与理论在同一学期完成,课时较理论课时少,题目一般较简单。在保留现行课程教学优点的基础上,主要从调整课程结构、加强工程实践、规范文档三个方面进行“软件工程”课程的教学改革。
3.1调整课程结构,延长教学的时间和空间
这里对课程结构的调整不是要打乱软件生命周期,而是增大课程的时空跨度,将原来在一学期内开设的课程扩展为两个学期的课程,增加案例教学与实践训练题目的综合度,进一步充实课程内容,通过连续性教学的刺激,使工程的意识和方法得到正强化。从而在较长时期的潜移默化中培养学生的工程素质,在不断的实践中提高学生的工程能力。具体措施是:将现行课程分为基础和提高两个阶段,基础阶段理论和实践相结合,以理论为主,高级阶段以实践为主,适当补充理论,两个阶段之间是螺旋上升的关系。
课程基础阶段的内容是软件工程的基础知识,以软件生命周期为主线,目的是让学生对软件工程课程的内容、结构有一个较全面的了解,掌握基本知识,熟悉基本方法,为后续的学习打好基础,课时数可以在50~60学时之间。理论讲授以需求分析、软件设计、编码为主,注意小案例的运用,配套实践以训练基本技能为主,包括对Visio或者Rose等工具的使用。课程基础阶段应尽量早地开始,可以在第四或第五学期,这个时候程序设计课、数据结构等重要前驱课程都已经开过了;更重要的是,在其后的其他课程学习中,特别是实践环节,很多时候都要用到软件工程的知识和方法,这样可以让学生在不断的练习中强化基础知识,加强知识之间的联系,培养工程意识。
课程的提高阶段主要是以项目小组为单位的实践训练,仍然是以软件生命周期为主线,以较综合的贴近实际的软件项目进行训练,包括完整的软件过程,目的是让学生在强化训练中,把软件工程课的基础知识与包括软件程序设计技术、项目管理、数据库、软件测试等各相关课程的知识联系起来,以文档和程序系统为手段,提高工程能力,形成一定的工程素质。提高阶段课程应稍后一些,可以在第七学期,以学生课外完成为主,课堂上主要是答疑性指导,课时数可以在40左右,在实验室进行。同时,教师应根据学生的掌握情况,查漏补缺,并适当补充一些知识,比如较新软件过程模型、软件开发方法和CMM的实施等。
在进行课程结构调整时,必须注意两个阶段的连续性,否则容易造成理论与实践脱节的后果。注意到在两个阶段课程之间的长达两三个学期的时段,因此必须有相应的课程安排与之配合,这就是知识与能力不断线原则。课程安排可以是在其他课程的实验里面规定使用基础阶段所讲授的内容,也可以是单独的课外实践,一定要保证正强化。
3.2加强工程实践,切实提高学生的工程能力
理论结合实际的能力是当前毕业生的一个软肋,满足不了社会的需要,造成当前计算机相关专业特别是软件工程专业学生毕业后的就业“低潮”。只有从低年级开始大力加强以“软件工程”课程实践为代表的实践环节,提高能力,才能使学生具备一定的工程素质和工程能力。这里以课程提高阶段的实践进行说明。
课程提高阶段的实践训练是整个课程的总结,课程的成败很大程度上依赖于综合实践,因此,在进行实践训练安排时,训练形式、内容、要求等都很重要,用于训练的项目要有一定的规模和综合度。
实践训练在一学期之内完成,以项目小组的形式进行,每个组按照项目管理的方式进行组织和管理,充分发挥学生的主动性。按软件生命周期分为需求分析、软件设计(也可再分为总体设计、详细设计)、编码、软件测试与改进四个阶段,每一阶段都要进行验收,验收时尽量推行学生论讲,最后阶段完成后要进行答辩,对每一阶段都要严格要求。
实践训练的内容实际上就是需求分析、总体设计、详细设计、编码、软件测试与改进,其中,可以需求分析与详细设计为重点。方法上应以面向对象的分析与设计为主。除编码外,每一内容都应有相应的文档训练,而且对文档应严格要求,在小组完成项目后,应该有一个总结报告。根据专业的特色和条件,训练的项目最好与某些应用领域相结合,这样能使训练更接近实际。在训练过程中,不仅要考虑系统的性能,还要考虑建造系统的代价以及可能带来的副作用,逐步培养学生的工程素质。此外,可以适当引入一些中小IT企业的方法和管理,可以建议学生在详细设计和编码阶段写程序员日志(或叫开发日志),提前让学生感受到企业的工作氛围。
软件测试对软件环境和师资条件要求较高,有条件时可以使用WinRunner、QTP等软件进行训练,条件不具备时,可以使用JUnit等进行单元测试训练。
在学生负担不重而且有相应的条件时,可以按照CMM2实施,从中抽取初五个关键过程:需求管理、软件项目计划、软件项目跟踪与监控、软件质量保证、软件配置管理,对其加以改造或者适当降低要求进行训练。
3.3文档的规范化引导
软件工程的文档编写一直是学生的难点,好多学生都认为太麻烦,这是因为他们对文档的重要性认识不够。因此,在整个“软件工程”课程中都要强调并加强引导,在各个验收阶段要严格要求。
软件文档的标准本身对师生来说就是一个较困难的事情,因为学校跟IT业界是有距离的。很多主流的文档格式或者说模版,比如CMM标准的文档,如果没有跟企业合作的话,是很难了解或拿到的。在这种情况下,可以按照国标GB-85系列来进行。
实际上,对学生的文档规范性引导,并不是一定要有了最新的业界标准文档格式才能进行,因为格式这个东西很容易学会,关键是要训练学生常规的编写经验,培养文档意识,把文档作为验收的内容和阶段结束的标志。因此,在训练过程中一定要详细地给学生讲解怎么写文档,需要注意些什么,在验收后一定要对学生的文档进行点评,对典型问题要注重回头看,教师要用自己的严谨、负责的态度感染学生,突出文档规范的重要性。
4结束语
“软件工程”课程自身的综合性以及在软件工程专业中的重要地位决定了课程必须跟上时代的发展,符合社会的需求,因此对“软件工程”课程必须以培养工程型应用人才为目标,不断向前推进改革。只有在教学过程中注重理论与实践的结合,不单纯地以“软件工程”课程的基本知识为内容,而是综合软件工程专业的多个相关课程,对学生进行综合训练,加强文档训练,把握好课程改革的度,稳步推进,才能有效改进目前的课程教学。
参考文献
[1] 中国计算机科学与技术学科教程2002研究组. 中国计算机科学与技术学科教程2002[M]. 北京:清华大学出版社,2002:7-52.
在软件工程教学中主要存在三方面的问题:
1、软件开发技术飞速发展,新方法、新技术、新工具、新平台不断出现,给软件工程教学带来了诸多问题:课时不变,教学内容偏多,教材的更新跟不上技术的发展。
2、教学过程仍然以教师“教”为中心,在教师的指导下完成课程的相关实验及课程设计的学习。软件工程课程可操作性差、理论多、内容抽象、难理解,很难充分调动学生学习的积极性和自主性,导致理论与实践脱节。
3、学习软件工程的学生几乎都没有软件开发的经验,对于管理学的知识更是不知所然,加上有的教师也没有完整项目软件开发的经验,要让学生做到“学中做,做中学”,真的是难上加难。
二、三元整合的教学思维
软件工程课程主要介绍了软件问题定义、项目计划、需求分析、设计、维护等软件开发过程中的各种问题。通过市场调查、观摩学习、讲座、校企合作,发现软件行业在软件设计、软件维护、软件测试三方面就业岗位多,人才缺口大。结合学生学习的特点,参照国家相关职业标准,确定软件工程,培养人才方向岗位定位在软件设计、软件测试、软件维护三个岗位,因此教学中将重点放在软件设计、软件维护、软件测试上。文中以“学生信息管理系统”项目为载体,将项目开发过程中用到的各项工作技能按照工作过程分解任务,项目分解成一个个的子案例,以任务分解的方式完成技能的案例教学,体现工作过程的完整性。三个岗位的工作任务、职业能力、知识结构之间的关系。整个教学过程是一个循序渐进的过程,每个岗位有明确的工作任务,每个工作任务对应不同的职业能力,知识的表现形式也就不同。为了与岗位工作任务相适应,在项目教学中培养学生的职业能力,使学生做到“学中做,做中学”;在设计教学项目案例上做到项目难度适中、易理解、易操作、易掌握、有针对性和代表性,并且包含上述三个工作岗位的工作任务与职业能力相关知识,最终达到项目驱动,任务分解的教学目的,同时学生也能进一步理解工作过程中需要掌握的技能。
三、三元整合在教学中的应用
案例教学、项目驱动、任务分解的教学方法有各自特点,如何将这些教学方法整合在一个具体的项目中,并发挥其优点是教学中要重点解决的问题。将“学生信息管理系统”项目进行分解,每一个子项目对应一个具体的工作任务。对每个子项目按以下的教学步骤进行教学:
1、项目分解,确定每一个子项目的工作任务根据项目完成的时间限制、要求,将项目分解成子项目,不同的子项目对应不同的工作任务。如“学生信息管理系统”可分解为“学生管理、课程管理、成绩管理、信息查询”四个子项目,且每个子项目对应不同的工作任务。把工作任务独立、花费时间少的称为小任务;反之,工作任务需要多个教学单元经过综合实践才能完成的,称为大任务。在教学中又可将大任务分解为小任务,通过分析总结,最终使学生能掌握自上而下逐步求精分析问题解决问题的能力。
2、理论讲解,案例演示教师结合案例演示,讲解子项目中对应的工作任务,让学生真实理解工作过程中这个子项目到底要做些什么,怎么做,哪些知识是已知的,哪些知识是未知的,提出问题,充分调动学生的好奇心与求知欲。
3、学生分组讨论,协同合作根据学生兴趣、成绩、实践动手能力将学生分成4到5个人为一个小组。小组成员共同讨论完成项目的开发。工作任务完成过程中,让学生轮换担当不同的角色,使其能体验不同角色在不同阶段的职责与任务,既培养学生团队协作能力,又发挥了各自特长,调动了学生的积极性,从而提高了学习兴趣。
4、学生各自完成工作任务通过项目分工,团队中的每个成员都有明确的任务,结合教师的案例演示进行工作任务的模拟练习,让学生对工作任务的完成有了真正的认识,从而培养学生的职业能力。
5、总结工作任务成果,评审验收首先,学生对自己完成的子项目进行展示、总结,哪些完成,哪些没有完成,原因在什么地方;其次,教师对每个团队项目完成的情况进行比较,并将各团队工作成果与案例演示中的工作成果进行比较,总结规律和技巧,使团队中的每个学生知道自己在做什么,做得如何,哪些地方需要改进,哪些知识需要完善,自己发挥了什么作用,将实践上升到理论高度,进而培养学生的职业能力。
6、拓展第二课堂,培养学生的研究、创新性学习能力在案例教学与学生实践的基础上,学生对工作过程中所要完成的工作任务有了基本的了解和认识。对于学习兴趣高、实践能力强的同学,选择自己感兴趣的方面跟老师一起参加项目研发,在教师的指导下,了解跟踪软件开发新技术发展趋势,更加深入了解软件工程精髓,进而培养自己创新性学习能力。
四、总结
信息产业的迅速发展对软件技术从业人员提出了更多要求;尽管国内高校软件人才的培养数量不断攀升,但真正能够融入软件开发团队的人并不多,这严重阻碍了我国信息产业的发展。造成这一现象的主要原因是软件技术相关专业的人才培养模式落后,基础理论+实验室上机实践构成了教学的主体,普遍缺少对学生素质和工程化实践能力的培养,同时也缺乏工程化[1]实训必备的教学环境,因此很难培养出符合软件公司要求的实践型技能型软件人才[2]。
长沙民政职业技术学院软件技术专业教师团队通过对学生职业素质和核心技能培养方面进行了一系列的探索与研究,通过对高职软件技术专业课程进行工程化改造的探索与实践,在教学过程中产生良好的教学效果。本文以长沙民政职业技术学院为例对此教学探索实践活动做了一个阐述与总结。本院软件技术专业培养目标通过对面向对象的软件工程方法、数据库、.Net/Java/移动应用/WindowsStore/云应用开发技术、软件测试技术等专业理论基础知识的学习,使学生掌握程序员及相关岗位必备的理解软件设计、掌握从事软件开发先进技术、熟悉测试、实施以及现场管理等专业理论基础知识,具备良好的职业道德、职业素养,培养德、智、体、美全面发展,心理健康,具有“爱众亲仁”道德精神和“博学笃行”专业品质和较强学习能力、创新能力的高素质技术技能型软件技术专门人才。本专业教学团队通过对北京中软强网、杭州TCS公司、上海汉得信息技术有限公司等数十家公司核心岗位所需人才的能力需求调查分析与研究,发现IT行业人才所需能力主要分为三类:职业核心能力和职业核心素质。其中职业核心能力主要包括软件分析能力、软件设计能力、数据库编程能力、界面编程能力、程序编码能力、软件测试能力和系统维护能力;职业核心素质主要包括分析与解决问题能力、自主学习能力、团队合作能力、表达沟通能力、探索创新能力和抗挫抗压能力。
本专业教学团队根据调研情况,对课程进行工程化体系[3],为了实现教、学、做一体化的教学目标,在讲义或教材的运用上重点阐述项目实施的方法和步骤,按照软件开发过程对教学内容进行了重构,形成新的“工程化”课程体系。在本专业教学中采纳特色教学法ISAS教学法、项目教学法和榜样教学法。工程化课程内容组织循序渐进,从简单到复杂,从实践到理论,再到实践不断循环,使学生对技术的应用能力不断提升。项目实践划分为“四个应用层次”:①验证性项目:学生在解决一个与教师示范或操作规程中类似的、或更复杂的问题,学以致用,巩固基础知识。②训练性项目:学生借助相关辅助工具完成的项目,主要培养学生的对技能的熟练程度。③设计性项目:设计性项目是在一个训练单元结束进行的综合性项目,由学生综合运用本单元所学理论解决实际的问题,主要培养学生的分析问题、解决问题的能力和必备专业核心技能。④创造性项目:创造性应用层次是在课程结束后给出课程的课程设计题目,由学生综合运用本课程所学理论解决实际的问题,主要培养学生创新能力和抗压抗挫的能力。基于工程化的课程体系的改革与实践成果为培养更多优秀人才和提高专业人才的合格率奠定了坚实的基础。
通过多年的课程工程化改革的探索与实践,我院软件技术专业以就业为导向,紧跟行业的发展方向,依据行业人才的需求特点,全面实施学院与市场对接、学生与社会对接、教学与就业对接的培养机制,加强实习实践环节,分期分批安排学生到企业实习、实训,毕业生就业竞争优势明显,专业就业对口率显著提高。
作者:唐一韬 单位:长沙民政职业技术学院