软件测试课程教学模式改革的研究与实践 研究报告分解.docx
《软件测试课程教学模式改革的研究与实践 研究报告分解.docx》由会员分享,可在线阅读,更多相关《软件测试课程教学模式改革的研究与实践 研究报告分解.docx(11页珍藏版)》请在冰豆网上搜索。
软件测试课程教学模式改革的研究与实践研究报告分解
湖北省教育科学规划研究课题
研究总结报告
课题名称:
软件测试课程教学模式改革的
研究与实践
课题编号:
2012B192
承担单位:
湖北文理学院
课题负责人:
华丽
课题组成员:
龚雄兴、谷琼、黄霞
二○一四年五月
1软件测试课程教学模式改革研究的意义1
2软件测试课程教学模式改革的措施2
2.1计算机专业校企合作的整体思路2
2.2软件测试课程新教学模式改革包括的内容3
3软件测试课程教学模式的构建3
3.1计算机专业应用型人才培养模式的探索3
3.2基于应用型人才培养模式的《软件测试》课程教学改革的实践7
3.3基于应用型人才培养模式的《C语言程序设计》课程教学改革11
4软件测试课程教学模式改革的研究成果及成效11
1软件测试课程教学模式改革研究的意义
目前,国内不同层次高校计算机专业的办学定位、培养目标和课程体系趋同现象严重,人才培养特色不突出,加上部分高校办学模式与市场需求脱节、课程设置理论与实践脱节,对学生的软件开发能力和新技术应用能力的培养不够重视,学生工程实践能力的培养和训练要求跟不上社会发展对计算机人才的需求,造成为社会输送的计算机人才存在较严重的结构失衡现象。
随着软件产业的迅速发展,软件测试的作用越来越重要,软件测试人才的需求量剧增。
软件测试人才的培养是近些年才在国内高校出现,但传统的教学模式在一定程度上已经不能适应新时期人才培养的需要。
目前国内软件测试人才的培养途径是以高校的计算机专业课程中开设软件测试课程为主。
众多高校开设的软件测试课程仍采用传统的教学模式,教师授课流于基本概念和基本理论的讲授,由于内容本身的抽象,又缺乏实践,使得学生感觉枯燥乏味。
往往是学完一学期,学生对于理论知识没有记住多少,而具体的实践技能更是没有。
为此,软件测试课程应紧跟时代步伐,引入先进的教学管理理念和教学模式。
本课题针对实际教学中发现的问题,结合教学经验,提出一种“211与抛锚式教学”相结合的新的教学模式。
首先,教学计划改变以往一学期学完《软件测试》所有内容的传统模式,而是随着学生对计算机专业及相关课程了解的深入,分三个阶段完成对该课程的学习。
其次,传统的软件测试课程只介绍软件测试的理论,以简单的案例进行说明,由于内容本身的抽象,缺乏足够的实践,使得学生感觉枯燥乏味,且不会活学活用。
为了激发学生的学习兴趣,在教学的过程中分阶段分别采用案例抛锚法和项目抛锚法进行教学。
课题组经过两年的实践,将探索出的软件测试课程的新教学模式应用在理论、实践和考核三个方面的教学环节中。
通过学生在企业中实习和就业中取得优秀的成绩,说明这种新的教学模式改革初步取得了明显效果,有效的促进了学生软件测试的应用实践能力,为软件测试人才的培养提供了一个可行的解决途径,具有现实意义。
2软件测试课程教学模式改革的措施
2.1计算机专业校企合作的整体思路
(1)构建计算机科学与技术专业工程、应用型人才培养新模式
构建高校和IT企业联合培养计算机专业人才新模式,即:
按照“211”人才培养模式,计算机科学与技术专业以“核心稳定、方向灵活”的工程、应用型人才培养为目标,实践创新为主线,方向建设为重点,课程改革为基础,产学研结合为特色,对计算机专业的本科教育进行分解,用2年左右的时间夯实基础,按大类计算机专业培养,在学校进行系统地学习,构建公共基础课程和专业核心课程体系;用1年左右的时间学专业,按专业方向培养,设置专业模块课程;用1年左右的时间用于多课程综合课程设计、短学期实训、实习、社会实践、毕业实习和设计等环节,进行校内和校外生产、工程、科研相结合的专业实习和毕业设计的“211”专业人才培养模式,使学生有更多的时间参与实际应用,从而培养出符合社会需求的应用型创新人才。
(2)以专业能力为导向,构建工程、应用型计算机专业人才培养的模块化课程教学体系。
提高教学质量是专业发展的首要任务。
根据软件企业对专业人才的能力要求,按照行业和企业的需求我们设置多个模块化的专业课程体系,并根据企业需求合理按需调整计算机科学专业课程体系,注重学生的发展潜力、硬能力和软能力的培养,培养出满足社会、企业需求的软件人才。
(3)分层项目体验式实训模式
为适应企业对软件人才要求,强调以知识为基础,以能力为核心,培养具有较强实践、创新能力和职业技能、可持续发展的高级计算机应用型人才。
针对传统教育所存在的问题,采用分层项目体验式学习实训方案,即把学生每个练习放到整个项目中去练习,学生在练习任何一个知识点的时候,运行程序所看到的都是整个项目最后实现的效果,而不必关心其他没有学习过的知识点,但该知识点实现的效果却可以体现在运行的结果上,学生可以对该知识点实现不同的业务逻辑达到项目产生不同的结果。
(4)校企联合打造“双师型”师资队伍
坚持“引聘名师、培养骨干、校企合作、专兼结合”的原则,积极拓宽师资队伍的来源渠道,优化教师队伍,实行激励与制约相结合,健全管理机制,采取“引、聘、送、下、带”和专任教师与企业技术人员“互兼互聘,双向交流”等措施,建设具有双师素质、双师结构的优秀教学团队。
2.2软件测试课程新教学模式改革包括的内容
1、教学计划采用“211阶段”
第一阶段
(2):
在学生学习完《程序设计语言》课程后,第二学年的第一学期开设《软件测试概论》这门课,让学生对软件测试的基础理论知识有一定的理解;第二学年的第二学期开设《综合测试》课程,掌握有关自动化测试工具的使用并培养学生团队合作意识。
第二阶段
(1):
第三学年开设一门完全是以实训为主的课程,让学生能够掌握不同环境平台下的测试方法,并根据对需求规格说明书的分析,自动生成测试用例。
第三阶段
(1):
第四学年让学生到跟我院合作的企业去实习,真正掌握软件测试的实践技能,以适应市场发展的真正需求。
2、教学方式采用“抛锚式”教学法
为了激发学生的学习兴趣,并根据学习内容的变化,采用了案例抛锚和项目抛锚两种教学方法。
第一,采用案例抛锚教学。
这种教学方法主要应用在教学计划的第一阶段,学习《软件测试概论》和《综合测试》的时候使用。
第二,采用项目抛锚教学。
这种教学方法主要应用在教学计划的第二阶段,在软件测试实训过程中使用。
3、课程考核方式
最终的考核方式由试卷命题闭卷考核的方式改为独立完成一个实际软件项目的综合测试,以此更能考核学生对软件测试掌握的综合能力。
3软件测试课程教学模式的构建
3.1计算机专业应用型人才培养模式的探索
地方本科高校与企业合作是培养应用型本科人才的必由之路,有利于学校建设“双师型”师资队伍,建立人才培养实习、实训基地,提高学生的工程实践和创新能力;有利于提高办学质量、节约办学成本;有利于提高学校就业率和竞争力;有利于学校开展技术服务和创造经济效益。
由于地方本科院校受条件与环境的限制,学科建设、科学研究及专业发展与知名高校相比无任何竞争优势,与企业之间的产学研合作体系薄弱,必须寻找适合自身实际校企合作的专业发展之路。
本校按照“重基础,重实践,精方向,强工程”的基本原则,以市场需求和就业为导向,突出“宽泛扎实的基础知识,专业深入的技术技能,精确娴熟的工程经验”人才培养定位。
采取“需求驱动定位、应用驱动技术、案例驱动教学、场景驱动训练”的培养方法,充分利用近年来与甲骨文中国等公司进行全面合作并开展专业共建的优势和在人才培养模式改革、过程考核、模块化教学体系构建、校企合作及模块互换学分互认等方面所取得的诸多成果,通过构建以专业能力为导向的模块化教学体系、围绕工程项目开展实践教学、建立多元化的师资队伍、加强校企产学研合作以及完善质量监控与保障体系等途径,培养企业真正需要的、具有创新意识的IT人才,保证人才培养目标和培养要求的实现。
(1)构建计算机科学与技术专业工程、应用型人才培养新模式
前四学期“重基础”,重点完成对学生专业基础知识和基本技能的培养,体现在通识教育基础、自然科学理论基础、专业理论基础和专业技术基础课程教学内容必须放到特别重要的地位,通过强化数理基础模块和注重专业基础模块教学,促进学生创新思维的形成和创新方法、创新工具的掌握,让学生更早了解工程背景,为专业后续模块学习和工程能力培养打好基础。
从第二学期开始为每位学生配备校内专业指导教师,负责对学生在校期间的学习、专业选择、学习进程规划和学习方法等指导。
“重实践”体现在必须保证实践能力培养四年不断线,每学期都做到有相应的教学环节培养学生的综合知识运用能力和专业实践能力。
在专业实践能力培养方面,强调三个层次能力培养:
程序设计能力培养、系统开发能力和软件工程能力培养。
程序设计能力培养是基础,必须具有运用程序设计工具编写高质量程序的能力;系统开发能力指全面规划软件系统的功能和系统实现的能力,使系统从功能和性能等方面满足用户要求。
软件工程能力体现在软件开发过程的组织、控制和管理能力。
程序设计能力培养将贯穿四年学习过程的始终,第一年是基础;从第三学期开始将从“系统”的角度逐步培养系统开发能力,从第四学期将开始逐步培养学生的软件工程能力。
第四年的企业实践重点强化学生的系统开发能力和软件工程能力。
第五、六学期“精方向”,即在双导师指导下,学生在选定的专业方向进行深入学习。
采取基于项目的教学模式和以问题为导向的探索式学习模式,培养学生从工程全局出发,综合运用多学科知识、各种技术和现代工程工具解决工程实际问题的能力及综合素质,强化培养学生自主学习能力、创新意识和探索未知领域的兴趣。
另外,通过加强与软件企业合作,完善双方模块的学分认证标准,学生在此环节获得的学分双方互认,并颁发相关证书,从而将软件行业所需要的专业能力融入人才培养体系。
第七、八学期“强工程”,学生将利用一年时间到企业进行项目实训和做毕业设计(论文),通过企业项目实训和毕业设计(论文)等工程实践环节,强化学生从事工程实践所需的专业技术能力,进一步锻炼学生的工程实践能力和独立工作能力。
毕业设计(论文)的选题来源于企业,做到100%真题真做。
(2)以专业能力为导向,构建工程、应用型计算机专业人才培养的模块化课程教学体系
针对人才培养目标,通过学习和借鉴甲骨文中国公司的模块化教学成功经验,确定学生应具备的专业能力,再将抽象的专业能力具体化为能力要素,针对每个能力要素确定其对应的知识点。
对能力要素优化组合形成能力单元,然后对各个能力单元及其对应知识单元逐一封装形成“模块”,从而将传统的按学科知识体系构建专业课程体系,转变为按专业能力体系构建专业模块化体系的方式,对应的校企合作企业培养专业能力与要求见表1。
在模块化教学体系中,一项专业能力可由一个或若干个模块的知识和应用来描述。
一个模块是围绕学生能力涉及的知识的有机组合,既包含理论知识讲授,又有工程实践训练,具有可重组性和教学内容的非重复性,对应能力的培养环节连贯、递进,可适应不同类型IT人才的培养需要。
针对特定的能力单元设置,面向能力培养重构模块的教学内容,对传统模块体系的教学内容进行拆散、整合优化。
能力
培养要求
软件分析与设计能力
掌握用户需求调研和需求分析方法
掌握IBMRationalROSE、PowerDesign等建模工具和常见的软件设计模式
能够设计和定义软件构架、模块划分的接口协议
能够运用VISIO工具进行详细设计及软件流程设计
具备用户需求说明书、软件规格说明书、概要设计说明书、数据库设计说明、详细设计说明书等软件开发文档的撰写能力
软件编程能力
熟练使用ECLIPSE,进行JAVA程序的编辑、编译、运行和调试,并能开发中小型程序
能够运用VisualStudio工具进行.Net程序的编辑、编译、运行和调试,并能开发中小型程序
掌握Web应用系统的界面设计、脚本编程、业务逻辑编程及系统部署能力,并能开发中小型程序
能够运用InstallAnywhere等工具制作产品的安装程序,能够编写用户使用手册、安装说明等文档
软件测试能力
熟练使用Jtest、C++Test、.NetTest等工具完成单元测试、集成测试、性能测试和回归测试
熟练使用TestDirector等工具撰写软件测试计划、测试用例和测试报告
熟练使用LoadRunner等工具搭建性能测试环境并进行测试
软件项目管理能力
熟练使用Project等工具进行项目范围界定、计划制订、进度监控、开发资源分配与成本管理等工作
掌握软件配置技术,熟练使用CVS、SourceSafe等工具
利用移动互联开发能力
利用VisualStudio、ADS等IDE进行WinCE、Linux和Android等平台的移动互联的编程、调试和部署
利用PB等工具进行嵌入式驱动程序开发
DB开发与管理能力
熟悉Oracle、DB2等常见数据库的配置管理技术
掌握数据库系统的安全保护技术和性能调优技术
软件工程综合能力
熟悉并掌握软件项目的需求分析、系统设计、系统实现、系统测试、系统安装调试等各环节的相关技术和实施方法
职业素养
熟悉行业政策法规,具备良好职业道德,了解相关企业文化、核心价值观,具备良好的规范意识和团队精神
表1校企合作企业培养专业能力与要求
(3)分层项目体验式实训模式
实训阶段的训练从基本的代码能力,到中级的程序构建与业务实现能力,再到高级的复杂的企业项目研发能力,逐步培养。
并对老师要求有指导学生创新与商业思考的实际教学实践能力。
在具体设计上,采用了创新的分层实训模式,即把来自的企业项目根据不用的目的分层设计成多个实训套件。
首先把来自企业的项目直接部署给学生体验使用,再把企业项目根据业务划分、技术分类拆分成实训产品,培养学生业务综合应用能力,技术综合应用能力,接着把技术分类的实训项目牵涉的技术分解到日常的教学中,作为学生学习过程的实训项目,从而实现地方本科院校的人才培养与企业的人才需求实现无缝对接。
(4)校企联合打造“双师型”师资队伍
1)提高专业教师的工程能力
建立教师到企业实践制度,使文化课教师了解专业知识,专业课教师掌握专业技能。
企业高级工程师到学校进行高级课程研修,学术讲座以及利用学校的科研条件开展企业的研发项目,从而形成“校企之间教师和技术人员工作互访交流制度”。
2)企业教师的聘用
学校从三个方面聘用相关企业人员参加教学:
企业教学顾问:
根据学院人才培养工作的需要,聘请企业专门人员担任教学顾问,参加人才培养方案、大纲的研讨与制定工作,同时监督人才培养质量。
企业兼职教师:
聘请企业具有丰富工程实践经验的工程技术专家和管理人员担任兼职教师参加日常的教学工作中,承担专业课程教学任务;对实践性和应用性较强的课程,聘用企业的相关人员开设前沿技术课程、专业认知讲座、职业规划讲座,对学生进行专题培训。
企业导师:
在培养方案各个实践环节实施“双导师制”,学校导师为学生选课、研究性学习提供指导,企业导师为学生工程实践和创新设计的选题及其实施、完成等环节提供指导或现场咨询,进行工程师方面的全面基本训练。
3.2基于应用型人才培养模式的《软件测试》课程教学改革的实践
3.2.1《软件测试》课程简介
《软件测试》是一门迅速发展的新兴学科,是计算机软件专业、计算机应用专业、计算机信息管理等专业的一门重要专业课,是计算机软件开发与测试、软件测试专业高年级学生必修的一门专业课。
《软件测试》课程是一门实践性、应用性很强的课程,主要目的是使学生在学习程序设计语言、软件工程等课程的基础上,熟悉软件测试岗位的工作职责,了解软件测试的方法和原则、规范以及管理,掌握软件测试工作流程、测试技能,培养学生的实际动手操作能力和专业实践能力,为就业打下坚实的基础。
3.2.2《软件测试》课程教学存在的问题
《软件测试》课程教学模式是指:
《软件课程》课程教学的总体设计,是一个完整的功能体系,包括教学目标的确立,教学计划及进度的制定,教学方法、手段的选择和实施,课程考核的方法和手段等等。
本部分对传统教学模式包含的各部分进行讨论,分析目前该课程教学模式所存在的问题。
1教学计划及进度
目前大部分高校的计算机相关专业都是在大三下学期开设《软件测试》课程。
学习的内容主要包括软件测试的基本概念、黑盒和白盒测试用例的设计技术以及测试自动化工具的使用。
在课程学习结束后,因为学习过程过于短促加上学习内容拘泥于书本化,所以大部分学生学完之后对该课程的印象如过眼云烟,没有留下有记忆的内容。
即使是学习特别用心的学生所学到的也仅只是书本表面的内容,掌握的也只有软件测试的基础理论知识,极度缺乏实践环节的经验,进入到公司企业后,仍然无法完成一个软件项目测试的实际需要。
2教学方法及手段
目前高校开设的《软件测试》课程所采用的教学方法及手段与其它课程一样,即课堂讲授和实验室实践相结合。
这种教学方法属于一种填鸭式的教学方法。
首先,学生在学习的时候对学习的内容不可能产生很大的兴趣,完全属于一种被动式的学习,那么学习效果就不会很好。
另外,实验室实践环节完成的只是对简单案例的测试用例的设计,与公司企业需要测试的大型软件还是相差甚远,无论是测试方法还是测试过程及测试需要完成的文档都有很大的区别。
因此,这种传统的教学方法及手段无法适应市场的需求[2]。
3考核的方法及手段
传统的《软件测试》课程的考核方法及手段仍然是采用试卷命题闭卷考核的方式。
首先,而《软件测试课程》是一门实践性和应用性很强的一门课程,这种考核方法所考核的仅仅是学生对理论基础知识掌握的程度,并不能真正考核出学生对软件测试技术的能力和过程掌握的情况。
另外,学生学习的过程远远比一次考试的最终结果更能体现出学生真正的水平,所以最终这门课程的成绩也不能由最后一次的考试结果来决定。
3.2.3《软件测试》教学模式的改革
根据公司企业对软件测试人员技能的实际要求,对以前的教学计划、课程设计、教学方式的实施及考核方式进行调整。
1教学计划采用“211阶段”
教学计划一改以往一学期学完《软件测试》所有内容的传统模式,而是随着学生对计算机专业及相关课程了解的深入,分阶段完成对该课程的学习。
如此这样,一方面使学生以循序渐进的过程学习该课程,印象更为深刻;另一方面,学习的内容除了书本上的基础理论之外,还包括了丰富的实践内容。
第一阶段
(2):
在学生学习完《程序设计语言》课程后,第二学年的第一学期开设《软件测试概论》这门课,让学生对软件测试的基础理论知识有一定的理解;第二学年的第二学期通过抛锚式教学法开设《综合测试》课程,掌握有关自动化测试工具的使用并培养学生团队合作意识。
第二阶段
(1):
第三学年开设一门完全是以实训为主的课程,让学生能够掌握不同环境平台下的测试方法,并根据对需求规格说明书的分析,自动生成测试用例,这将是软件测试的一种趋势。
第三阶段
(1):
第四学年让学生到跟我院合作的企业去实习,真正掌握软件测试的实践技能,以适应市场发展的真正需求。
2教学方式采用“抛锚式”教学法
传统的只介绍软件测试的理论,以简单的案例进行说明,由于内容本身的抽象,缺乏足够的实践,使得学生感觉枯燥乏味,且不会活学活用。
为了激发学生的学习兴趣,并根据学习内容的变化,采用了案例抛锚和项目抛锚两种教学方法。
第一,采用案例抛锚教学。
这种教学方法主要应用在教学计划的第一阶段,学习《软件测试概论》和《综合测试》的时候使用。
如何选择好的案例对帮助学生理解软件测试技术起到至关重要的作用。
我们根据案例的难易程度,将案例和软件测试理论与技术相结合,把案例分成基础案例和综合案例两种[3]。
在学习《软件测试概论》的时候,比如白盒测试、黑盒测试技术,应尽量选择简单的基础案例,可以让学生把更多的注意力集中在测试的方法上而不是案例本身上,这样更有利于学生理解测试技术的原理从而掌握测试技术。
在学习《综合测试》的时候,我们提供给学生的是一些比较复杂的综合案例。
为了培养学生的团队意识,对学生进行分组,以小组为单位来解决较为复杂的测试问题。
通过团队进行的整个测试过程既可以让学生感受到一个综合案例测试的工作流程、实施细节及注意事项,又可以促进学生沟通与协作的能力。
在综合测试的整个过程中,还要应用到各种自动化测试工具,包括WinRunner功能测试工具、LoadRunner性能测试工具、TestDirector测试管理工具等,为学生毕业后从事真正的测试工作打下坚实的基础。
第二,采用项目抛锚教学。
这种教学方法主要应用在教学计划的第二阶段,在软件测试实训过程中使用。
在学生掌握了软件测试的相关测试技术之后,需要将所学的知识灵活运用到实际环境下的软件测试中。
因此,在该阶段学习的内容主要以对项目的测试为主,选择的项目必须具有不同的软件和硬件要求以及特定的配置环境,这可以让学生提前适应实际测试工作的流程,进一步提升学生对所学的软件测试理论知识和测试技术综合应用的能力。
针对每个具体的项目,按照软件测试的三个主要阶段(测试计划、测试用例获取、测试有效性度量),充分将软件测试理论与实践结合起来,通过对不同环境下项目的测试,找出软件测试技术各阶段之间的相互联系,从而达到软件测试的教学目的和培养目标。
3校企合作
为避免学校培养出来的学生与社会的需求相脱节,应该使学生尽可能早的了解市场的行情,以掌握市场所需要的各项测试技能。
因此,非常有必要使学校与公司企业进行合作,合作的方式可以有以下几种:
第一,请企业和公司的专家给老师、学生进行技术讲座或是市场信息的宣传,让老师和学生充分了解市场的需求以及学生需要掌握哪些技能[3],使得老师的教和学生的学真正做到有的放矢。
第二,与企业建立学生实习合作。
争取在企业里有一定数量的学生校内或校外软件测试实习并指导就业。
第三,与企业合作进行外包测试。
4课程考核方式
一方面,为了促进学生学习的过程,并提高学生学习的动力和积极性,最后的考核分数由两部分组成:
平时成绩占50%,最后考核占50%。
另一方面,该课程是实践性和应用性很强的课程,所以最终的考核方式由试卷命题闭卷考核的方式改为独立完成一个实际软件项目的综合测试,以此更能考核学生对软件测试掌握的综合能力。
3.3基于应用型人才培养模式的《C语言程序设计》课程教学改革
《C语言程序设计》是很多与计算机相关的专业必修的一门专业基础课,是进入专业学习后与该专业其它的后继课程联系最紧密的一门课程,所以它被称为通往计算机专业的入门课程。
因此,学好这门课程对后面《面向对象程序设计》、《数据结构》等重要专业课程的学习起着至关重要的作用。
另外,这门课程同时也是很多高校非计算机专业的理工科要学习的公共基础课。
但是很多同学一入学就被这门课程难倒了,认为这门课程涉及的概念多,语法复杂,内容广泛,特别是程序设计的思想难以理解,所以很难入门。
根据多年来的教学经验发现,学生在学习《C语言程序设计》这门课程时,会把中小学数学中解决问题的惯性思维,不自觉地应用到C语言的学习中。
恰恰是这种惯性思维阻碍了学生学习C语言的步伐。
因为数学中是用人脑解决问题,解决问题的主体是人。
C语言中是人通过编写程序让计算机解决问题,解决问题的主体是计算机。
这两种解决问题的思维模式有着很大的区别。
为了使学生尽快融入到C语言解决问题的思维模式,在教学过程中,应就二者的区别,多引导学生培养计算机解决问题的思维模式。
如此这样,学生会对为什么C语言要这样解决问题有了清楚的认识,也就更容易接受和理解C语言中某些看起来很难理解的内容。
4软件测试课程教学模式改革的研究成果及成效
该课题的选题和立项具有较强的针对性,对计算机、软件工程等相关专业的软件测试课程的教学模式改革、实践教学体系的构建有着重要的指导意义。
自2012年立项以来,在课题组成员的共同努力下,有效的开展了相应的教学研究和实践活动,获得了较为显著的成效,主要表现在以下几个方面:
(1)发表3篇相关的教学研究论文
[1]华丽、龚雄兴、谷琼、黄霞,“软件测试”课程教学模式改革与探索,计算机时代,201