引论:我们为您整理了13篇软件测试实训总结范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。
篇1
中图分类号:G642.44 文献标识码:A 文章编号:1007-0079(2013)14-0126-02
近年来,随着中国内需市场的增长和国内外外包企业的合作加深,我国的软件外包行业得到了迅速发展。软件测试作为软件外包的主营业务之一,是加快软件企业与国际接轨,实现产品国际化的重要手段。随着软件开发流程的系统化和规范化,我国软件企业对软件测试的需求逐步增大,因此高校计算机专业中的软件测试人才具有良好的就业前景。
由于软件测试工作的特殊性,需要从业者不仅掌握一定的软件技术,同时也要对软件测试的方法和流程具备相当的经验。通过高校教育培养出来的计算机专业应届毕业生,虽然能够掌握基本的软件开发技术和软件测试理论,但是缺乏实际的测试经验和相应的行业背景知识,离企业的需求尚有一定的差距。目前高校计算机专业中软件测试教学仍以理论为主,实践动手能力和项目背景经验的培养相对不足,这些矛盾导致学生就业时很难适应企业的用人要求,企业也必须对招入的应届毕业生进行培训,花费相当的人力和物力。
项目实训是解决高校和企业之间供需矛盾的有效手段。在日常教学计划中引入项目实训,以实际测试任务为驱动,按照企业规范进行流程管理,让学生掌握测试过程中各阶段的技能,理论联系实践地接受企业化的锻炼。通过实训课程,使学生不但能够学习到实际测试经验,而且能够增强团队意识,进一步缩小毕业生与职业测试工程师之间的差距。
一、软件测试项目实施
1.测试项目简介
本文所述的软件测试实训项目是基于校企共建模式,由南京工业大学(以下简称“我校”)软件外包实验室提供软件测试的场所和专用的硬件设备,从合作的软件公司引入相应的测试平台、管理流程和测试报告文档的测试项目。
本项目的内容是针对前期开发的教师管理系统进行测试。该系统是教学部门的业务管理支撑系统,测试主要围绕教师信息的查询和更新操作的管理。通过对这些功能模块的测试,增强系统的易用性、稳定性、可配置性,消除信息孤岛,进一步提高数据信息的应用水平。
在测试环境搭建过程中,服务器的软硬件配置要与该系统的实际运行环境保持一致。对于测试计划、测试方案和测试用例等文档的修改、更新操作,则采用svn版本管理工具来进行控制。学生可以通过svn服务器平台,按照进度提交每日的测试用例文档,并填写日志记录测试进度和每天的测试工作。
2.实训计划和人员管理
软件测试实训安排在我校外包实验室中进行,采用与企业相同的管理模式集中训练,由相关教师和企业工程师来指导测试流程。测试团队的成员来自于我校电子与信息工程学院计算机专业的大三、大四学生,以及对软件测试感兴趣的相近专业的学生。这些学生具备基本的软件编程能力,并且对测试的基本理论有一定的了解。根据学生自身水平和对项目的熟悉程度,可以将其划分为不同角色,其中包括开发人员和测试人员。开发人员由原来参与系统开发的部分学生担任。测试人员可以分成不同的小组测试不同的模块,每个小组设置一个测试组长,负责测试项目管理,其余组员则负责执行测试用例,各小组都有一名教师作为指导教师,控制模块的测试进度。整个测试实训项目安排在假期进行,用时半个月,每天工作8小时。每天早晨由测试组长安排当天的测试任务,并对前一天的测试结果进行总结。在每个时间节点,由指导教师和小组成员对相关测试文档进行评审。
3.测试项目进程
本项目的实际流程图如图1所示,在项目初始阶段,担任开发人员角色的学生叙述产品需求和业务流程,为编写测试计划做准备。该测试项目主要分为5个阶段:测试计划制定、测试方案编写、测试用例设计、多轮系统测试和测试系统报告提交。每个阶段都力求达到规范化、细致化的测试目标,同时每个阶段都要经过教师和各个组员之间的评审,如果评审通过,可以开始下一阶段的工作;如果不通过,则需要完善后继续评审直到通过。
(1)测试计划制定。在了解了教师管理系统的需求以后,结合学生的基本情况、系统模块数量和测试的周期来制定测试计划。测试计划要涵盖测试的范围和环境、测试人员的管理和测试进度安排。考虑到参与实训项目的学生缺乏相关经验,因此测试计划要重点突出每个测试小组所对应的系统模块,以及测试流程中每个阶段所对应的完成日期。该测试计划由各组组长和指导教师制定,最后需各小组评审后通过。
(2)测试方案编写。测试方案是按照系统需求说明书详细的分析测试的模块,指导后续的测试用例的编写工作,重点在于对模块具体功能的理解和测试对象的分析。在这一阶段,首先由担任开发人员角色的学生来介绍系统模块的基本功能,并以文档的形式向对应测试组成员提交;然后由指导教师以具体测试点为例,介绍详细的测试用例写法;最后,由各组组长将测试任务分配给组员,各组员在理解的基础上开始测试用例的设计。测试方案完成以后由各组组长汇总,并在组内进行评审。
(3)测试用例设计。测试用例的编写是针对各功能模块测试而设计的一组测试输入、执行条件以及预期结果,也是本实训项目的重点内容。在对模块的特性和功能了解的基础上,设计系统的测试点,设计时应考虑角色权限、验证点和测试描述。在设计验证点的过程中,鼓励学生展开讨论,力求做到无疏漏;同时在测试描述时,可以将等价类划分、边界值、错误推测等常用方法与书本理论相结合,通过具体的实例加深学生对所学知识的理解。最终的测试用例以Excel表格形式列出,其中包括编号、重要级别、操作步骤、预期输出和实际测试结果等条目。
(4)多轮系统测试。按照测试用例的具体内容,可以进行多轮的系统测试。根据测试结果,扮演开发人员角色的学生对缺陷进行修改。通过这一过程,不但使学生认识到开发过程中存在的问题,而且积累了开发经验,为今后规范化的编程打下了基础。
(5)测试报告提交。通过半个月的实训,学生经历了规范化的测试流程,测试报告的编写是对测试内容的概括和总结。报告的内容主要有以下三个方面:通过对测试结果的分析,得到对软件质量的评价;总结本次的测试过程,为制定以后的测试计划提供参考;评估本次测试计划和测试执行是否符合规范。通过本次实训,学生普遍体会到从理论知识到实践的过程,明确了规范化的软件测试方法,同时对软件编写中隐含的错误和缺陷也有了一定的认识,为今后的软件开发打下一定的基础。
二、软件测试实训存在的问题和解决办法
本次软件测试实训基本达到了预期的效果,学生不但学到了规范化的测试流程,提高了职业软件素养,而且通过互动和交流,发现了教学中存在的一些需要解决的问题。首先,本次软件测试实训是针对上一次实训开发的系统,离企业的实际系统测试尚有一些差距;其次,参与的学生缺乏实际经验,对软件测试认识不足,导致测试方案和测试用例编写不够规范、完善;另外,相应的管理需要加强,在实训过程中存在迟到、早退以及缺席的现象,从而影响了测试进度。
针对以上问题,在今后的实训过程中,测试项目要尽量切合企业的实际需求,同时在测试方案和测试用例的评审中,要加强教师和学生的沟通,强调测试流程的规范性,可以多鼓励高水平的学生带低水平的学生。另外,可以采取企业现行管理方式对实训进行管理,如引入考勤制度、评审制度等。
三、结语
软件测试是我国软件产业高速发展中需求缺口较大的一个行业,培养具有相关经验和符合企业需求的软件测试人才是目前高校计算机专业需要解决的核心问题之一。本文通过研究软件测试实训项目,探索了软件测试专业人才的培训方式以及在此过程中遇到的问题,对研究校企联合的人才培养模式具有重要意义。
参考文献:
篇2
两年制软件测试人才培养的特点主要有:
(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) 师资力量薄弱
篇3
1 背景
工信部近日印发《软件和信息技术服务业“十二五”发展规划》,规划明确了“十二五”的发展思路和发展目标,确定了10项发展重点和8项重大工程。而据业界预计,到2015年,我国软件行业收入将突破4万亿元,年均增长25%以上,出口突破600亿美元。
2 项目实施的必要性和可行性分析
外包人才的缺口从结构层次来看,不是局部的人才短缺,而是全方位的供应不足。正规院校培养出来的学生能掌握基本的软件开发技术,但缺乏软件开发工作经验、项目交流和团队合作锻炼,需要经过相当的项目知识与技能培训。超过60%的高校开设了计算机专业。但是,适应外包企业需要的大学毕业生很少,大学毕业生常常需要企业花大力气培养,而企业希望招来就用,不愿自己培养人才增加成本。本软件开发、测试实训室应此目的设置,目标培养中低端软件人才。
3 建设实训中心项目的可行性
职业教育与普通教育相比有四个特点:一是教育性质和目标不同。重在对准备就业的学生传授职业知识,培养职业技能,陶冶职业道德,提高职业能力和劳动素质教育。二是教育内容与要求不同。以提高学生的专业知识与技术能力为主,重在让学生懂得做什么、怎么做,使学生学有专长,毕业后投身于社会经济建设的实践活动。目前尽管有部分学生升学,但就总体看,其教育内容与要求未变。三是课程模式与结构不同。其课程模式注重实践教学环节,课程结构注重强化学生技能的应用性、针对性和职业性。四是学校功能与任务不同。要求实施职业教育的学校必须具有实训实操的条件,否则职业教育很难获得应有的效果。
4 软件开发和测试实训室建设目标
软件开发技术实训可以包含四类实训课程:
软件开发实训:包括完整的生命周期的软件开发过程
软件阶段实训:选取软件生命周期其中某个阶段独立工作(例如编码工作)的实训;
软件测试实训:包括软件开发过程随行测试和独立的软件测试技术实训;
软件项目管理:这是关于软件技术高级培训。
实训装备:
硬件设备:5组服务器;50台工位电脑;网络和交换设备;5组光盘刻录、扫描仪和打印机等辅助设备;1套投影和无线扩音设备;互联网接入;软件平台:Windows 和Linux服务器平台,mySQl、SQL Server数据库系统、J2EE和.net开发平台和课程相关的软件工具;LoadRunner 、WinRunner等常用测试工具;项目管理工具MS Project;办公系统 Ms Office 管理软件:实训管理软件
实训方法:采用模拟企业运营方式将教练和学员混编成项目组方式完成软件开发和测试实训;打破学科界线和知识体系,以项目目标驱动安排教学内容,编制教材和教学课件,教学内容来源于合作企业以往的实际项目,由企业和学校共同对原项目分解、重组、封装形成教学课件,以实际项目文档为基础编制实训文档。
实训课程:本实训室分设以下类型实训课程
素质教育类课程:敬业精神、团队合作
企业标准类课程:ISO9000和CMM认证,企业化管理制度
项目管理类课程:项目管理方法和项目管理系统使用;
软件开发、测试类课程:包括软件生命周期理论、文档编制和理解、软件工具、编码和测试方法、系统部署、和版本管理等;
实训过程:
先期培训:素质类、企业标准、项目管理、背景知识等
基础培训:由教师教授课题涉及的基本方法、工具和规范;
开题培训:由专业项目管理人员做课题报告,解释项目要点;
5 实训课题:软件开发实训
本实训室培训软件开发人员和软件测试人员,实训方法可以将学员分组,在同一项目中分别承担软件开发和软件测试工作,也可以独立执行软件开发和软件测试实训课程
软件开发实训包括一下实训模块:
1)背景和基础知识:包括软件开发规范,软件企业ISO9000和CMM认证,学校软件工具等;
2)搭建开发环境:能够配置自己的软件开发环境,包括安装操作系统和开发工具包;能够配置自己与别人的协同开发环境,包括网络配置,文件共享,安装远程打印机等;
编写代码:使学员能够读懂详细设计,掌握开发工具的配置与使用,掌握开发语言的基本知识和数据结构,了解简单的算法,会设计简单的界面,并应用常见控件,具有数据库编程的初步能力;
图1
3)测试:使学员除了掌握测试的理论知识外,还应该学会编写单元测试案例,编写单元测试文档,在执行单元测试的时候,记录测试结果,并分析错误原因,以利于下一步的调试。
学员应掌握以下具体技术、平台和工具,Windows系列和Linux操作系统;Visual Studio工具;Borland 公司工具,SQLServer,Oracle ;Apache+tomcat,Web Logic 等;TCP/IP,创建网络连接,网络打印;基于UML的详细设计文档,面向对象分析和设计;单元测试,黑盒测试,白盒测试,设计测试案例等;执行测试并调试错误,系统和配置技术;
软件测试实训包括以下实训模块:
计算机及常见操作系统、软件设计语言基础、 数据库基础、软件工程基础、软件测试基础、自动化测试:包括OSI模型、TCP/IP模型及常见网络协议,常用软件平台、工具使用LoadRunner 、WinRunner测试工具使用,各种测试规范
6 总结
在当今社会信息化的进程中,综合应用各种新技术的系统软件功不可没的,软件开发和测试使全社会的信息管理、信息检索、信息分析达到了新的水平,因此,学习软件开发、测试的相关基础知识,对于信息时代的每一个成员都是十分必要的。
参考文献:
[1] 杨文宏,李心辉.面向对象的软件测试[M].北京:中信出版社,2002.
篇4
软件测试课程教学中存在的问题主要有:(1)理论与实践脱节导致学生学习兴趣不浓;(2)软件测试实验室的环境搭建受限,课堂教学与实践结合的不紧密;(3)课堂教学内容与公司实际操作有出入,使得学生不受用人单位的欢迎;(4)学生缺乏完整项目的测试经验,无法掌握项目测试的流程和步骤[4]。(5)学生的开发经验不足,对于理解测试驱动开发有难度。
二创新模式的课程改革
针对目前软件测试课程教学存在的问题和不足,对目前高校开设的《软件测试》课程进行了调研、分析和研究,为了使授课内容更接近实践要求,我们深入企业并与软件测试部门的人员进行沟通交流,从教材内容、教学方法等方面对软件测试课程的教学进行探讨。
1教材的选择
软件测试实践性非常强,而且课程开设较晚,更新较快,教材的选择尤为重要。针对学生接受的实际情况和教材的实用性方面对教材进行选择,经过筛选,我们选择两篇外文教材:(美)佩腾(Patton,R.)著,张小松等译的《软件测试(原书第2版)》和(美)梅耶(Myers,G.J.)等著的《软件测试的艺术(原书第3版)》,一本中文教材:朱少民老师主编的《软件测试方法和技术(第二版)》,教学过程中把中文教材作为授课教材,外文教材作为参考书,来更好的扩大学生的视野[5]。
2课程内容的选择和改进
作为一个实践要求非常高的课程,我们在选择课程教学的内容上做了很多探索。经过实践发现,上课时在讲解基本知识和概念的同时,如果穿插讲解一些经典案例,教学效果会更好。学生不但能够掌握理解基本概念,又能结合实际应用,积累一些实践经验,这对于以后从事软件测试工作有着非常大的帮助。
在教学过程中,我们始终以学生为中心,让他们参与到软件测试的教学过程中来,调动其主观能动性,使他们更容易接受所学知识。
3测试工具的选择
在课堂教学和实践教学过程中,测试工具的选择很重要。如果建一个相当规模的测试实验室,投入是很大的。如何选择既能达到课程要求又能节省费用的测试工具就显得尤为重要。在最大限度的接近业界实际使用的前提下,可以选择一些开源的软件。对于业界关注度不够的测试环节,在讲授软件测试时要重点讲解,比如,静态测试在企业中就重视度不足,认为无关紧要,实际上该方法能够培养良好的编程风格。我们在授课时选择PMD、FindBugs等工具让学生熟悉,不但能培养学生的测试能力,同时也能督促学生养成良好的编程习惯[6]。对于单元测试部分,根据时下软件开发的两大趋势,选择Junit进行讲解,掌握该软件的使用,对于其他工具开发的软件进行单元测试也是非常容易的。
4实践环节的加强
除了课堂教学以外,实践教学的开展对于软件测试课程来说更重要。包括上机实践课和企业实践两部分。
上机实践环节应抓好以下环节:⑴定好计划,每次上机要明确任务,对于任务的选择要有针对性,要更具有可操作性,要更贴近实际。比如对于Junit的实践,每一次上课做什么都详细制定,把各种断言、套件测试、参数化测试等重要部分要重点关注,这样对于学生掌握这部分知识能起到很好的作用。(2)加强考核,对于实践环节所做的任务,要认真检查,并对学生完成情况进行总结,这样才能提高学习的效果。(3)加强与学生的沟通,让学生完成任务时,加入不同的小组,通过小组之间的沟通和交流,起到更好的促进作用。(4)完整项目的实践,除了平时的练习外,整个课程结束后,通过完整项目的带动,让学生参与到整个测试过程中,使理论与实践融合,知识掌握更牢固。
同时要深化企业实训,加强与企业的合作,让学生有机会深入到企业的软件测试部门,了解软件测试企业实际工作时如何开展的,与软件测试部门人员沟通交流,增强学生学习的自信心,加强学生实践能力的培养。学生每年9月份到北京实习,并与富士康签订了合作协议,这些举措都是为了更好地提高学生的实践能力。为了使效果更好,可以从以下几个方面抓起:(1)学校拟定一个校外实纲,与实习企业一起制订校企实习基地协议、实习安全协议、学生实习规范和学习实习鉴定表等,不断促进校外实习制度化,规范化、完善化。(2)企业要提供良好的实训场地,并配备资深的讲授老师。在实训前,讲授教师先了解一下实训生的情况,对讲课计划和讲课内容做适当的调整。(3)在实训期间,学校可以留一些教师监督实训过程,并实时地提出建议,保证学生训有所获。(4)实训结束后,要对实训生做一个项目式的考核,并认真填写实习成绩评定表。
5注重软件测试人才的软实力培养
软件测试是一门热门行业,软件企业在招聘人员时,不仅要求应聘人员有一定的理论知识和实践动手能力,同时要求应聘人员有良好的职业素质。而在当前的教学模式下,对职业素质方面的教育还是比较欠缺。这需要对学生进行培训,增加就业几率。
(1)注重培养学生的团队协作与沟通能力
对于软件测试行业来说,测试人员的沟通能力非常重要。一个合格的软件测试人才,应该具有较高的团队协作与沟通能力,可以快速融入团队,高效地展开团队式工作。一个不善于表达自己思想的人不可能成为一名优秀的测试工程师。我们在实践课开展过程中,重视培养同学的沟通能力,团队协作能力,在学生中树立良好的团队意识。
(2)培养学生的怀疑精神
软件测试的目的就是为了找出软件存在的不足,因此我们鼓励学生怀疑一切可疑的地方,尽自己最大的努力来验证自己的判断。即使再简单的功能,也要站在用户的角度,多用一些边界值进行测试,验证系统是否有问题。
(3)搜索能力的培养
一个好的软件测试工程师,要有很强的搜索发现新知识和技能的能力,这不仅指一般性知识的搜索和查阅,更多是指与本专业相关的测试工具软件、插件、测试学习网站等的搜索与下载,比如51testing就是国内比较好的测试学习网站,其上就有很多软件测试方面比较成熟的知识和实践技巧。在信息爆炸的当代社会,软件的种类繁多,软件技术的变化日新月异,所以大学生应该掌握软件测试的检索技术,以满足自己学习和工作的需要。这种能力是自己的充电器,会使自己终生受益。
此外,一个优秀的测试工程师还应有高度的责任感、耐心、洞察力,在技术层次都相差不大的情况下,这些软实力对于测试工程师的发展有着至关重要的作用。
总之,通过《软件测试》课程的教学方法的探索,通过系统科学的知识传授,并辅以上机实践和企业实践,学生的实践动手能力有了很大提高,这直接反映到学生的就业和以后的学习中。有一部分学生在毕业后进入企业的软件测试部门并得到用人单位的好评,一部分学生在考取研究生之后选择了软件测试方向作为自己的研究方向。如何在现有的探索的基础上,更大限度的提高教学的效果,是我们下一步的研究重点。
参考文献
[1]朱少民.软件测试方法和技术(第二版)[M].清华大学出版社,2010.
[2]聂长海.关于软件测试的几点思考[J].计算机科学,2011,38(2):1-3.
[3]陈树峰.面向对象软件的依赖性分析与回归测试[J].计算机应用,2009,29(11):3110-3113.
篇5
按照循序渐进,由浅入深,逐层推进的原则,盐城师范学院信息科学与技术学院将软件工程专业的实践教学体系分为四个层次:课程实验、课程设计、综合实训、毕业设计。其中,综合实训是以前期课程实验和课程设计为基础,综合运用多门相关课程(群)知识完成一个工程项目的实战训练,并作为后续毕业设计的预演,是整个实践教学体系中承上启下的关键环节。在软件工程领域,软件开发与软件测试是目前两个主流的就业方向,也是综合实训课程训练的重点。软件开发综合实训要求以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格遵守软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档;软件测试综合实训要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运用软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。综合实训的培养目标为:通过软件开发与软件测试项目的实战训练,全面提升学生综合运用所学知识与技术解决实际工程问题的素质与能力,进一步加深学生对工程化、系统化原则与方法的理解,为胜任现代软件工程环境下高质量软件的开发、测试和维护工作奠定坚实的基础。
3CDIO模式下课程改革与实践
根据综合实训课程的定位和培养目标,借鉴和吸收CDIO工程教育理念和标准,按照“以CDIO培养大纲为指南、以项目为载体任务为驱动、以工程能力培养为目标”的原则,对我们综合实训课程改革进行了探索与实践。
3.1全真模拟企业环境,实施一体化训练模式
软件开发和软件测试是综合实训的主体内容,传统的训练模式将二者割裂开来,分两个阶段分别完成实训项目,这种方式没有考虑软件开发与软件测试的内在关联与协同性,与企业真实环境也不相符合;并且由于两个实训阶段时间跨度较大,项目衔接性差,效率低下,实训效果也大打折扣;而在真实的企业环境中,软件开发小组和软件测试小组共同对同一个项目负责,各司其职,协同完成整个项目。鉴于此,我们采取“全真模拟、同步协作、角色互换”的策略,实施软件开发与软件测试一体化的训练模式。具体地说,整个实训过程完全模拟企业真实环境,将某个项目分配给由若干学生临时组成的项目组,该项目组又细分为开发小组和测试小组,分别负责软件的开发与测试工作;项目完成后,开发小组和测试小组角色互换,重做该项目。实践表明,一体化的训练模式能实现软件开发与软件测试的无缝衔接,学生能在更为真实的环境中参与整个项目过程,体验不同角色的职责范围,并通过不同的角色转换,使学生更深刻认识到开发人员与测试人员协同合作对完成整个软件项目的重要性。
3.2项目驱动,全面实践CDIO
CDIO的核心就是企业与社会环境下的构思、设计、实现和运作系统,它展示了一个产品或系统完整的开发过程,也体现了“做中学”和“基于项目的教育和学习”的精髓。从软件开发与软件测试的角度,无论是以软件生命周期为主线的开发过程,还是以测试流程为主线的测试过程,无不体现着软件产品从构思到运作的整个生产过程,与CDIO理念不谋而合。这里,我们以项目为载体、任务为驱动,以CDIO方法论为指导,严格按照“构思、设计、实现和运作”四个不同阶段来开展实训过程,以培养学生对产品、过程和系统的构建能力,增强学生的工程化意识。CDIO与软件开发、软件测试过程的对应关系
3.3分组互学互助,培养团队协作能力
团队能力是CDIO大纲要求工程毕业生必备的一种能力,也是软件企业非常看重的一种职业能力。在实际实训过程中,我们模拟企业真实环境,将所有学生分为若干项目组,每个项目组又细分为开发小组和测试小组,各小组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实训项目。实践表明,分组模式能较好地激发学生的学习热情,提高学习效率,而且也营造了良好的学习氛围,组员之间分工协作,互学互助,学生的沟通能力、协作精神和团队意识大为提升。
3.4面向全体,务实勿虚,促进共同进步
综合实训是一种典型的自主学习课程,学生在任务的驱动下以小组为单位协作完成实训项目,但由于任务分工不合理、学生自制力差等原因,容易导致小组内个别技术较好、自觉性高的学生承担大部分甚至全部工作,而部分学生却人浮于事,使团队分工协作流于形式,不利于全体学生的共同进步与提高。为避免此类现象的发生,我们考虑在角色分配和任务分工时,尽量使学生都能承担软件设计、编码、测试用例设计、脚本设计、测试实施等较为具体的工作,使学生通过具体的训练来提高专业技能,而对于需求分析、计划制定、总结报告等相对较“虚”的工作则由组长带领全体组员共同完成;同时,任务分工也充分考虑学生原有的技术基础、兴趣爱好和特长。这种分工方式在尊重学生个体意愿的基础上使得每个人都有具体明确而又力所能及的任务分工,能充分调动学生的学习积极性,激发学生的学习潜能,促进全体学生的共同进步与提高。
3.5实施多维度考评体系,注重过程考核和能力考核
考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进培养目标的达成。在实训课程的考核上,我们以CDIO大纲要求的能力培养为导向,学习过程与学习结果并举,实施多维度的考评机制,每名学生的成绩由平时成绩、所在小组成绩和个人成绩三部分组成。其中,平时成绩主要考评学生的职业态度与能力,小组成绩主要考评学生所在小组的整体表现和工程实作能力,个人成绩主要考评学生个体所承担任务的完成质量,且每项成绩的考评方式也是多元的,力求做到公平、公正、合理。在小组内部,同组学生的小组成绩相同,但平时成绩和个人成绩各异,引导学生在努力完成各自任务的同时,重视组内的协作互助,并通过各个个体的高质量工作提高整个团队的工作质量。实践表明,该考评体系既重视最终学习成果的呈现也关注学生学习过程中的表现;既重视团队整体的工作效率也关注学生个体在团队中的价值;既强调学生专业技能的训练和工程能力的培养也关注学生职业素养和个人能力的提高,有效避免了传统评价方式只看结果不看过程、评价指标单一化、评价结果趋同化的弊端。
篇6
中图分类号:G434
文献标识码:A文章编号:1672-7800(2016)012-0197-03
0 引言
随着软件技术在社会各领域的广泛应用,人们开始越来越关注软件产品质量,软件测试作为软件质量保证的重要途径也因此受到行业领域的关注与重视,软件测试岗位的就业前景也变得越来越好。在《国务院关于加快发展现代职业教育的决定》中,提出“深化产教融合、校企合作”[1]。随着技术的发展、产业结构调整的不断加快,持久深入的校企合作已经逐渐成为高职院校课程开发质量的关键要素之一。
《软件测试基础》课程大多在高职院校的计算机类专业中开设,但是普遍存在着课程内容更新慢,教学方法、手段陈旧,课程评价考核单一的问题,导致学生学习兴趣不大,学习效果不佳。该课程在苏州健雄职业技术学院是软件技术专业的一门专业基础课,该院与上海博为峰软件技术股份有限公司、上海泽众软件科技有限公司等从事软件测试的IT企业紧密合作,对课程进行了一系列建设和改革,培养了一大批软件测试人才,受到企业的一致认可。
1 以工作过程为导向的课程设计
课程组成员结合计算机等级考试、计算机软件专业技术资格考试和国际软件测试资质认证(ISTQB)的考试大纲,以及行业、企业对软件测试员的人才需求,与企业专家共同确定本课程的目标为:使学生了解软件测试的发展前景,掌握测试的基础知识,了解测试用例的概念、意义;能够搭建测试环境,掌握常用的黑盒、白盒用例设计方法,能够进行简单的手动功能测试并撰写测试报告与缺陷报告;了解常用的自动化测试工具、性能测试工具,理解测试工具的原理,了解测试管理的概念与流程等。
本课程以软件测试工程师的工作过程为导向,按照软件技术专业培养目标与高职学生的特点,将测试基础知识、相关技术方法、测试管理贯穿在整个测试流程中,从而构建测试各阶段所需的知识与技能。在课程中以“虚拟公司”作为组织形式,在运作过程中充分体现职业教育行为导向和职业性原则。行为导向,即创造师生互动的仿真情境,使学生通过自主协作式学习方式,反复操练,从而形成符合企业要求的行为方式和职业能力。职业性原则,即要求实训目标和就业目标高度一致[2]。学院与企业共建实训平台,通过具体工程项目及案例素材,使用测试管理工具从测试需求建起,测试模块划分、测试用例设计、测试用例执行、缺陷管理,加强学生对测试管理工具的使用。
2 以工作项目为载体的学习情境创设
《软件测试基础》课程最好在第三学期开设,因为这时学生对软件行业已有一定了解,并已具备初步的编程经验,课程共计64学时。依据软件测试的工作过程可以将课程划分为6个学习情境,共15个工作任务,具体如表 1所示。
学习情境1中主要让学生认识缺陷并知道缺陷产生的原因,掌握软件测试的定义、目的、分类和原则,熟悉V模型、W模型、H模型等软件测试的常见模型;熟练掌握软件质量模型的分类和各个评价指标,并明确软件质量与软件测试之间的关系;会查询互联网中的招聘信息,分析软件测试工程师的岗位职责及发展路径,并尽早做好职业生涯规划。
学习情境2中让学生能够明确软件测试的依据,并阅读需求规格说明书,理解测试需求的概念,会对测试需求进行挖掘;能够理解测试计划的重要性,知道测试计划的一般组成要素。
学习情境3中让学生能够理解黑盒测试、白盒测试、灰盒测试的基本概念及它们之间的区别与联系;能够灵活地运用黑盒测试的常用方法,如等价类划分、边界值、决策表、因果图、场景法、正交表等来设计测试用例;能够灵活地运用白盒测试的常用方法,如逻辑覆盖法、基本路径法等设计测试用例。
学习情境4中让学生学会测试环境的搭建,如在虚拟机中部署PHP、JSP、.NET等应用程序;理解单元测试、集成测试、系统测试、验收测试的概念及基本流程,熟悉集成测试的策略,能够使用JUnit 等工具来开展单元测试;能够掌握缺陷的概念,会正确记录缺陷,掌握缺陷报告的基本格式与内容。
学习情境5中要让学生理解测试总结的意义和重要性,并了解测试总结报告的格式与内容。
学习情境6中能让学生掌握手动测试与自动化测试的区别,了解自动化测试、性能测试等工具的原理,初步掌握脚本的录制和参数的设定,为后续课程的学习奠定基础。
3 “互联网+教育”方式的课程改革深化
3.1 利用雨课堂平台实施线上线下混合教学
合理运用互联网新技术,由传统教学向线上线下混合式教学方式转变,打破以往学生学习时空的限制,按需学习,让教育教学资源得到最大化共享。由于本课程概念较多,课程学习后还需通过工信部的考证,线上教学教师通过清华大学研制的雨课堂平台将PPT课件、微课、测试等资料上传至云空间,并推送到学生的移动终端上,督促学生做好预习、复习工作,学生所有的学习行为数据均被自动完整采集,有助于量化了解学生学习效果并把握学生学习轨迹[3];传统的线下面授,则重点解决学生的疑难困惑问题,提高教学效率。
篇7
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.
篇8
该知识块的教学组织与实施一般过程为:课堂设计――示范引导――模仿试做――纠错重做――复述总结。主张课堂组织以学生小组为中心,内容教学以任务为驱动,形成师生互动、生生合作的探究式学习氛围。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
示范引导――主讲教师进行操作示范,在此过程中结合录像、课件、网络、软件进一步向学生展示操作的全过程。
模仿试做――学生在观看完老师的演示后开始动手实际操作,教师巡视指导,发现个别错误与一般错误。
纠错重做――及时纠正个别错误,集体讲评一般错误,之后让学生重做一些步骤。
复述总结――最后老师对操作步骤进行复述,特别提醒容易出错的步骤和环节,总结整堂课技能要点、方法要点和社会需要要点。
例如,在“为系统安装网络硬件”课例中,抓住其中的网卡安装、插槽选择、金手指的接触情况、网卡类型的选择,IP地址的设置等几项关键技术,而在网络原理、网络ISO的分层则一带而过只作简单介绍。教师先讲解示范,接着由学生试做,同时教师巡回指导,发现个别性问题,及时指导解决;针对一般性问题,教师则讲评纠错;之后对一般性问题容易出现的环节,让学生重做有关步骤。
2.“故障检测”知识块
“故障检测”包括硬故障和软故障的检测,硬故障是指计算机硬件出现的问题,软故障是指软件运行出现的问题。该模式的一般过程为:课堂设计――预设故障――分组讨论――尝试修复――纠错重试――分析总结。上课前教师提前预设若干个可控制故障,上课开始时分组讨论每个故障产生的原因,在讨论的基础上小组尝试排除故障。这种模式采用问题驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
3.“软件安装”知识块
“软件安装”包括系统软件安装和应用软件安装,以及多操作系统安装。“软件安装”行为引导教学模式的一般过程为:课堂设计――软件介绍――安装提示――学生安装――个别辅导――总结提高。本模式教学以问题或任务为驱动展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
软件介绍――介绍所要安装的软件背景知识,包括软件的开发商、版本的演化、最新版本的功能等。
4.“软件测试”知识块
“软件测试”就是用软件对硬件系统进行性能测试,目的是观察或比较不同品牌的组件的性能表现。“软件测试”行为引导教学模式的一般过程为:课堂设计――布置任务――分组操作――结果报告――比较分析。这个过程采取任务驱动来展开。各环节具体操作要求如下:
课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。
布置任务――软件测试包括两类任务,一是匹配性测试,一是系统优化测试。教学中可以选择某一类任务或两类任务组合进行。
分组操作――学生在明确任务后开始分组测试。
结果报告――对小组测试参数进行分析,形成一个有说服力的组件选择方案或匹配优化的测试报告。
在教学中可以充分利用学校的现有资源。现在计算机技术发展很快,各个学校都有许多淘汰的计算机,但它们都还可以正常使用。我们可以利用它们建立计算机组装与维修实验室,在加上一些典型的、比较新的演示教师机,基本就能满足教学要求,解决学生的动手操作问题。上述大部分教学都应该在组装与维修的实验室进行才能达到教学目的。
在本课程中还有很重要的组成部分那就是实训部分。《计算机组装与维修》实训的目的是锻炼和培养学生实际操作技能和解决问题的动手综合能力。学生可在基本掌握各部分内容的基础上集中进行相关实验,以加深对知识的理解和掌握。在实验的基础上进行实训,提高学生的软硬件安装水平和排除故障的能力。
本课程考试改革的目的旨在加强学生技能、能力培养,使学生重视实践性技能的学习。课程考试采用抽签抽取问题决定操作考试和口试内容的考试方法。通过建立涵盖《计算机组装与维修》各关键技术的项目库,给出各操作项目的难度系数,考试前将这些操作项目作为考试内容公布给学生,让他们全面准备,这些项目涉及组装、测试、维护和维修的主要方面,目的是要学生全面掌握操作内容。考试时,让每个学生随机抽取一个项目,学生先口头陈述本操作项目的原理、方法、步骤和过程等,然后再进行动手操作,操作完成后学生还可以再作补充陈述。教师根据操作与口试结果,以及所选择项目的难度系数,以操作与口试7:3的比例给学生评定本课程考核成绩。具体安排为整个考试总时间为3小时,包括口试和操作考试。口试陈述、答问30分钟,其余时间为操作考试时间,操作完成后学生还可以再作补充陈述。
考试程序为:
(1)学生抽取考试项目。
(2)根据项目名称,口头陈述本项目的原理、方法、步骤和过程,期间老师根据学生陈述情况随时提出问题,学生口头回答。老师做好相应口试记录。
(3)学生进入操作考试,教师和辅导教师全程监控,并做好相应的记录。
(4)操作完毕,有需要再陈述的学生可以提出补充陈述要求,否则离开考场。监考老师合议评定学生考试成绩。
如上面的考题学生基本都能回答正确,这样进入社会工作后,基本可以达到用人单位对中职计算机应用专业学生的要求。那我们的教学目的也就达到了。
附加:
篇9
软件测试;应用型人才;案例式教学;教学产业化
随着我国IT行业的发展,越来越多的企业意识到软件测试的重要性,因此软件测试人员成为当前IT业界亟需的热门人才。面对软件测试人员紧迫的需求形势,应用型人才培养单位应该扩大软件测试人员的人才培养规模,提高培养质量。
一、《软件测试》课程教育现状
我国软件测试技术发展已有十余年,但IT市场对于测试人员仍然呈现出供不应求的势态。目前国内高校对软件工程专业几乎都会开设软件测试课程,甚至有些高校已经设置有软件测试专业。2011年11月,教育部主办了“2011年高等学校软件测试课程教学论坛”,对测试人才的培养及测试领域的全面发展起到了积极地推动作用[1]。高校系统化的专业教育体系为学生奠定了扎实而科学的学科基础,并对软件测试技术的理论化和系统化发展起到了不可替代的作用。利弊相依,传统的人才培养模式对软件测试课程设置和培养方案上还是会存在以下不足。
1.重理论轻实践在传统的软件测试课程设置中,大多采用教师在课堂上讲授理论知识,学生上机时完成实验操作的教学方式。实验的目的只是为了检查学生知识点的理解和掌握,实验题目大多比较陈旧,不能与时俱进地与当前的最新技术或最热门的应用相结合,使得学生的测试知识体系过于单薄。
2.重学生个体知识积累,轻团队协作能力培养团队协作在软件工程中的重要性无须多述。软件测试作为软件工程中重要一个环节,贯穿于整个软件生命周期,测试人员与系统分析员、软件设计师、程序员、维护人员之间的沟通必不可少,良好的团队协作才能有助于项目的进行,有助于高效、正确地开发出高质量的软件产品。传统的教学模式中,很少引入分组协作的环节去锻炼学生的沟通和交流能力,更不能设计出测试人员和开发人员的沟通场景,不能满足学生在项目中去加深理解、巩固提高的需求。
3.重即有知识,轻科学创新一直以来,软件测试课程在高校的课程体系中受到重视并不多,课程结束后并没有延续测试知识的后续课程。因此,学生不能在后面的学习和实践中进行总结提升。知识在母体中是要经过消化、适应、转化、演进、创新、融合、活化,而后才称为组织的“行动知识”,现有的教学模式不能很好的产生知识发酵效果。
二、《软件测试》课程特点和培养目标
软件测试是一门应用型较强的学科,应注重理论联系实践。一个合格的软件评测师除了要掌握即有的测试理论和软件知识外,还必须具备对软件测试行业的深刻理解,必须具备对计算机专业知识,包括编程技能、数据库、网络、中间件等知识的系统掌握,必须具备沟通能力、团队协作精神。软件测试是为了尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件交给用户,这并不是一项简单的工作。要做好软件测试,测试人员不仅需要站在客户的角度思考问题,真正理解客户的需求,具备良好的分析能力和创造性思维能力,完成功能测试和界面测试,而且要能理解软件系统的实现原理和各种使用场景,具备扎实的技术功底,能使用测试工具完成相应的性能测试、安全性测试、兼容性测试和可靠性测试等更具挑战性的任务[2]。从这个角度看,一个优秀的测试工程师需要掌握更多的知识和技能。
三、《软件测试》课程教学改革方案
以上可以看出,当前高校对于测试课程的不重视,以及当前的软硬件设施及教学方法都不能满足对应用型测试技术人才的培养要求。为了适应软件产业发展对测试人才的迫切需要,实现软件人才培养的持续性发展,针对软件测试课程调整培养方案,展开深入的教学改革和实践活动十分迫切和必要。
1.加大师资力量,构建完善的软硬件测试平台教师素养的提高是软件测试教学改革得以顺利开展的前提。此前,国内对软件测试并不重视,致使国内软件测试人才短缺,大部分高校内虽然有计算机系,但多以重开发轻测试,测试教师的专业素质和数量都远远不够。因此,不仅要重视对教师测试专业技术的培训,提供更多的学习机会,也应该认真开展软件测试教学研究,构造专业的软件测试教学团队。作为一门实践性较高的课程,软件测试必须建议专门的、完备的实验教学体系和环境。目前,高校普遍缺乏软件测试的软、硬件环境,致使学生无法通过项目实践来深入理解和提高测试相关知识和技能。
2.运用案例教学,丰富软件测试项目实战案例在教学活动中,学生总是对最新、最流行的项目和案例感兴趣,陈旧的案例既不能满足当前市场上对测试人才的技术需求,又不能很好的激起学生的兴趣。运用案例教学最重要的环节就是丰富案例素材,保持案例的“鲜活性”与“生命力”。高校可以采用历年本科毕业设计中运用了流行的技术、难度适中、功能较为完整的应用作为软件测试课程的测试案例,不但可以保证素材的延续性,也使得学生毕业设计完成的质量有所提高。
3.加强校企合作,走教学产业化发展之路[3]企业需要人才,高校为企业输送人才,校园中学习的技能最终要接收用人单位的考验。所以与软件企业合作,建立对口的学生实训基地,是应用型人才培养的重要途径。软件测试技术的掌握与提高离不开项目实战,让学生在真正的软件工程过程中从事测试工作,不仅能使学生深刻体会到软件测试在整个项目中的作用,掌握测试方法和技巧,对于学生的沟通交流能力、团队协作能力都有积极的促进作用。
四、小结
软件测试是保障软件质量,验证软件可靠性的重要环节,其重要性不言而喻。重视软件测试应从企业用人的实际需求出发,高校应加强面向企业需求的软件测试改革,切实培养学生的动手操作能力,使学生掌握最新的测试方法和技巧,让企业需求促进和推动高校教学发展。
参考文献:
[1]李静赵志升.软件测试专业课程体系建设和教学改革[J].教育与职业,2014(1):136-137.
篇10
Employment-oriented Software Testing Practical Course Reform
MA Min-sheng, MA You-zhong, REN Gang
(Information Engineering Department of Chenggong College, Gongyi 451200, China)
Abstract: Based on the current requirement situation of the IT companies for software testing talents, the paper analyzed the shortcomings of software testing practice teaching and training of personnel in colleges. Concerning the current software testing teaching model、methods and means, we proposed the employment-oriented practical course reform,achieved the “zero distance” between practical teaching and employment, effectively filled up the deficiencies of graduates without working experiences. Finally analyzed and summarized the teaching reform.
Key words: software testing; practical course; employment
软件测试课程是近年来才逐渐被社会广泛认同和重视的一门软件工程实践类课程。软件测试职业就业具有前景广泛,薪资待遇高,竞争相对较小,无性别歧视,多元化发展等特点,应成为今后相当时期内高校计算机类专业的一门重要课程。现阶段,我国软件测试人才缺口已经超过30万,供求矛盾较为突出,造成此缺口的最大原因就是我国软件测试人才培养途径单一、培养体制不健全。
本文立足于当前大学生的就业问题,调研了目前社会上对软件测试人才的需求情况,提出在高校中开展课程改革和人才培养方面的创新,着眼于学生毕业后能够满足各类IT企业对软件测试人才的要求,强调实践课要结合项目实战,运用教学案例,模拟实际的工作场景,锻炼学生的实践能力,为社会培养软件测试方面的高级专业技术人才。
1 软件测试实践课教学现状分析
国内外对软件测试人才的培养主要有三种模式:企业内部、高等院校和IT培训机构。企业培养的人才大多是通过参与项目自己摸索的软件开发人员,由于缺乏对软件测试全面的认识,在测试思想、技能、思维方式、沟通能力等方面都需要进一步提高。
高校培养模式弥补了IT培训机构功利性强、培养目标单一、费用较高等缺点,但主要的缺陷是学生因为没有实习机会而普遍缺乏工作经验,不能满足公司对测试人才的要求,在正式入职前还需要公司组织培训后才能上岗,这给企业带来了一定的风险和成本。
目前,大学软件测试教学中存在的问题有:对实践课程的重视程度不够,软件测试开展的不够深入、彻底。测试过程存在大量的不规范性和随意性。教材质量良莠不齐,教学上知识结构不合理,缺乏具体的实践和系统的培训指导。教师资源缺乏,教学方法和手段因循守旧。高校中有讲授软件工程的主讲教师能很好的讲解软件测试理论和介绍软件测试方法,但缺乏较好的软件测试案例和一定的工作经验。学生对软件测试职业存在一些错误的和片面的理解等。
2 以就业为导向的软件测试实践课课程改革
高校的软件测试教学改革的主要思路是,以学生就业为导向和中心目的,培养学生成为理论与实践并重,综合素质过硬的复合型应用型人才。主要内容和做法是:
2.1 建立软件开发全程测试的思想
1) 重视软件测试,规范化测试流程
主要内容是,参照测试公司对测试人员的岗位描述和任职要求,借鉴公司内部测试流程和测试方法,优化当前课程体系和知识结构,搭建软件测试工作环境和平台,构建测试实验室,模拟真实的工作场景,进行完整的软件测试流程实践。
2) 建立学生测试团队,模拟软件公司开展测试工作
在实验课教学中,教师合理分配各成员间的任务,培养学生岗位技能。测试实验采用分组的形式完成。每组由5~7名成员组成,指定一名学生为项目组长,其余学生为开发人员和测试人员。组长负责项目进展、分工协作、测试计划的制定等工作, 其他组员分别就相关模块进行各自的测试策略、测试用例设计以及完成测试报告等。然后通过角色交换,充分发挥学生的沟通能力。
3) 软件测试引领测试驱动开发
测试驱动开发实践来源于敏捷式开发思想,其核心就是在开发代码之前,先编写测试代码.也就是说明确开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例,循环进行添加其他功能,直到完成这种思想让学生认识到测试是开发的重要组成部分,对于学生树立牢固的测试理念是必不可缺的。
2.2 多种教学实践综合运用
1) 循序渐进式的教学体系 根据学生能力水平的高低和实际的岗位需求,将教学目标定位进行划分。现有IT公司在招聘测试人员时根据技能要求分为初级测试工程师、中级测试工程师和高级测试工程师。进一步分析初级、中级测试工程师的工作内容和所需要的技能.将这些技能按照渐进的顺序分为不同的组,当掌握了该组所需要的技能之后,就可以认为达到了一个新的测试工程师等级。这样,在教学过程中可以循序渐进地让学生掌握不同的技能组,每完成一个技能组,都可以完成对应的实际工作。
2) 开展“五步教学法” 根据软件测试岗位实践性强的特点,在教学中结合实际项目、开展“五步教学法”,按照以下五个步骤来组织教学:布置问题、动手实践、分析和讨论问题、理论讲授、实践提高。通过动手实践,学生明确工作任务。通过教师的分析和学生的讨论.学生能认识到自己动手实践中存在的问题。经过前三个环节的铺垫,学生就比较容易接受理论讲授,并能在实践环节去消化、运用。
该教学法以完成职业培养为目标,并将目标细分为一个个渐进的具体目标,通过不断地设置问题、解决问题,学生最终掌握一系列实际工作技能,达成培养目标。“五步教学法”的开展,一方面通过先动手、后总结的方式,强调在实践中学习,使学生对理论知识的学习有更清楚的目的,提高了学生的学习兴趣;另一方面,通过个人思考和小组讨论.锻炼了学生的思维能力, 同时学生的自主学习能力得到进一步提升,而这也是学生从业后需要具备的基本素质。
3) 框架式教学方法 给出实验目的和简略的实验参考步骤,让学生使用学过的软件工程的方法来进行实验。实验过程中每一步的具体内容需要学生自己完成,为学生充分发挥主观能动性创造了条件,留下了思考的空间。
4) 项目驱动下的案例教学 案例教学更有利于提高学生分析问题和解决问题的能力,促进学生学会学习以及沟通合作。在教学的过程中,应当以可操作的软件测试案例为中心,将测试理论贯穿开发全过程,指导软件开发。让学生能够真正地体会到实际的测试流程。鉴于软件测试由第三方进行的原则,可以由小组之间互相交换软件进行测试,学生之间可以进一步交流,互相督促,共同进步。
2.3 开发软件测试基线包用于教学
软件测试实践教学要借鉴IT公司开展测试项目的做法,面临的重要问题是项目案例的组织和规划,为此可以组织开发不同层次的软件测试基线包用于教学。
测试基线包和案例的收集主要通过以下途径:一是历年典型的学生开发项目案例、毕业设计等;二是包含着人为设置的软件缺陷的软件系列,所设置的缺陷代表着在实际软件开发过程中的典型问题;三是企业的项目资源,包括项目需求文档、项目设计文档以及项目软件的不同版本,这些资源能够让学生接触到完整的案例.并且由于基线包中包含了软件的不同版本,从这些版本中.可以清晰地发现软件缺陷是怎样被不断地发现和修复。此外,还可以从教材及参考书中收集、从互联网中收集。在测试案例的选取上,要遵循典型性、针对性和系统性原则,收集到的案例可以作为理论课讲解时的实例,也可以作为实验课的基本素材。
为了使软件测试基线包具有可移植性,可通过技术手段实现软件测试基线包的快速部署,使学生能快速便捷地完成测试环境及测试软件在不同场合的搭建。软件测试基线包的开发为教学和实践提供了有力保障.同时便于课程教学资源共享。
2.4 培养学生综合素质和职业技能
公司在招聘人才时,要求应聘者不仅要具有较强的理论知识和实践经验,也要具备良好的职业素质。由于软件测试职业的特殊性,后者显得尤为重要。目前的教学中,对于应试技巧的教学内容几乎没有,因此很有必要就这方面组织培训,使学生在入职前对软件测试职业有一定的了解,赢得面试官的青睐,获得更多的就业机会。
1) 加强学生面试技巧的锻炼,例如面试中的仪表风度、专业知识、工作实践经验、口头表达能力、综合分析能力、反应能力与应变能力、人际交往能力、工作态度、上进心与进取心、求职动机等方面。
2) 注重培养软件测试必需的沟通能力、责任心、怀疑精神、发散思维和反向思维能力。在学生中树立良好的测试团队意识,例如目标意识、团队意识、服务意识、竞争意识、危机意识等。
3) 搜集和整理一些知名软件公司(例如中兴、华为、IBM等)的软件测试工程师面试和笔试题,利用教学间隙组织模拟考试,进行讲解和点评。
4) 建立校外实训基地,与IT公司联合培养,通过企业实习提高学生的岗位技能,形成定向培养的长效机制,弥补大学毕业生没有工作经验的缺陷。聘请业界知名专家、IT公司经理来校讲座,了解测试行业最新动态,就相关问题答疑解惑,激发学生对软件测试学习的兴趣。
总之,软件测试教学应当与社会的真正需求相结合,实现就业岗位零距离。
3 总结和展望
以就业为导向的软件测试实践课教学改革改变了过去实践课流于形式,开展不到位的缺点,增强了学生的社会实践能力和岗位技能,实现了教学与就业的零距离,取得了一定的教学效果和社会效益。目前改革还未能形成完整的教学体系,在实践课的组织和实际操作上有一定的难度,实验形式的过于灵活会导致课堂教学效率降低。今后需要在目前的基础上作进一步完善,以适应当前IT企业不断变化的测试人才需求状况。
参考文献:
[1] 陈能技.软件测试技术大全-测试基础、流行工具、项目实战[M].北京:电子工业出版社,2008.
[2] 古乐,史九林.软件测试案例与实践教程[M].北京:清华大学出版社,2007.
[3] 朱少民.软件测试方法和技术[M].北京:清华大学出版社,2005.
篇11
软件产业正成为信息产业和国民经济发展新的增长点,然而国内的软件企业一再强调软件人才的不足,原因何在呢?软件人才教育的相对落后是影响人才短缺的一个重要因素,学生在学校学到的知识不能直接应用到企业的软件开发或测试上[1]。软件企业要加大与高校及培训机构的合作,开展“订单式”人才培养,学校在教学过程中,更加注重实践教学。广州大学华软软件学院成立于2002年,是全国300多家独立学院中唯一的一所软件学院,学院在软件技术人才培养方面的探索和实践已取得一定的成效,其中实践教学发挥了重要的作用。本文着重介绍学院软件技术人才实践教学体系的相关内容。
1 软件工程专业简介
软件技术人才的培养主要立足于软件工程专业(专业方向包括软件开发、移动互联网络应用及软件测试技术)和计算机科学与技术专业(笔者所在系的专业方向为企业级数据库应用与开发)。软件工程专业重视基础理论、工程训练、职业发展及外语能力的培养,实践课程注重软件系统分析与设计、软件开发与测试、软件质量控制与项目管理等方面能力的培养,要求本专业学生在掌握计算机软件领域基本理论知识的前提下,通过与IBM、Microsoft、SUN等业内大型企业合作,及时了解业界最新的软件开发与设计和软件项目管理技术,并能熟练使用软件工业界主
作者简介:吴爱华,男,讲师,研究方向为数据库技术、软件开发方法及软件测试技术等。
流的开发工具以及开源软件技术开发有一定质量的软件系统[2]。
1.1 专业方向
软件工程专业包括三个专业方向:软件开发、软件测试及移动互联网软件应用与开发。软件开发方向侧重邮件交换技术、短信平台应用及网络应用编程,要求学生能搭建B/S动态交互网站,熟悉软件开发方法,对软件工程有一定的了解,能胜任应用软件系统的设计、开发、测试、维护等工作。软件测试方向要求学生具备一定的软件开发能力,掌握软件测试理论与技术,侧重于单元测试用例编写,熟练应用软件自动化测试工具,搭建不同的测试环境并在不同环境下进行软件测试,了解测试管理的内容并能编写规范的测试报告。移动互联网应用与软件开发方向侧重移动通信及移动互联网基本理论知识,移动终端系统应用开发、维护及单元测试,移动互联网通信开发技术及移动互联网WAP平台搭建和移动搜索引擎开发[2]。
1.2 软件工程专业课程体系
软件工程专业三个方向的课程包括共同的专业必修课和各自的必修课。共同的必修课主要有计算机科学导论、离散数学、C++程序设计、SQL Server数据库、软件工程概论、数据结构与算法、操作系统、编译原理、Web编程。表1列举出三个专业方向相关的必修课程。
表1 各专业方向专业必修课程一览
2 实践教学体系
软件工程专业的专业课均是理论与实践并重的课程,理论课和实践课各占一半学时,通过实践教学巩固所学理论知识,培养学生解决实际问题的能力。在实践教学过程中,启发学生积极思维,利用所学理论确定实验课题的解决方案,掌握解决实际问题的方法和思路,同时也是培养创新型应用人才的有效手段。
2.1 实验课
软件工程专业的实验课分为基础性实验、综合性实验、设计性实验三种形式。基础性实验是指围绕课程某一章节的教学内容所开展的实验,是一种演示性或验证性实验。综合性实验是指实验内容涉及本课程的综合知识或与本课程相关课程知识的实验,一般以课程设计的形式进行。设计性实验是指给定实验目的、要求和实验条件,学生自己设计实验方案,并加以实现的实验,一般以项目实训(包括毕业设计)的方式进行[3]。专业基础课程以基础性实验为主,各专业方向的专业必修课涵盖基础性实验和综合性实验,毕业项目实训和毕业实习为设计性实验项目。
课程采用大小课相结合的方式,实行课程负责人负责制,课程负责人和课程组其他教师共同承担该课程大小课的教学任务,大课即理论课,小课即实验课,根据修读的学生人数分配大小课的班级,大课教室一般是容纳90至300人不等的多媒体教室,小课教室一般都是配备64台电脑的机房。
2.2 项目实训
项目实训在软件工程专业教学中占有重要的地位,主要包括两种形式:三年级学生暑期的集中式项目实训和大四第一学期的项目实训课程。
项目实训模拟软件生产流程,结合一个模拟的软件项目,让学生体验项目启动、需求获取、架构设计、详细设计与实现、测试、质量管理等完整过程,是对专业学习的一次集中总结和实践,教师通过实训项目管理平台对集中式的项目实训进行有效的管理。集中式项目实训邀请IBM、Microsoft、Parasoft等国际知名软件企业的专家指导,在实训项目中整合三个专业方向,软件开发与软件测试方向组队,移动互联网应用与软件开发与软件测试组队,目的是模拟软件企业的生产模式,使学生在未进入企业之前就对企业的生产方式有所了解,旨在培养学生软件设计、开发及测试的能力以及沟通能力和团队合作精神。
2.3 毕业设计
毕业设计是在专业课程的教学完成之后进行的一个重要环节,着重培养学生综合分析和解决问题的能力,通过综合训练深化、拓宽、运用所学知识,是学生从学校学习到岗位工作的过渡环节,同时也是衡量高等教育质量和办学效益的重要评价内容。教师结合业界新技术、新业务拟题,提供具有创新性的毕业设计课题以提高学生的创新能力,指导过程中启发学生逐步解决问题的能力。
2.4 精英班
学院设有Java精英班和.NET精英班,由软件研究所与软件工程系共同承担,成立专门的教研室负责日常管理和教学工作,通过有效的方式甄选出一批有志于从事软件开发、学习能力较强的学生,精英班加大实践教学力度,重点是项目实训,并与企业有对接项目,学历教育以外还增加了一系列专业课程,使优秀的学生接触到更多的专业知识,获得更多的实践机会,表2列举的是Java精英班的主要专业课程,表3列举的是.NET精英班的相关课程。
表2 Java精英班主要课程
(The Main Courses of Java Elite Class)
表3 .NET精英班主要课程
(The Main Courses of .NET Elite Class)
2.5 软件设计竞赛
我们组织学生参加各级专业竞赛以促进实践教学,扩大学生自主学习的时间和空间,调动学生学习的主观能动性,培养学习兴趣和创造性思维能力。学院提供开放式实验室供参与竞赛的学生使用,吸引学生在此进行实验、实训、技能训练,历年来我校学生在各级竞赛中获得较好的成绩。
1)“高校杯”软件设计大赛由广东省计算机学会主办,是省内在校大学生软件设计专项比赛的最高赛事,比赛每年举办一次,目前已成功举办20届。2006年我校成功承办第16届“高校杯”软件设计大赛,该项赛事首次由独立学院承办。本届大赛全省19所高校的25件作品进入决赛,本院学生开发的“无线远程终端”夺得大赛第一名和“创新奖”双料大奖,另一个参赛作品“Soker搜索引擎”则获得二等奖。
2)“国信蓝点杯”全国软件专业人才设计与开发大赛由教育部、工业和信息化部主办。首届比赛我校获得Java组2个一等奖,5个二等奖,4个三等奖,C语言组获得2个二等奖,4个三等奖,7个优秀奖;2011年第二届我院共有53名选手参赛,其中获得一等奖6名,二等奖10名,三等奖21名,优秀奖8名,同时我院还获得优胜学校奖和优秀组织奖。
3)“微软校园之星大赛”由微软教育培训合作伙伴ATA公司举办,旨在提高学生软件开发的创新能力,选拔优秀人才,是“微软实习生计划”的一部分。2009年软件工程系第一次组织2006级学生参加了第三届“微软之星大赛”,两个学生组队入围决赛,最终获得全国三等奖,2010年组织2007级学生参赛,三个学生组队闯入决赛,最终获得全国一等奖。
4) 广东大学生科技学术节由共青团广东省委员会、广东省教育厅、广东省科技厅、广东省学生联合会联合举办,以“营造学术氛围、提升科技素质、培养创新人才”为主题。我院软件工程系4支代表队分别闯入2011年第五届广东大学生科技学术节之首届“创新杯”粤港澳大学生计算机软件应用大赛总决赛,并最终获得两个二等奖和两个三等奖。
2.6 实训基地建设
学院的软件研究所主要负责学校信息系统的开发和维护,同时也是学生的校内实训基地,每年都会选派大三学生到研究所实习,表现优秀的留校或者推荐就业。学院自成立之初就着手与企业合作建立校外实训基地,目前为止实训基地数目达到30家,其中包括IBM、南天电脑系统有限公司、神州数码、电讯盈科、华南资讯等。
3 实践教师队伍建设
作为教学活动的直接承担及实施者,教师自身的科研实践能力直接影响实践教学的质量,现阶段独立学院教师的科研实践正是其薄弱环节,究其原因有以下几点:1)独立学院乃民办学校,缺乏吸引高端人才之优势;2)教师的来源一是退休的公办学校的教师(教授或副教授),未必有足够的精力再投入科研实践,二是刚刚毕业的大学生(本科生和硕士生),三是来自企
业,有一定的业务和工程经验,但缺乏科研能力。
加强实践课程教师队伍建设,提高教师的科研实践能力,首先要合理使用资深教师的科研资源,指导青年教师积极开展科研实践,申报各级课题;其次青年教师要紧跟理论和应用领域前沿,结合自己的专业方向努力钻研,再则学校为教师提供宽松的科研环境,并予以积极支持,可考虑与科研院所建立合作关系,选拔青年教师去培训或进修。教师在进行科研实践时,选拔学有余力的学生参与,对学生的实践和创新能力的培养是大有裨益的。
4 实践教学质量评价
为提高实践课程的教学质量,应该制定合理的质量评价指标。结合教育部的评估要求与独立学院的具体情况,主要从以下几个方面进行评价:1)实践课程的内容是否符合专业特色;2)实践课题能否培养学生的动手及创新能力;3)实践课程的考核方式是否合理有效;4)教学督导的评价及学生的反馈意见。
5 结语
以上从6个方面介绍了我院软件技术人才的实践教学体系,实践教师队伍建设。实践证明,遵循此教学体系培养出来的学生越来越多地受到企业的青睐。
参考文献:
[1] 高素梅.当前我国软件产业发展状况及趋势[N].中国电子报,2008-6-2(10).
[2] 广州大学华软软件学院软件工程专业介绍[EB/OL]. [2011-05-01]. /major01.aspx
[3] 广州大学华软软件学院. 广州大学华软软件学院实践性课程建设实施办法[S]. 广大华软[2011]10号文.
Practical Teaching System for Independent Colleges’ Talent of Software Technology
WU Aihua
篇12
Exploring about the Reform of Software Testing Course
in the Application-oriented Institutions
PANG Haibo, LI Zhanbo
(Software Technology School of Zhengzhou University, Zhengzhou, He'nan 450002)
Abstract This paper analyzes the software testing industry, and a number of issues that exist in teaching, summed up the software companies for software testing requirements and industry demand conditions talent for talent, summed up the software testing professionals should have the basic knowledge and quality requirements, focusing on the improve student software testing theory, technical capacity, a new model of software testing from the curriculum reform, teaching, engineering practice, school-enterprise cooperation and replacement programs, etc., to stimulate students' enthusiasm and motivation to learn and improve training quality of software testers.
Key words software testing; teaching reform; ability training; teaching process; course change
近年来,中国软件产业保持了飞速发展的趋势,软件产品的质量备受所有用户特别是IT行业用户的关注。软件测试作为软件开发过程中重要的一环,对保证软件质量具有至关重要的意义,同时也是控制软件质量的重要手段之一。目前,国内许多软件开发企业对软件开发仍然存在“重开发、轻测试”的思想,因此,尽快建立完善软件测试人才的系统培养环境、提高软件测试人才的培养质量,为软件产业的健康发展提供智力支持已成为软件测试专业课程和教学改革的主要目标之一。
本文首先分析了我国软件测试行业和教学存在的若干问题以及IT企业对软件测试人才的素质要求,接着讨论了软件测试专业课程的设置和定位问题,结合笔者的工作实际以及校企联合开展大学生软件测试技能竞赛的效果,对软件测试教学过程提出了一些建议。
1 软件测试行业和教学现状
软件生产方式已经越来越趋向于大规模集成化生产,这一生产方式确立了软件产品的质量控制与质量管理在软件生产中至关重要的地位。调查显示,我国软件开发企业普遍缺少测试人员,而专职软件测试人员与开发人员的比率更是偏低,远远达不到国外1:1甚至2:1的比例,整个软件行业从业人员比例结构很不合理。主要由于企业认知和软件测试人员的培养过程存在以下一些问题和不足而导致:
1.1 重开发,轻测试
很多企业和学生认为,软件开发比软件测试重要,软件测试相关工作职位待遇不如软件开发。他们认为软件测试从业人员不需要深入的专业知识,只要会写程序就能够胜任软件测试工作,从事软件测试类的工作没有前途,所以大部分倾向于做开发人员,而不喜欢做测试。同样,绝大多数学生认为软件测试比软件开发容易,没有较高的技术含量,只是能够找出软件中的错误就可以了。甚至有相当一部分软件测试人员认为软件的质量的好坏是开发人员的事情,与软件测试人员没有关系。
1.2 底子薄、基础差
大部分开设计算机课程的学校,学生都是到大学二年级后半学期才开始接触软件测试课程,缺少对软件测试课程的系统学习,甚至很多学生只学习软件工程课程,根本接触不到软件测试课程。
对离散数学、程序设计、软件工程等软件测试基础课程的学习效果差。例如,软件测试中黑盒测试用例的设计方法大都以数学知识为依据的,决策表驱动分析法与因果图法对应命题逻辑知识。尽管学生之前已经学习这些课程了,但是由于受行业认知的限制,学生经常忽略一些重要的知识,导致在后续测试课程学习中感到力不从心,最终还是不能够稳固掌握软件测试的相关知识和技能。
软件测试贯穿软件开发的全部过程,软件测试的大部分阶段都要求测试人员能够编写代码并且进行调试,比如,在单元测试阶段和进行白盒测试的时候都需要检查和测试代码,这就对软件测试学院提出了更高的要求,要求学生不但要了解软件测试技术,还要能够熟练对代码进行分析和调试,甚至更多的时候要求测试人员能够自己编写代码进行专项测试。但是,由于先导课程的课程设计、实践和考查的脱节,导致学生写代码能力较弱,不能灵活运用软件测试中的技术和方法。
1.3 重技术、轻理论
现代社会快节奏的影响和急功近利心情的驱使,学生通常希望学习一些能够马上使用的技术,而不愿意去学习复杂和理论性较强的工程管理内容。软件测试计划、软件测试管理等工程管理课程抽象和教条,并且理论性较强,教师如果单纯通过课堂教学,学生很难真正掌握这些内容,他们不能将所学知识马上转换为应用,或者不能立刻看到成效,会慢慢地失去对这些课程的兴趣和热情。同时,考虑到软件测试需要与具体的开发模式和行业背景相结合,在学习阶段容易受授课模式和知识结构的限制,学生觉得学无所用,将来也很难结合具体场合恰当使用测试手段。
1.4 重个人,轻团队
软件的大规模集成化生产意味着个人独立劳动已经不能胜任大型软件的开发,并且对团体软件开发中的协作和沟通提出了更高的要求。软件测试作为软件开发过程中一个不可或缺的环节,也需要测试团队分工合作。目前教学更多地采用教师讲、学生听这一学习模式,没有实现双向互动学习,老师总是面面俱到地传授测试专业知识和技术,希望学生能够学得更全面。然而,当代学生普遍以自我为中心,缺少基本的沟通和团队协作能力,单独的个体又不能独当一面,最终导致软件测试工作不能顺利进行。
2 软件测试人员素质要求及课程设置定位
软件测试人员的工作职责是理解软件产品的功能和性能需求,在软件开发中担任“质量管理”角色,这种职责对软件测试人员在技术、管理能力和个人综合素质等方面提出了更高的要求。主要包括以下方面:(1)全面技术能力。测试人员必须站在工程技术的角度对需要开发的产品进行理解,以工程技术产品应用为目的构造合适的测试用例进行测试。这就要求测试人员必须掌握软件生命周期、开发流程、软件质量管理知识,熟悉离散数学、工程经济等基础知识,熟悉各种系统平台、数据库、常用软件和网络等软硬件,掌握主流测试工具与测试管理工具,还有具备编程能力和相关行业的法规和外语等知识。(2)责任心。做测试工作,需要思维严密,具有怀疑与破坏的精神,测试人员要打破常规思路进行软件测试,能够设计一些非常规测试用例对软件进行破坏性测试。(3)细心与耐心。软件测试工作中发现缺陷的环节除了依仗测试人员的专业技术知识之外,还与测试人员的细心及耐心程度有很大关系。软件测试工作相比较软件开发工作而言,更加繁琐和枯燥,如果没有足够的细心和耐心,就会留下很多潜伏的缺陷。(4)良好的沟通与组织协调能力。软件测试不仅仅是测试人员和测试团队内部的事情,软件测试人员要能够与项目经理、开发人员、客户、市场人员等不同角色人员进行良好沟通,保持密切配合。这就要求测试人员具备良好的沟通技巧,当发现问题的时候,能够积极有效组织协调开发人员、客户等各方面来解决问题,并且能够精准表达自己的观点。
软件测试人员的素质培养,需要从构建合理的软件课程着手。课程体系构建根据测试内涵来分析相应的知识、技能、素质要求,以软件测试这一职业所需的知识和技能为先导,强调当前及未来就业岗位所需基础知识和基本技能的掌握运用,体现知识、能力、素质培养的统一。精选教学内容进行整合与优化,使课程模块化,明确每个模块化课程对知识和技能的培养要求,构建以掌握技术理论和技术应用为培养目的的课程体系,实现知识和技能同步培养和提高。
3 软件测试教学过程的改进
教学过程是对软件测试人员技能和素质培养的关键环节,教学方法起着至关重要的作用。教师在教学过程中应注意几方面:
3.1 正确认识开发和测试的关系,激发学生学习动力
针对学生认为软件测试不如软件开发重要,或者认为软件测试类岗位不如软件开发类岗位有前途等片面认识,教师应注意正确引导。通常在第一节课上教师应该结合功能测试、性能测试等具体案例介绍软件测试的重要性,让学生了解该课程的重要性、必要性和当前的行业动态。另外,要让学生认识到测试工作的丰富层次和内涵,了解测试人员应该具备的知识和技能更加多样,做测试工作比做开发更有挑战性。最后,要给学生介绍行业对测试人员的需求,让学生更清楚了解软件测试工作的待遇和发展前景,树立从事软件测试工作的决心和信心,激发他们学习软件测试的主观能动性。
3.2 案例法教学贯穿全过程
针对软件测试课程中测试计划、管理等理论性较强的工程化管理知识部分,需要结合实际案例进行教学,因为单纯课堂教条式的教学很难让学生深刻掌握这些知识的精髓并应用于实际工作,更甚至会让学生失去学习软件测试的兴趣。因此,应在教学过程中引领学生由易入难自己动手实践,激发学生的学习主动性与热情。通过课堂讨论或分组讨论的方式活跃课堂气氛,在讨论的过程中,让学生担任不同角色,模拟实际管理过程,切身感受管理知识的应用价值,同时,不同角色的轮换担任还可以锻炼学生的沟通能力,树立团队意识。教师要适时进行引导与总结,指导学生按照工程化的文档模板规范将思考分析的结果进行记录,在锻炼学生分析、解决问题能力的同时养成良好的学习工作习惯。
对于技术性较强的知识,也要注意实际案例的引入。加大实际案例实验学时的的分配,引入规模适中的工程实例,让学生利用所学的测试技术对实例设计测试计划,测试用例,执行测试,分析和讨论测试结果,发现测试存在的问题,通过这样的实践教学活动,更容易让学生产生成就感,激发学生兴趣。
3.3 注重工程实践课程和参与竞赛
根据软件测试行业对人才素质需求定位测试专业方向人才培养目标。由于软件测试课程与软件开发课程的不同,软件测试实验教学应该设立实验、实训和实习等多层次的工程实践课程,通过让学生参与实际工程项目,提高学生专业技术应用、分析问题和解决问题的能力。同样,教师需要设计和引入规模适中的工程实践项目,要求学生现学现卖,完成制定测试计划、设计测试用例、执行测试和评估测试的全过程。通过项目的锻炼,学生分析问题和解决问题的能力会逐渐得到提高。
鼓励学生多参加软件测试技能竞赛等实战性的实践活动,提高学生的观察、思考、交流、实践和协作能力。本团队组织学生参加河南省计算机学会主办的首届大学生软件测试技能大赛,成绩斐然:三个代表队分别获得了特等奖、一等奖和二等奖。事实证明,竞赛类的实践活动,能够极大激发学生自己动手进行软件测试的兴趣,同时在动手操作的过程中培养了学生的创新能力,促进了学生思维的纵深发展;学生对软件测试课程的学习热情和积极性空前高涨,学习的自觉性极大提高。
3.4 开展校企合作和课程置换
校企合作的目的就是通过学校与软件企业进行多方面的合作,建立企业实习基地,让学生能够亲身参与企业软件的开发和测试过程,校企合作是软件测试人才培养最有效的办法。在计算机行业,校企合作有着至关重要的作用,学生通过参与企业实际产品的开发和测试,可以更好更快地融入到软件开发过程中。学生不但能够将所学的综合知识进行实际应用,还能对软件开发有一个更加深刻的认识。与企业交流不只是学生的事情,教师参与其中也是十分必要,教师到企业实习,参与软件项目的测试,紧跟技术发展步伐,才能把握授课方向,才能以自身参与的项目为实例进行授课。
课程置换是将企业成熟的软件测试培训课程和教学体系替换掉学校的部分软件测试课程,将企业以应用为目的的教学方式、科学、系统和实用的课程内容引入学校教学。“他山之石,可以攻玉”,课程置换就是要结合学校教学和企业培训的优势方法和资源,弥补传统学校教学方式存在的不足,紧紧结合市场需求,提高学生各个方面的能力。 同时,课程置换将学历教育和职业教育相结合,学生在获得学历证书的同时,还能获得相关企业行业证书和一线实践经验,从而为学生毕业后服务于企业奠定良好的基础。
4 结束语
软件测试的重要性得到越来越广泛的认可,创造一种课程内容改革的引导机制,探索一套切实有效的大学生学习和实践相结合的学习模式,转变教师对传统软件测试课程的教育教学观念,推动软件测试教学改革,才是提高软件测试学生的专业技能和创新能力,最终提高学生的核心竞争力的根本途径。
参考文献
[1] 钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报,2007(9):90-91.
[2] 孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.
篇13
Abstract According to traditional vocational education computer major curriculum independent of each other, can not adapt to the students future career needs, to software testing technology as an example, analysis the cognitive law of the career needs and learning, the modular curriculum, the curriculum connection between, form the system of the professional curriculum system; through the project of the implementation of specific teaching, through knowledge and skills at the same time to strengthen the training of professional quality.
Key words curriculum system; project; modularization
高职计算机类专业时至今日依然存在着这样一个现实:一方面,随着现代化进程的不断推进,IT类人才的社会需求不断加大,每年IT人才的需求缺口达到一个庞大的数字,大量的用人单位求贤若渴;另一方面,几乎所有的职业院校都开设了计算机类相关专业,大量毕业生却不容易找到自己满意的工作。我们迫切需要寻找有效途径,解决庞大的毕业生就业群体与就业岗位之间不对称的问题。
“计算机类专业课程项目化模块化研究”旨在从课程建设的角度,缩小企业需求与学校培养的人才之间的差距。学生的职业规划需要从进校开始,贯穿始终,他们在学习的过程中就应该明确――当前所学课程和所学知识在整个专业体系中的地位。
下面我们以软件测试技术专业为例,从计算机知识体系的分析出发,结合IT职业岗位分析,研究如何将课程体系模块化,如何以项目化的方式组织教学。
1 课程体系模块化
课程体系模块化是指,将计算机类专业课程编制成在深度和广度上有差异的几种模块,各相近专业可以按照需要选择适用的课程模块,再加上少量自己开发的课程,组合成专业教学计划。模块化的课程结构,不但能及时体现新知识、新技术、新工艺和新方法 ,大大增强教学内容的适用性,而且能在一定程度上适应不同学习基础、发展需求各异的受教育者的需要。
我校软件测试技术专业,从专业的特征出发,以构建合理的模块化、项目化课程为目标,以专业知识认知过程与基于工作过程的课程设置为着眼点,形成了具有职业教育特色的课程建设思路及课程结构。
1.1 确定人才培养的目标及规格
我校软件测试技术专业主要面向“武汉・中国光谷”核心圈、武汉都市圈、“1+8”城市圈的软件测试和软件开发的企业,培养与社会主义现代化建设要求相适应的德、智、体、美全面发展,适应生产、建设、管理和服务第一线需要,具有良好的职业道德和敬业精神,掌握软件测试、软件开发所需的系统基础知识,具备软件测试环境装配、调试、使用、维护及测试工具的操作、测试用例设计动手能力,能从事软件测试、软件测试管理、软件开发、软件产品售前售后服务、技术文档编制和管理的高素质技能型专门人才。
根据专业领域的要求及人才培养目标,我们确定了以下的人才培养规格,如表1所示。
根据近五年毕业跟踪调查,软件测试技术专业学生的工作岗位主要为软件测试、软件开发、软件服务三个方向。三个方向的毕业生规格有一定的差异。
1.2 形成专业课程体系
根据前面得到的人才目标规格,以及专业技术领域的要求,我们拟定出六大课程模块,如图1所示:公共基础、计算机软硬件基础、算法分析与设计、软件工程、程序设计与开发、软件测试。课程的模块化有助于教学过程中紧扣目标,各课程之间有效衔接。
2 课程项目化
课程项目化,是指根据职业能力培养的需要,将教学内容设计成集知识、体能力和素质一体化的课程项目,以项目为媒介组织实施教学与考核,从而实现专业人才培养的目标。
课程项目化的教学目标是实现职业技能和职业素质的综合培养;教学方法强调学生自主性、师生互动性与成果应用性紧密结合。这样的教学方法将职业体验融入到学习过程中。
以“Java高级程序设计”课程为例,为实现课程目标,该课程设计了两个项目:第一个项目桌面游戏“捕鱼达人”,让学生对Java高级的七个知识点有初步的认识;第二个项目“学生信息管理系统”进行强化认知,增强实践能力。
在教学方法的运用上,该课程将学生划分为若干小组,模拟软件开发小组(公司),制定相应的公司管理说明,如表2所示;将业绩作为学生平时成绩评定标准。
通过项目化学习、项目化管理,学生的知识、技能及综合素质得到了很好的锻炼,同时也充分发挥了学习过程中的互助作用,使得学生的自主学习能力得以提高。
3 结语
以上我们主要从课程建设方面,以软件测试技术专业为例,对职业教育计算机类专业课程的改革提出了自己的观点,旨在提升计算机类职业教育的实效,让学生真正享受到职业教育的“实惠”。这样的改革还涉及师资队伍建设、实训基地建设、教材建设等多个方面的内容,有待我们进一步探索、实践和总结。
参考文献
[1] 姜荣,丛迎,曲桂.高职院校教师职业能力标准与评价体系研究[J].职教通讯,2013(2).
[2] 杨丽君,辛和金.高职院校教师职业能力构成及提升策略[J].中国市场,2014(17).