时间:2023-03-08 14:51:29
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇软件测试实训总结范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
中图分类号:G420 文献标识码:A 文章编号:1009-3044(2012)30-7258-02
近几年来,计算机信息技术发展迅速,我国的IT行业开始向国际化、规范化迈进。以往只重视软件开发而忽视软件测试的情况正在改变,软件测试行业开始迅速发展。
国外小一些的软件企业,软件开发与测试人员之比基本上是1:1,微软公司更是达到了1:2,软测试人员规模远超过开发人员的规模[1]。尽管一些国内大型软件企业开始重视软件人才的合理配置,但有的企业其比例也就只有10:1。软件测试工程师闹人才荒[2],中高级测试员紧缺的现象已十分明显。
据统计,国内软件测试工程师的缺口为20万人左右,这一点从51JOB的招聘信息中可见一斑。近两年,软件测试工程师的需求和待遇都达到了历史新高。
然而与当前软件测试行业如火如荼的现状极不协调的是当前软件测试培训领域的现状[3],从事软件测试工程师培训的专业机构寥寥无几,而且价格昂贵。大学里几乎没有软件测试专业,部分院校开设《软件测试》这门课程面临三方面的问题,一是软件测试教材知识片面。二是内容枯燥,学生不感兴趣。三是教师教学经验严重不足。面对软件测试人才的社会需求紧迫性,人才培养单位应该扩大软件测试人才培养规模,总结软件测试知识点,改革教学方法,培养学生兴趣,提高培养质量。
1 软件测试课程教学方法探讨
针对以上问题,在教学中应采取以下解决方法:
1.1 融合软件测试知识点,分阶段教学
目前,国内的软件测试教材只涉及了部分基本理论知识,不够全面,介绍的软件测试工具也相对落后一些。针对这种情况,任课教师首先要融合多本软件测试书籍内容,总结出软件测试所涵盖的知识点,更新软件测试发展情况。
其次,根据学生学习过程分阶段教学[4]。第一阶段是基础阶段,让学生掌握软件测试基础理论知识和软件测试核心技术,以及常用测试工具的操作。第二阶段是项目综合实训提高阶段,在掌握基础理论的前提下,加强综合测试技术在项目实训中的运用,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标。最后是培养学生自主学习阶段,介绍软件测试最新的技术与发展方向,引导学生对基本技术向纵深方向思考。同时向学生提供软件测试方面重要的会议、杂志、论坛、网站,引导学生课下查阅学习资料,鼓励学生自我学习。
1.2 改革教学方法,采用案例驱动教学
大部分高职院校学生基础差、学习积极性主动性不强、自制力不高。在课堂教学活动中,如果继续采用传统教学方法,很难激发学生学习兴趣。应该采用案例教学方法[5],将《手机信息管理系统》、《学生图书借阅系统》、《学生信息管理系统》等案例资料发给学生,学生拿到案例后,在教师的引导下,课下先要进行消化,然后查阅各种他认为必要的理论知识,理解知识并思考提出解决问题的方法。课上教师答复学生的问题,并引导学生更深层次的思考。通过这种方法充分调动学生的学习积极性,提高其学习兴趣,使学生既学会理论知识分析又学会用理论知识解决实际工程的问题。
1.3 采用软件测试项目综合实训的实验教学模式
开设综合性的软件测试课程实验,按软件企业项目管理和开发模式,进行软件测试项目实训[6],培养学生的创新意识与实践能力。将班内学生分成若干个测试小组,每小组成员不超过7人,每组分配不同的软件项目,如工资管理系统、图书管理系统、学生信息管理系统、酒店预订系统等。小组成员模拟与体验软件测试工程全过程工作职位和角色,使学生全过程适应工作职位的要求。
各项目小组在测试项目过程中,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标,并进行回归测试,以实现软件测试各单项专业知识与技能整合运用的目标。在整个测试过程可以体现“学以致用”的思想,实现理论与实践相结合。
各项目小组通过演练项目开发,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。
1.4 加强校企合作
坚持“走出去,引进来”的思想,经常邀请企事业、软件公司里一线软件测试人员或软件测试组长和项目经理,来学校为学生做定期讲座,或定期对教师进行培训。也可以利用假期或其他时间,安排教师学生进软件公司,一起跟进项目开发测试。目前本校已经连续两年安排教师学生去齐鲁软件园,进公司一起进行项目开发测试工作。效果不错,参加实训的软件项目综合实训的教师软件开发测试能力有较大提高,并且学到一些最新最实用的软件开发测试技术。
1.5 改革课程考核方法
软件测试这门课程兼具理论与操作,目前大部分院校考核方式与理论考试为主,这种考核方式会促使部分学生考前抱佛脚,考前死记硬背,降低学生学习的积极性。除了理论考核之外,还应注重学生综合知识和应用能力方面的考核。建议课程考核应该包含平时作业、课堂表现(发言与讨论)、实验、综合实训、理论考试这几部分。采用这种考核方式,促使学生加强对知识的理解和运用,课堂踊跃发言,提高学习的主动性和创造性,以及动手操作能力。
1.6 适当加入一些最新的游戏测试
高职院校学生大部分的课余时间都是泡在网吧里玩游戏,有很多同学一有时间就玩手机游戏。学生对最新的游戏内容比较感兴趣,游戏测试也是软件测试的一方面,教师可以在课堂教学中加入一些游戏测试内容,提高学生的学习兴趣。
1.7 采取双证教育
实行“双证教育”模式[7],将学历教育与技能学习无缝对接,学生毕业后不仅能获得国家劳动部高级职业技能认证证书、拥有扎实的操作技能,同时还将获得国家承认大学学历证书。双证教育使学生专业能力更强、职业素养更高、综合素质更好、更符合企业用人标准。
测试工程师有高级测试工程师、中级测试工程师、初级测试工程师。根据高职学生的能力特点,应该把高职学生定位在初级和准中级测试工程师,具有一定的设计方案的编写能力,能利用测试工具完成一定的测试任务,并能够执行功能测试。
2 总结
通过在本校近五六年的软件测试教学实践,发现软件测试教学方法需要不断改进,融合软件测试知识点分阶段教学,采用案例驱动和双证教育模式,加强校企合作和教学实践这些措施能较好地提高学生学习兴趣和动手操作能力,教学质量也有较大提高。软件测试人才培养刚刚起步,很多工作处于摸索阶段,需要学校、教师和学生的共同努力,为社会培养出大批合格的软件测试人才。
参考文献:
[1]程茂,温静,吴玉洁.《软件测试》课程的教学研究[J].河北师范大学学报/教育科学版,2010(4):117-120.
[2] .
[3]赵斌.软件测试技术经典教程[M].北京:科学出版社,2011(3).
[4]葛汉强.高职《软件测试》课程分层教学之实践[J].职业教育研究,2011(8):105-107.
软件测试是伴随IT产业的发展而出现的新兴工作岗位。不论目前还是将来,人才市场对软件测试人才都有很大的需求量。《软件测试》课程是高职计算机软件专业的一门新课程。这门课程的实践性很强,如果没有实验、实训环节的支持,用传统的灌输式教学方式枯燥地讲解测试理论和测试方法,会使学生产生抵触和厌学情绪。《软件测试》课程使用的工具和测试的对象都是看不见、摸不着的软件产品,实验与实训课程的组织和实施有较大的难度,容易造成实验的随意性。我院在开设这门课程之初,按照学院确立的“针对市场设专业、针对企业定课程、针对岗位练技能”的办学思路,在办学模式、课程内容和教学方法上做出了一系列的改革,取得了良好的教学效果。
教学改革的措施
(一)与软件公司合作办学
经过调研发现,IBM软件学院推出的高校软件人才教育伙伴计划,旨在利用IBM公司在软件技术和开发工具上的优势与中国高校合作,培养软件人才。该计划中的《软件测试》课程是与高职院校合作,培养软件测试人才。经过沟通和协商,我们决定同IBM软件学院合作。我院通过选拔的方式对软件专业的学生组建软件测试班,IBM软件学院为我院提供师资培训、测试工具软件、课件和技术支持。通过这种合作,我们可以利用IBM公司在业界的领先地位,引进最先进、最实用的测试理论和方法,使用最流行的测试工具软件。软件测试班的学生除了系统地学习学校规定的公共基础课以及专业基础课和专业课,掌握软件开发的技能以外,还要学习软件测试理论和实践课程,掌握软件测试的岗位技能。学习结束之后参加IBM公司测试工程师的认证考试。这样,不仅拓宽了学生的专业口径,还可以使学生在毕业的同时获得学校的毕业证书和IBM公司颁发的测试工程师证书。
(二)改革教学内容,强化实践教学
在课程内容的安排上,我们摆脱了传统的重理论,轻实践的做法,将《软件测试》课程划分为四个模块分别组织教学。《测试理论》课程是理论模块,占64个学时,《功能测试》、《性能测试》和《测试管理》等课程是实践模块,各占32个学时。
其中,《测试理论》课程系统地讲解软件测试的理论和方法。为了验证理论,加深对理论的理解和掌握,安排了需求分析和软件设计的UML建模、白盒测试、黑盒测试、系统集成测试等五个实验。理论课以一个软件项目的开发和测试实践为主线进行讲解,实验课选取了开发和测试该软件项目中的关键实践部分展开,帮助学生从软件开发和测试的实践中理解和掌握理论。这种安排使所有的测试理论和方法都能找到实践的依据。理论指导实验,实验验证理论和方法,实验与理论在同一个软件项目中融为一体。《功能测试》、《性能测试》和《测试管理》等课程分别要求掌握IBM公司的功能测试软件(Rational Functional Tester)、性能测试软件(Rational Performance Tester)和测试管理软件(TestManager)三个软件测试工具的使用方法。这三种测试工具对应软件测试工作的三种重要岗位。通过学习和实训,学生将掌握如何录制、回放脚本,如何执行自动化测试和回归测试,如何设置和使用验证点,如何使用数据驱动,如何分析性能测试报告,如何设计测试用例以及如何管理测试过程等基本的软件测试岗位技能。
经过这种划分,理论模块集中讲解理论知识,为实践模块提供理论基础和依据;实践模块培养学生的岗位技能,是教学的主要目的;实践模块的课时超过了理论模块的课时,反映了“实践为重”的思路。
(三)建立软件测试实训基地,实验和实训课采用项目教学法
为了确保实验课和实践模块的教学效果,在IBM公司的帮助下,我院建立了软件测试实训基地。IBM公司为我院提供了UML建模软件(Rational Rose)、功能测试软件(Rational Functional Tester)、性能测试软件(Rational Performance Tester)、测试软件(Rational Robot)和测试管理软件(TestManager)等。我院安排了专用机房,所有计算机的内存升级到1G以上。实验课的教学和实践模块的教学实训全部安排在专用机房进行。除了建立完善的软、硬件环境之外,我院还组织专业教师按照项目教学法的要求编写了实验、实训指导教材。
为了确保项目教学法的效果,我们开发出一个简化的学生选课管理系统。作为贯穿理论和实践教学的实践项目,系统采用J2EE(Java 2 Enterprise Edition)标准技术,通过Web访问。按照软件工程的要求,我们编写、整理出开发过程的所有文档,包括用例图、用例描述文本、时序图、类图、源代码以及单元测试和系统测试的测试计划和测试用例等。由于学生熟悉选课管理系统的应用背景和业务流程,以该项目贯穿《软件测试》课程的教学过程,不仅指导、促进了理论和实践的教学,而且激发了学生的学习兴趣。转贴于
《测试理论》课程包括理论教学和实验两部分。理论教学以选课管理系统的项目开发和测试实践为主线。理论教学开始时安排两个关键的实验,指导学生对选课管理系统做出需求分析和软件设计的UML建模。学生通过这种开发实践,可分析、评估在开发模型过程中的错误,可以认识到软件测试在整个软件开发中的重要地位,从而避免对测试理论产生枯燥、反感和厌烦情绪。白盒测试、黑盒测试和系统集成测试实验都是针对选课管理系统或其中的子项目设计并执行测试用例。由于理论和实验在同一个项目中贯穿始终,理论和实验的教学自然得以统一。实践模块的教学目的是培养学生的岗位操作技能。我们安排选课管理系统作为《功能测试》和《性能测试》课程实训的测试对象,《测试管理》课程也以该软件系统作为实训项目。采用同一个软件项目贯穿理论和实践的教学,有利于学生灵活地应用理论知识分析和解决实际问题。
(四)建立校外实训基地,通过企业实习提高学生的岗位技能
学生企业实习是我院确立的BPMM(Basic Platform and Model Menu,即基础平台+模块化菜单)人才培养模式的重要组成部分。我院学生完成全部的文化基础课、专业课和校内技能训练之后,根据学生本人自愿,学校推荐,用人单位审查的原则,经三方认可后签订联合培养协议书,学生参加企业的工作实习,按照企业选定的模块或企业修正后的模块进行学习,培养岗位技能,实现人才的职业能力与企业工作岗位的“零距离”。在此期间,学生还要完成毕业设计任务。
我院先后与常州、苏州、南京、上海等地的软件园、中科院软件所、北京和佳软件技术有限公司、南京联创科技有限公司、常州富深协通软件技术有限公司、OKI冲电气(江苏)软件技术有限公司等企事业单位签订了合作办学协议,建立了学生实习基地。校外实训基地的建设为学生的企业实习提供了良好的实习环境。到目前为止,我院软件测试班2004级学生已经全部安排到软件公司实习。
教学改革的效果
充分发挥了项目教学法的优势,实现了理论和实践教学的统一选择合适的项目是实施项目教学法的关键。我们之所以选择选课管理系统是因为该项目来自学生的选课实践且具有较强的启发性,有足够的空间引导学生自主设计和运行测试用例,能够培养学生分析和解决实际问题的能力。在《测试理论》的教学中,以该项目的开发和测试过程为主线,一步步引导学生思索,探究软件开发和测试实践,在实践中理解并掌握知识。在《实践模块》的教学中,通过使用软件测试工具对该项目的软件进行测试,使学生掌握岗位操作技能。理论和实践教学在同一个项目上实现了统一,有利于学生自觉地应用理论知识解决实际问题,突出学生在教学过程中的主体地位。
强化了实践教学,调动了学生的学习积极性在课程改革以后,实验实训等实践课的课时超过了理论课的课时,理论课的教学过程也贯穿了软件开发和测试实践等内容,体现了“理论够用,实践为重”的原则。学生在学习理论的过程中,经历了软件系统从无到有的开发过程,领悟到软件测试在这个过程中的地位和作用。他们对这门课的理论和方法不再感到枯燥乏味,而是主动地思索、探究和应用这些理论和方法。三个实践模块的实训使用的是软件测试行业应用最广泛的测试工具,熟练使用这些工具可以大大增加就业的优势。学生通过认证考试之后,将获得IBM公司颁发的测试工程师证书。这些措施激发了学生的学习积极性和求知欲,使学生由“要我学”变为“我要学”。
培养了学生的岗位技能,实现了就业岗位“零距离”实行分模块教学,凸现了培养学生岗位技能的重要性。理论模块只讲解测试实践中实用的理论和方法,为实践模块提供了理论基础。而实践模块使用软件测试行业的主流测试工具,可使学生熟知的项目软件执行测试并使用测试管理软件对测试过程进行管理。这种实训是对真实软件测试工作的模拟,有利于学生全面掌握这三种测试工具的用法,也有利于培养学生的动手能力和解决实际问题的能力。到企业实训时,学生进入软件公司参加生产实习,在软件开发队伍中从事真正的软件测试工作。经过理论教学、实践教学、企业实习等一系列过程,可以帮助学生毕业之后不需要培训就能直接上岗。
深化了教学改革,为高职其他专业和课程的教学改革提供了经验通过与IBM软件学院的合作,我们在短时间内跟踪到了最先进的软件开发和软件测试技术,掌握了主流的软件测试工具的使用方法,并顺利地应用于教学实践中。成功地使用了项目教学法,在教学过程中把加强实践、培养学生的动手能力及岗位技能放在首位,取得了良好的教学效果。同学校周边的软件公司合作,建立了众多的校外实训基地,实现了学生的职业能力与企业工作岗位的“零距离”,密切加强了学校与企业的关系。这些改革措施为软件专业其他课程的教学改革提供了经验,对其他专业的教学改革也有一定的借鉴作用。
参考文献
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8332-02
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.
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)03-0670-03
1 概述
软件测试技术是高职软件技术专业的一门必修的专业核心课程。该课程是针对软件测试员/程序员岗位的任职要求所设置的具有综合性质的课程,主要任务是通过对软件测试基础理论、技术方法、流程管理和使用自动化工具实施项目测试的学习,使学生了解完整的软件测试的工作过程,能对完整的项目进行测试的实施工作,从而实现与测试技能要求的无缝对接。但是笔者通过几年的教学发现,很多同学学完这门课程后只是了解了软件测试方面的相关知识,根本就不能够综合运用这些知识进行实际项目的测试工作。笔者通过分析总结认为最主要的原因是我们教学的过程中没有采用工程的思想,使得学生不能有效地把这些知识碎片整合到一起,当然就不能谈不上实际应用能力。
CDIO模式作为近年来国际工程教育改革的最新成果,它是“做中学”和“基于项目教育和学习”的集中概括和抽象表达,它以工程项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程[1-2]。无锡商业职业技术学院软件技术专业结合自身的实际情况,对基于CDIO模式的高职软件技术人才培养方案进行了初步探索。软件测试技术作为软件技术专业的专业核心课程之一,在CDIO工程教育模式的指导下进行一系列的教学实践应用,取得了很好的效果。
2 传统教学模式存在的问题
现代IT企业需要具有较高专业技能、职业素质和团队协作能力的实用复合型人才[3],但
高职院校软件专业培养出来的人才普遍只是掌握了相关的知识,而不能有效的利用这些知识进行实践应用。为了解决这个问题,各个院校的软件技术专业都一直在尝试探索更好的人才培养方案[4],主要的专业课程也在进行各种各样的教学改革[5]。因此,几年来,“实践教学”、“案例教学”、“情景教学法”等等教学模式进行了进一步的应用,但是在这些传统的教学模式下,还是存在一些问题。软件测试技术课程也是如此,存在的问题主要有以下几个方面:
(1) 实践教学死板化。各个院校的软件技术专业在人才培养方案的制定中,都明确规定了课程的实践教学环节,体现了对实践教学的重视。以作者所在专业为例,规定专业课程的实践课时比例至少达到50%。但是在实际教学中,实践教学一般都是教师通过案例先讲解演示,学生再模仿训练,总体还是采用填鸭式的教学方式,因此造成学生一开始还表现强烈的新奇感,对课程学习充满着动力和信心,但是由于无法真正调动学生的主观能动性,随着教学的推进,学生逐渐失去学习兴趣,后面的实践训练只能是敷衍了事。并且,由于课堂教学课时的限制,实训机制死板、不健全,使得学生的真正动手机会还是很少。
(2) 项目教学虚拟化。教学过程中,案例教学法得到了普遍的应用。以软件测试技术课程为例,包括一些具有软件测试精品课程的院校,无非都是采用了比如三角形测试、NextDate案例测试、飞机票订票系统等作为教学案例,虽然使学生对相关知识和技术有了更深入地认识,但是这些项目大多都是虚拟项目,这些虚拟项目主要存在两方面的弊端:一是功能过于单一,内容陈旧,只能起到说明相关测试技术的作用,却与实际应用脱节,缺乏实战性,使得学生在真正面对一个综合项目的时候却感觉无从下手。二是由于每个项目功能单一,不能把一个完整的项目贯穿于整个课程的教学,通过这些虚拟项目,不利于培养学生形成从测试计划、测试执行、测试用例设计到测试报告的整个测试过程的工程思想,也不利于发掘学生自身的潜能。
(3) 知识内容缺乏系统化。教学过程中,授课教师只关注学生知识点的掌握,而忽略了知
识点之间的系统联系和实际应用,使得学生一知半解,不知道学习这些知识点的用处,也不知道如何把所学内容运用到实际项目当中。在这种情况下,学生的工程管理、项目规范、项目文档编制、团队协作和沟通能力没有得到有效提升,因此难以满足企业对综合素质人才的要求。
3 CDIO模式在软件测试技术课程中的应用
在CDIO模式指导下,我院软件技术专业课程体系围绕软件产品开发为主线,以每位同学都要参与几个项目开发为目的进行课程安排。在整个课程体系中,将CDIO项目按规模和范围划分为三级,一级为包含软件专业主要核心课程和能力要求的项目。我们选取了与企业合作开发的实际案例:洗衣管理系统和校外实训系统;二级为包含一组相关核心课程、能力要求的项目。主要是阶段实训和综合项目实训项目;三级为单门课程内为增强该门课程能力与理解而设的项目,其中三级项目的设立与否及形式由各门课程大纲根据需要确定。
在软件测试技术课程中,我们把CDIO模式贯穿于教学过程的每个环节,从如下几个方面对课程进行了教学改革和实践应用:
3.1 教学目标和内容
在CDIO模式下,软件测试技术的教学目标为“掌握软件测试的理论知识,掌握主流的测试技术和方法;具备测试计划的制定能力、测试用例的设计能力、测试代码及文档的编写能力;具有良好的分析问题和解决问题的能力以及沟通和团队协作能力;具备自主学习和可持续发展能力”。
在课程内容方面,我们基于CDIO的构思、设计、实现、运作的思想,贯穿“做中学”和“基于项目教育和学习”的方式,以工程项目从研发到运行的生命周期为载体,把软件测试技术课程的内容分成五个项目任务。并且在课程中,选取校外实训系统和洗衣管理系统的测试作为贯穿于整个课程的任务。在这两个项目的引领下,实施课程教学。课程的五个项目任务如下表所示:
3.2 教学组织
在CDIO模式下,为了使学生由接受者转变为主动参与者和积极探索者,在发挥教师主导作用的同时,充分发挥学生的主体作用。在教学组织方面,我们采用行动导向的教学模式,以小组模式为基础组织教学。在具体教学过程中,我们对学生进行分组,让每个学生充当企业中的真实角色,以一个职业人的身份,在真实的工作环境中,模拟软件企业工作模式,每位同学承担工作岗位相应的责任和任务[6]。课堂教学也不再采用“教师演示讲解、学生模仿练习”的模式,每一次课堂教学,教师先演示项目,提出任务需求,进行必要的知识讲解,然后教师为学生发放项目任务书,再由组长带领小组成员分析项目任务,探讨实施方案,撰写任务计划,完成项目任务,并提交相关文档。在整个任务完成过程中,授课教师不断和学生交流,对于学生在完全任务过程中存在的问题,指导学生解决。这样,不仅能够调用学生的主观能动性,引导学生思考问题,解决问题,并在解决问题的过程中研究新的实现方法,而且突破了传统的以学校和课堂为中心的封闭式教学组织形式,将实际生产与学习真正融合为一体,在掌握业务知识、培养技能的同时,培养敬业精神、团队意识和职业道德等综合素质,使师生在职业岗位中学习,在学习环境中工作。
3.3 教学手段
在教学手段应用上,充分利用现代教育技术,采取密切的产学结合方式,聘请企业兼职教师进行实践指导,并充分利用网络平台和网络教学资源。授课教师在课堂上通过多媒体教学的方式讲解重点难点问题,相关的项目任务探讨和知识扩展通过网络化平台进行。对于网络化平台,我们主要采用两种方式:一是建立课程QQ群,为学生提供一个资料共享和课程讨论和交流的平台,二是要求学生访问中国测试网,通过论坛和专业测试人员和其他测试学习者进行沟通交流。在网络教学资源方面,要求每一位同学使用高等职业教育软件教学资源库网站,访问网站的课程资源和培训资源,其中软件测试的课程资源包括:学习指南、授课录像、实训指导、课程案例、参考和素材资源等方面。通过这样的方式,能够解决课堂教学课时的限制,使得课程的教学从课堂延伸到课后,对学生可持续学习的能力具有很大的促进作用。此外,利用与江苏微软技术中心的合作优势,邀请他们在期末来校进行项目实训指导。
3.4 考核方式
根据CDIO培养大纲,将学生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面[7],再使用传统的考核方式已经不能满足要求。软件测试技术课程打破了单一的考核方式,从学生的专业能力、社会能力培养的要求出发,建立基于教学全过程、以学生能力提升为导向的学习评价体系。具体包括过程性考核、综合素质评价和终结性考核。其中过程性考核占30%,综合素质评价占20%,终结性考核占50% 。
过程性考核:对学生完成实践类项目的情况进行综合评定,考查项目包括课堂学习、小组学习、创新能力、课堂实践和实践报告等方面,每一个项目的考核都制定严格的评分标准。
综合素质评价:对学生在平时学习和实践中表现出来的职业素养进行综合评定,主要包括团队协作能力、沟通交流能力、分析和解决问题的能力、自学能力、工作态度等方面,并对这些方面制定出严格的评分标准。
终结性考核:建立试题库,实施考教分,在期末对学生进行包括笔试和上机考试的综合测试。其中笔试考查学生软件测试的基础理论知识以及对测试理论的应用能力,该部分占终结性考核的60%;上机考试通过对实际测试项目的工作过程进行检查和考核,对任务完成情况进行考核,还包括对测试工具运用的考核,该部分占终结性考核的40%。
4 结束语
通过在CDIO模式指导下进行软件测试技术课程的教学,解决了传统教学模式存在的主要问题,为达到学生的知识能力与测试技能要求之间的无缝对接奠定了良好的基础。下一步的工作是进一步完善CDIO模式在软件测试技术课程中的应用,并把这些经验总结应用到软件专业其它课程的教学过程当中。
参考文献:
[1] 顾配华.以设计为导向的EIP-CDIO创新型工程人才培养模式[J].中国高等教育,2009(3).
[2] 查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008(3).
[3] 单光磊,韦良福.高职教育教学改革借鉴CDIO模式解析[J].山东水利职业学院院刊,2011(1).
[4] 唐宝燕,冯娜.CDIO模式在高职软件技术专业教学改革中的应用[J].电脑知识与技术,2012(2).
0 引言
《软件测试技术》是软件工程本科专业的一门实践性很强的课程,适合采用讲练结合的方式开展相关教学,即让学生多上机操作,逐渐提高软件测试用例设计、开发能力以及软件测试的整体管理能力。然而在实际实践教学过程中,教师普遍感觉有不少不尽人意的地方,主要表现在理论与应用脱节,所学知识与社会需求差距较大,学生积极性不高等。
1 软件测试行业现状和学生认知水平
媒体报道,国内开发人员与测试人员的比例是8∶1,而国际公认的行业标准实际上是1∶1,这一点上国内测试行业与国外的差距比较大。随着软件行业的蓬勃发展,用户对软件的质量要求越来越高,导致软件开发企业软件测试的工作量也越来越大,因此自动化软件测试已经成为项目测试的一大趋势[3]。并受到原来越多的重视。
软件测试课程一般到大三才开设,而大学高年级学生往往偏重于对技术的学习,因为技术往往是可以现学现用的,对于理论性较强的软件工程知识反而不太感兴趣了。实际教学过程中关于软件测试流程、团队等工程化内容的描述往往让学生觉得比较抽象且教条化,然而这些工程化知识又是学生毕业后适应当下的软件行业需求所必要掌握的。
2 现有软件测试课程体系存在的问题
现有软件测试技术课程重点讲授的是理论基础知识,含离散数学、图论和测试基础知识以及测试用例,开发各阶段的具体应用往往被忽视,使用自动化测试工具方面的内容尤其缺乏。高校对实践课程的重视程度普遍不够,软件测试实践课开展不足且不规范。教师大量精力放在讲授测试用例设计方法上,实践中的使用这些测试用例却较少。实验案例通常有NextDate问题、三角形问题等,都是一些课本上常见的,设计也较单一,缺乏真实性,难以提升学生的技能,学生往往觉得枯燥乏味。毕业后学生普遍反映,软件测试工程理论知识教的很全,但就是不知道怎样灵活应用;相反,在企业经过一段时间的测试工作实践后发现,工作中真正需要的知识并未掌握。
目前,相关配套的软件测试实验教材比较缺乏,实验内容基本是由任课教师自行设计。这对于教学经验丰富的教师问题不是很大,但对于没有实际项目开发经验作为支撑的年轻教师,就无法把握如何采用恰当的用例来验证相关理论知识,也难以设计出实用的实验内容,学非所用,导致学生无法掌握今后实际工作所需的基本技能。即使是教学经验丰富的教师也大多缺乏实战,尽管能很好的教授理论知识,但由于缺乏合适的实践教材,加上实验条件等各种因素制约,也难以的对学生进行系统全面的实践培训,导致高校重理论轻实践成为普遍现象。因此,软件测试课程的教学顺应社会需求显得格外迫切,必须面向企业,了解岗位要求,而不是“闭门造车”。让学生能学到适合企业所需的技能,毕业后可以以一个“经验者”的身份进入人才市场。
3 《软件测试技术》实践课程体系研究
3.1 课程构建原则
高校应以软件测试所需的知识、技能为先导构建相应的课程体系,充分调研软件测试工作的具体内涵,仔细研究对应的知识、技能以及素质要求,课程内容也应强调当前以及未来就业所需掌握的基本知识、技能,体现知识、技能和素质三者的结合[6]。
根据该专业人才培养的定位以及行业内需求,在建设具有特色的软件测试课程时建立实验、实训和实习等不同层次的实践课,通过多项目的练习,提高学生专业技能及分析、解决问题的能力。
3.2 实践课程教学探究
在软件测试技术实践课程环节,引入具有企业背景项目的实训。通过这些真实测试案例的引入,结合人才市场的需求,充分体现出工学结合的特点。通过对实际项目的操作,使用相关测试工具,完成对各目标的测试,提升学生的测试能力同时积累相关工作经验。
我们可以在教学过程中引入一个贯穿整个教学过程的具体测试案例的教学法。首先,组织学生进行随机分组,每个小组5~6个人,给每个组起一个名称。要求每个小组在课程实施前完成同一个模拟软件“小区物业管理系统”的开发。模拟软件开发完成后,由各个小组交叉测试其它小组开发的软件。在测试课程中,要求学生对软件系统进行单元测试、功能测试、集成测试和系统测试,找出问题并解决问题。
该教学方法主要有以下明显的优点:
1)软件测试前期的课程有《基于Web的Java开发设计》,同步开设的课程有《J2EE企业级应用开发》,所以在实践环节我们选择“小区物业管理系统”作为测试对象,能让学生快速具备软件开发的能力,以及掌握软件系统测试所需的技术。
2)每个人都喜欢挑别人的错误,相互测试对方所开发的系统,可以形成竞赛,有利于发现问题,能发挥学生的积极性,提高效率。同时也便于组织课堂讨论以及对各小组实践结果的评价。
3)学生通过一整套测试课程的参与,能够了解一个具体项目的完整测试过程是个什么样子,真实展现了实际工作中软件测试的方法和要求。
但由于学时和学生能力的制约,在本实验课程中,主要针对还只是初、中级测试人员,主要是为了帮助毕业生在踏上岗位后可以顺利从事不太复杂的测试工作打下坚实的基础。对于高级别测试以及测试管理之类的工作,比如制定测试计划、各种设计的论证、测试结果的评估和总结,恐怕还需要经相当长时间的实战,累积足够的经验才能胜任。这些工作经历,仍然不是课堂所能提供的,我们的目标就要是培养出具备从事这项工作潜能的新手。有关这方面的内容,我们也只能够在理论教学中予以概述,不在实践课中安排具体实验。
为了适应实践课程需要,我们设计了8项实验内容,该设计旨在让学员通过实训,将来以一个“经验者”的身份进入人才市场。该项目模拟“企业项目管理者”培养“新人”的模式来安排实验进度和内容。虽然现实中软件测试是始终贯穿于软件生命周期中的,但对于未参加过工作的大学生来说,从培养人才的角度出发,模拟“企业项目管理者”通常还是按如下流程培养人才:单纯性测试的实施、测试环境建立、测试设计等等,按照单元测试集成测试系统测试的顺序逐步深入实践,并在提供的测试案例中人为的加入一些缺陷,以便学员在测试时去发现、分析、修改这些缺陷[7]。因此,我们专门设计了表1所示的实验内容。
通过以上8个实验内容的实践,可以让学员掌握单元测试以及集成测试的具体实现方法,熟悉各种测试工具的运用,了解系统测试的实施。经过这些实际训练,学生将来以初级测试工程师的身份投入到测试工作中。
4 总结分析
实践证明,软件测试技术实践课程体系研究针对软件测试行业及人才的特点要求,把行业、企业对人才的要求转化为教学中的具体目标。从知识、能力、素质多方面全方位提升学生的就业竞争力,设置合适的实践教学内容和方法,一定程度上改变了教师的教学状态和学生的学习状态,达到了预期目标。
参考文献
[1]2007首届中国软件测试从业人员调查报告[DB/0L],2007
[2] 钟素芬, 叶明芷. 软件测试应用性人才培养模式的探索与实践[J]. 北京联合大学学报(自然科学版),2007(9).
[3] 钟元生. 软件测试实践教学特色的构建实践[J]. 电化教育研究,2006(10):62-65.
[4] 胡宏银. 软件测试课程教学方法探讨与实践[J]. 计算机教育,2007(6):11-12.
DOIDOI:10.11907/rjdk.162329
中图分类号: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];传统的线下面授,则重点解决学生的疑难困惑问题,提高教学效率。
随着软件产业的发展,软件测试被越来越多的软件企业重视,很多软件企业还设立了专门的软件测试部门,对软件测试人员的需求量非常大,而真正能符合软件测试的人员却很短缺。所以,软件测试技术作为高职软件技术专业的一门专业课程,教学模式的改革势在必行。传统的软件测试课程以测试的理论知识为主,忽视了软件企业中真实测试岗位的要求,造成课堂教学与测试岗位需求的不一致。本课程以企业软件测试工程师作为主讲教师,将企业中实际测试项目作为教学项目,为学生提供个尽量真实的软件测试环境,让学生真正参与到测试中来。通过学习该课程,让学生了解软件测试的基本过程,掌握单元测试、功能测试、系统测试的一般步骤和方法,并能够进行相应测试。
1 测试项目的选择
在基于项目的课程设计中,测试项目设计是一个关键环节。本课程确定以项目作为载体的设计思路后,选取企业中实际测试的项目作为教学项目,这样的项目既有在企业中应用的普遍性和典型性,又能有效地促进学生职业能力发展,达到本课程的教学目标。在本课程中选择“能力验证样品软件”作为测试项目。
2 测试项目的实施
2.1 测试环境的搭建
在软件测试企业中,测试人员作为软件项目开发的一分子,为了及时、有效的与程序设计人员进行沟通,通常应用BugFree来实现缺陷管理。BugFree是基于PHP和MySQL开发,免费、开源的缺陷管理系统,通过该软件能很好的协调开发人员、测试人员和需求三方的关系,规范软件的研发流程。
2.2 测试小组的确定
在项目测试过程中,以教师引导、学生自愿为原则,每五人组成一个小组,每个小组的总体能力、水平相当,并保证每个小组至少有一名组织能力较强的学生作为组长,负责协调教师与学生、小组成员之间以及小组之间的关系等工作。测试组成员一起讨论本组的测试计划,根据软件的需求规格说明书,制定详尽的测试计划,一起搭建测试环境,同时测试组长对测试小组成员的工作进行分工,测试组长负责本组测试的全面工作,并且严格地按照测试计划执行。
2.3 测试的执行
(1)测试项目引入。在测试开始前,教师演示预测试项目,并对照“需求规格说明书”,明确此次测试的任务:完成对系统的功能测试,并通过BugFree来实现测试用例的管理和缺陷的管理。任务实施前,教师先演示一个缺陷的查找过程,让学生看到真实的“缺陷”,从而产生跃跃欲试的感觉。然后让学生在没有掌握查找缺陷的方法情况下,用自己的常识进行缺陷的查找。
(2)黑盒测试知识的导出。黑盒测试的两个关键技术:等价类类划分法和边界值分析法。等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。边界值分析法通常是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
(3)在理论知识的指导下进行缺陷查找。在黑盒测试理论的指导下,科学、有效的进行测试用例的设计。为便于学生的学习讨论和测试用例设计,课程教学直接在有职业氛围的软件技术实训室进行。
(4)考核标准和考核方法。该课程的考核重点放在了对学生学习过程的考核上。每个任务都有明确的考核标准。待学生完成任务后,教师对学生完成的任务成果进行点评,并对任务的完成情况进行总结。作为该部分教学,会让每组同学展示其缺陷列表,通过查找到的缺陷的数量和级别作为评判标准,同时结合平时表现,综合给出项目任务的成绩。最终的考核评价成绩由4个部分组成:平时表现10%,每次完成项目任务的情况25%,课程实训25%,综合技能考核40%。
3 项目教学的效果
3.1 采用项目教学法,提供学生专业技能
项目教学是指学生在教师的指导下完成一个典型项目的过程,在项目完成过程中学习知识和技能。学生通过解决在项目中遇到的问题,提高了学习兴趣,调动了学习的积极性和主动性。项目教学注重的是完成项目的过程,而不是最终结果。
3.2 采用分组教学法,提高学生团队意识
在教学过程中,我们把班级同学分成若干个项目组,每个同学在小组中担任不同的角色。
3.3 采用企业管理模式,促进学生零距离就业
通过校企合作,将企业的运行模式引入到课堂中来。请企业里有经验的软件测试工程师作为主讲教师,将企业里有代表性的真实项目作为测试项目,并搭建企业中的测试环境,让学生尽可能多的融入到真实的测试环境中,从而促进学生零距离就业。
[参考文献]
中图分类号:G642 文献标识码:B
文章编号:1672-5913(2007)18-0028-02
1引言
软件测试作为软件产业的重要门类发展迅速,其专业岗位迅速扩大、人才需求旺盛、职业价值日益提升。然而,由于行业内的软件测试人才严重短缺,企业对软件测试人才有大量需求但苦于招不到合适的人;另一方面,很多高职应届软件专业毕业生因为没有软件测试经验而被拒之门外。产生这种矛盾的原因是,对于众多的高职院校来说,软件测试教学处于起步阶段,经验和积累不足,尤其是高职的软件测试课程和教学特点尚未形成,需加以改进完善。
2市场需求和现状分析
随着IT技术应用的发展,国内软件行业对软件测试工程师的需求将超过20万人。[1]
我国大学本科课程中普遍不设专门的软件测试课程,软件测试仅作为软件工程课中的一个章节被提到,学生在认识上多为重开发、轻测试,毕业后直接进入测试行业的为数不多。
高职院校软件专业一般在第三学年单独开设一门软件测试课程,限于学时,总体来说,学生通过课程的学习,能掌握软件测试的基本概念和基本理论、基本测试技术和方法,但真正运用软件测试技术分析和解决实际岗位的能力还不够[2]。我国50人以下的软件企业占了70%以上,一般都没有建立软件测试部门[3],这部分的中小企业希望具有工作经历的软件测试员直接上手开展工作。
社会培训机构比较重视市场经济,他们一般开设约210学时的课程,学员来自尚未找到工作的往届毕业生和应届生,主讲教师曾在电信、证券、金融领域担任过软件测试项目负责人,课程结束后承诺推荐就业,中小企业也愿意接受这批学生中的优秀者。但培训价格不菲,而且培训机构众多,质量也难免良莠不齐。
3存在问题和应对措施
高职“软件测试技术”课程面临的主要问题分析如下。
3.1教材建设
国内面向高职的软件测试教材不多,近来出版的几本教材对软件测试所涉及的基本概念、基本工作过程的理论知识和应用知识阐述虽然很系统详尽,但还是存在共同的问题:
1) 缺少大型集中项目功能测试、性能测试实例的全过程,即没能把比较分散的知识点和技能点进行综合分析。
2) 重技术实现、轻文档工作,建议增加如何编写“测试计划”和“测试报告”,给出测试记录、测试日志的模板。同时,可列出软件测试行业中长期积累的经验,例如软件测试的10大原则、10大最佳实践等,这些内容很实用,学生走上工作岗位就马上能用到。
3) 教材中的“测试工具使用”流于产品使用说明书,难以引起学习兴趣,要站在学生学习和认知的立场上来考虑,花时间写实训指导,使学生在最短时间内对这一专项技能掌握和熟练。
4) 测试工具要采用中小IT企业流行的软件,例如功能测试采用Mercury QuickTest Professional (QTP) ,性能测试采用Mercury LoadRunner,测试管理工具可用开源的并行版本控制工具CVS,采用Test Director或同类新版Quality Center (QC) 。要注意防止两个极端:一是避免教市场已经不使用的测试工具;二是避免教价格昂贵的软件,如IBM Rational的ClearCase、ClearQuest、Functional Tester、Performance Tester,尽管功能优越,但市场占有率低,只有软件成熟度能力CMM高的大型IT企业才会使用。
3.2师资队伍建设
1) 高职在软件测试教学的过程中,常采用案例教学与实际项目嵌入到课程教学和设计中,这种指导实际动手能力的经验和技艺性知识比重偏高,它是通过不断的积累和创新,主要蕴藏在个体头脑中的隐性知识。因此,提升教师自身的这种隐性知识显然比充实书本上的显性知识更为重要。
2) 促进教师隐性知识的先行化,实现教师的终身的专业成长。在教师教育和课程发展中,要特别重视教师的专业反省能力和教师专业经验、系统化的教育理论和方法,而且要求教师探索和学习处于隐性状态的专业知识。
由封闭型向开放型转变。在知识更新速度不断加快的今天,教师应深入软件企业第一线,了解行业发展的动态,将最新的技术、观念等带进课堂,使学生得到的知识与社会同步。教师的个体知识应该不断充实和提升,成为一种开放的、动态的知识,即知识自我调节、自我管理。教师到企业挂职顶岗、或参与IT企业科研项目、或取得行业资格证书,不失为隐性知识的先行化的有效途径。
3) 来自IT企业的软件测试工程师具有丰富的项目实战经验,是软件测试知识应用和创新最宝贵的资源,有条件的可邀请来校兼职授课。同时必须采取协同学习的有效措施充分挖掘其研究成果。协同学习是对现有学习技术系统框架的突破:在信息、知识、行动之间建立有机的、协同发展的联系;在交互层面,提供内容与学习者的深度互动;在通信结构层面,提供信息聚合机制;在信息加工层面构建群体学习机制。简而言之,归纳为“深度互动,信息汇聚,集体思维,合作建构,多场协调”[4],形成知识共享。
3.3教学方法的改进
课程应基于建立一个内容充实的职业技能实训体系,采用全新的“场景教学法”,以真实工作场景为核心,利用项目导向的角色模拟方式,提倡“以用为本、学以致用”的教学方法:以工程经验为指导,采用任务驱动法,强化实战技能,辅以实际企业测试项目,使用角色模拟的方式。
1) 工作场景。针对企业实际工作流程和工作场景,结合已经实际投入使用的软件项目的测试资料和软件代码,进行项目分析和任务分解,重现在企业中进行软件测试工作的任务环境。
2) 项目主导。所有知识点和技能都是通过一个或者几个项目来组织的,学生通过可扩展的项目案例来逐步学习知识和技能;所有的实践都是项目中的一个实际任务,熟悉项目测试过程中常见的技术、流程、人员协作问题,并掌握相关的解决方法。学生通过实践可具备完成一种任务的能力。
3) 角色模拟。学生在实际动手操作的课程和项目实训过程中,使用真实的企业项目,真实的企业工作流程和工具,模拟项目组中各种角色,协同完成项目和任务,体验和掌握各种角色的工作技能和工作经验。
4) 任务分解。在为完成整个项目而必须掌握的概念和知识环节的讲解上,将整个项目划分为多个子任务,再分析每个子任务需要的知识、技能、素质要求,并通过完成子任务的形式来组织学习内容、设计课程体系。
5) 六步教学。知识和技能的传授和自学都是从具体到抽象、从特殊到一般,按照以下6个步骤来组织的:提出问题、分析问题、解决问题、总结出一般规律和知识/技能、扩展知识/技能、解决更高级的类似问题。
6) 团队协作。在授课过程中,学生将被划分为几个团队,每个团队将根据课程内容和讲师的安排,通过技术研讨、实际操作等手段,合作完成一个任务和项目。
7) 动手能力。为了使学生的知识面和思路有所扩展,鼓励学生自己动手,通过实际操作课程中的实验和进行项目演练,培养学生举一反三的能力,从而帮助学生掌握重点技术的应用,为日后完成更大的项目积累经验。
4结束语
随着计算机技术发展,对软件功能提出的要求也越来越高,如何开发出高质量的软件已成为一个迫切需要解决的课题,因此软件测试的地位也得到了应有的重视,这是一个非常有利于提升个人职业发展空间的岗位,因为它刚刚处于起步发展阶段,对人才的需求量大,非常适合缺少工作经验的高职软件专业应届毕业生。因此,上好软件测试课程,制定与相应测试职业“接轨”的教材和教学方法,使学生能系统学习测试知识和掌握测试技能,落实“以就业为导向”的办学方向与策略,应该成为今天高职软件技术专业的选择。
参考文献
[1] 沈海娟. 高职软件测试课程构建设想[J].计算机教育,2006,(4).
[2] 杨鹏. 高职软件测试课程的教学探索与实践[J] . 番禺职业技术学院学报,2005,(4).
关键词:
软件测试;应用型人才;案例式教学;教学产业化
随着我国IT行业的发展,越来越多的企业意识到软件测试的重要性,因此软件测试人员成为当前IT业界亟需的热门人才。面对软件测试人员紧迫的需求形势,应用型人才培养单位应该扩大软件测试人员的人才培养规模,提高培养质量。
一、《软件测试》课程教育现状
我国软件测试技术发展已有十余年,但IT市场对于测试人员仍然呈现出供不应求的势态。目前国内高校对软件工程专业几乎都会开设软件测试课程,甚至有些高校已经设置有软件测试专业。2011年11月,教育部主办了“2011年高等学校软件测试课程教学论坛”,对测试人才的培养及测试领域的全面发展起到了积极地推动作用[1]。高校系统化的专业教育体系为学生奠定了扎实而科学的学科基础,并对软件测试技术的理论化和系统化发展起到了不可替代的作用。利弊相依,传统的人才培养模式对软件测试课程设置和培养方案上还是会存在以下不足。
1.重理论轻实践在传统的软件测试课程设置中,大多采用教师在课堂上讲授理论知识,学生上机时完成实验操作的教学方式。实验的目的只是为了检查学生知识点的理解和掌握,实验题目大多比较陈旧,不能与时俱进地与当前的最新技术或最热门的应用相结合,使得学生的测试知识体系过于单薄。
2.重学生个体知识积累,轻团队协作能力培养团队协作在软件工程中的重要性无须多述。软件测试作为软件工程中重要一个环节,贯穿于整个软件生命周期,测试人员与系统分析员、软件设计师、程序员、维护人员之间的沟通必不可少,良好的团队协作才能有助于项目的进行,有助于高效、正确地开发出高质量的软件产品。传统的教学模式中,很少引入分组协作的环节去锻炼学生的沟通和交流能力,更不能设计出测试人员和开发人员的沟通场景,不能满足学生在项目中去加深理解、巩固提高的需求。
3.重即有知识,轻科学创新一直以来,软件测试课程在高校的课程体系中受到重视并不多,课程结束后并没有延续测试知识的后续课程。因此,学生不能在后面的学习和实践中进行总结提升。知识在母体中是要经过消化、适应、转化、演进、创新、融合、活化,而后才称为组织的“行动知识”,现有的教学模式不能很好的产生知识发酵效果。
二、《软件测试》课程特点和培养目标
软件测试是一门应用型较强的学科,应注重理论联系实践。一个合格的软件评测师除了要掌握即有的测试理论和软件知识外,还必须具备对软件测试行业的深刻理解,必须具备对计算机专业知识,包括编程技能、数据库、网络、中间件等知识的系统掌握,必须具备沟通能力、团队协作精神。软件测试是为了尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件交给用户,这并不是一项简单的工作。要做好软件测试,测试人员不仅需要站在客户的角度思考问题,真正理解客户的需求,具备良好的分析能力和创造性思维能力,完成功能测试和界面测试,而且要能理解软件系统的实现原理和各种使用场景,具备扎实的技术功底,能使用测试工具完成相应的性能测试、安全性测试、兼容性测试和可靠性测试等更具挑战性的任务[2]。从这个角度看,一个优秀的测试工程师需要掌握更多的知识和技能。
三、《软件测试》课程教学改革方案
以上可以看出,当前高校对于测试课程的不重视,以及当前的软硬件设施及教学方法都不能满足对应用型测试技术人才的培养要求。为了适应软件产业发展对测试人才的迫切需要,实现软件人才培养的持续性发展,针对软件测试课程调整培养方案,展开深入的教学改革和实践活动十分迫切和必要。
1.加大师资力量,构建完善的软硬件测试平台教师素养的提高是软件测试教学改革得以顺利开展的前提。此前,国内对软件测试并不重视,致使国内软件测试人才短缺,大部分高校内虽然有计算机系,但多以重开发轻测试,测试教师的专业素质和数量都远远不够。因此,不仅要重视对教师测试专业技术的培训,提供更多的学习机会,也应该认真开展软件测试教学研究,构造专业的软件测试教学团队。作为一门实践性较高的课程,软件测试必须建议专门的、完备的实验教学体系和环境。目前,高校普遍缺乏软件测试的软、硬件环境,致使学生无法通过项目实践来深入理解和提高测试相关知识和技能。
2.运用案例教学,丰富软件测试项目实战案例在教学活动中,学生总是对最新、最流行的项目和案例感兴趣,陈旧的案例既不能满足当前市场上对测试人才的技术需求,又不能很好的激起学生的兴趣。运用案例教学最重要的环节就是丰富案例素材,保持案例的“鲜活性”与“生命力”。高校可以采用历年本科毕业设计中运用了流行的技术、难度适中、功能较为完整的应用作为软件测试课程的测试案例,不但可以保证素材的延续性,也使得学生毕业设计完成的质量有所提高。
3.加强校企合作,走教学产业化发展之路[3]企业需要人才,高校为企业输送人才,校园中学习的技能最终要接收用人单位的考验。所以与软件企业合作,建立对口的学生实训基地,是应用型人才培养的重要途径。软件测试技术的掌握与提高离不开项目实战,让学生在真正的软件工程过程中从事测试工作,不仅能使学生深刻体会到软件测试在整个项目中的作用,掌握测试方法和技巧,对于学生的沟通交流能力、团队协作能力都有积极的促进作用。
四、小结
软件测试是保障软件质量,验证软件可靠性的重要环节,其重要性不言而喻。重视软件测试应从企业用人的实际需求出发,高校应加强面向企业需求的软件测试改革,切实培养学生的动手操作能力,使学生掌握最新的测试方法和技巧,让企业需求促进和推动高校教学发展。
参考文献:
[1]李静赵志升.软件测试专业课程体系建设和教学改革[J].教育与职业,2014(1):136-137.
中图分类号:G64文献标识码:A文章编号:1009-3044(2012)14-3353-02
Course System Research of Software Testing Technology Based on Demand of Talent Market
ZHENG Hao, LIU Jian-fang
(Pingdingshan University, Pingdingshan 467000, China)
Abstract: This paper analyze the actual needs of talent market at first, and then set up the Curriculum system based on the software testing theory and technology. Paying more attention on the application, we want to construct course system to meet the market, which has deep foundation and strong skills. All of these promote the quality of the professional course.
Key words: Market requirement; software testing; Curriculum system
最近的年度软件测试行业专项调查报告显示,社会对软件测试人才的需求越来越大,可人才市场提供的人力资源、实际能力却不能满足这种需求。目前国内对测试人才职业化培养体系还不够充分,现行的传统教育体制重学历教育,轻职业技能培训,导致了软件测试人才告急。如何结合人才市场的实际需求,构建适合的课程培养体系,成为软件测试课程改革迫在眉睫的问题。
1中国软件测试行业的市场需求分析
在我国,软件产业的兴起和发展也就是这短短十几年。在前面的兴起和发展壮大阶段,一般的软件公司都是重开发轻测试,甚至存在把测试工作都放在用户那里去做的错误思想;追求眼前功能的实现,开发软件追求“短”、“平”、“快”。不太考虑性能和功能的优化。软件测试以往一直被中小IT企业所忽视,只有一些知名企业才有专门的软件测试人员。
现在,更多的国内企业认识到测试的重要性,但是由于国内测试人才的储备相对较少,据国家权威部门统计,中国软件人才缺口超过100万人,其中很大一部分为软件测试人才,缺口达到30~40万。但由于软件测试的重要性是近几年才被充分认识到的,高校教育和企业培养都还没有跟上,致使软件测试需求严重供不应求。
分析年度软件测试行业专项调查报告,目前对测试人员的素质和要求逐步提高,测试人员不仅应掌握相关计算机知识背景、软件工程基本知识、熟悉项目编程语言、熟悉项目技术架构及需求内容,而且要求工作有责任感、独立分析能力及团队精神等方面。其中“动手能力”和“实际经验”是软件企业在招聘软件测试人员时最为看重的,而这也恰恰是很多求职者的“软肋”。
2现有软件测试课程体系存在的问题
2007年,我校软件学院认证管理中心被授予计算机软件测试人才培养基地。软件学院软件工程专业以及软件技术专业均开设有软件测试相关课程。由于软件测试是一门实践性很强的课程,应采用精讲多练的原则开展教学,即学生通过大量的上机实践,循序渐进地提高自身的软件测试用例设计、开发、执行能力以及软件测试的管理能力。但在具体实践教学组织中,教师普遍感觉有许多不如意的地方,具体存在的问题有:
1)对实践课程的认识程度和重视程度不够,软件测试开展的不够彻底,测试过程中存在大量的不规范性;
2)缺乏合适的教材,同时教师缺乏相应的实战经验,导致教学上知识结构不合理,教学内容与具体应用脱节,尽管教师都能很好的讲解软件测试理论知识,但却由于缺乏合适的测试案例,没有将理论教学内容和最新相关技术结合,使得学生思维局限性大,并没有真正提高学生自主思考的能力和创造性思维。
3)教学方法和手段因循守旧,学生对软件测试职业存在一些片面的,甚至是错误的理解。
3基于人才市场需求的《软件测试技术》课程体系研究
基于人才市场需求的软件测试技术课程体系研究主要是分析目前人才市场对软件测试行业人才的岗位需求,掌握软件测试人才需要具备的职业素质,同时调查研究在学生对前续课程的掌握情况,以及目前所具备的相关职业素养的程度,计划从技术、沟通协调能力、经验和技能、综合素质能力等方面分别对岗位需求和学生水平展开调研。
3.1课程体系目标定位
我校软件工程专业的培养目标是培养适应社会发展需求,具有扎实的计算机知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的软件实践能力和创新精神,具备较强的软件项目的分析、设计、开发和维护能力,能够按照工程化的原则和方法从事软件开发和管理的应用型人才。
作为该专业的一门专业必修课,为构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系。将以软件技术为基础,测试理论与技术为核心,进行课程体系设置。理论教学目的是让学生深刻理解软件测试思想和基本理论;熟悉多种软件的测试方法、相关技术和系统地软件测试过程;会熟练编写测试计划,测试用例,测试报告,并熟悉几种自动化测试工具,从而从工程化角度提高和培养学生从事大型软件的测试技术和能力。
同时在实践环节,要求学生通过实验学习,培养与提高项目测试过程中采用的主要技术、设计测试用例、编写测试总结报告等能力,激发学生创新精神和创新能力,具体应达到下列基本要求。1)使学生掌握分析问题和解决问题的技巧,通过具体实验使学生掌握常用的黑盒测试技术、白盒测试技术、自动化测试工具。2)让学生了解测试流程,掌握测试总结报告的编写。通过实验使学生理解软件缺陷的描述,并能结合项目设计出较完善的测试用例。
3)了解Web系统的测试范围,使学生能在应用场景下联系实际和所学知识分析和解决问题,缩短理论和实践的距离。
3.2课程教学内容选取
结合课程体系目标定位,该课程在教学内容选取上主要是基于人才市场需求,厚基础、强技能、注重技术应用。总学时共72学时,其中理论和实践各36学时。结合课堂教学和实践教学,软件测试技术课程包括以下几部分:
1)软件测试基本理论及方法:包括软件测试的概念、测试的原则、用例的设计、各种测试方法及技巧,测试策略。同时通过实验掌握软件测试的步骤、方法及常见问题的处理。
2)测试流程及文档写作:软件测试流程、各阶段的文档编写;书写测试计、测试用例、测试报告、产品安装手册、产品使用手册。在实践环节,通过SATM系统让学生掌握软件测试流程各个阶段的相关技术、测试相关文档的写作技巧。
3)系统学习软件测试的各种工具,包括:自动测试工具WinRunner;压力测试工具LoadRunner;测试管理工具Testdirector;流程管理工具CVS;JAVA单元测试工具Junit。要求学生掌握自动化测试理论与方法,熟练使用常见测试工具。
4)软件过程控制与质量保证:软件质量的概念及软件质量管理的基本方法;测试项目的范围管理、人员组织结构、理解测试的配置管理、风险管理、成本管理等。
5)项目实训:引入具有真实企业背景的软件测试案例,充分考虑人才市场的需求,突出强调工学结合的重要性。通过实际项目掌握实际工作中开发和测试的流程,使用相关工具,完成各种测试目标,实现软件测试实践环节单项专业知识与整体技能综合运用的目标,提高测试能力和积累相关经验。
3.3课程教学方法设计
为构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系,在教学过程中,需要把技能训练和职业素质培养有机结合起来,注重学生综合能力的培养与提高,突出强调职业岗位针对性。提高学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力。在教学方法设计上做了一下改进:
1)突出工学结合:在讲解基本理论知识的基础上,引入具有真实背景的软件测试案例,并结合理论知识讲解将案例进行改造,使案例的分析应用与理论知识相呼应。目前市场上IT公司在招聘测试人员时按照所需技能的不同,将测试人员分为三个等级,分别为初级测试工程师、中级测试工程师和高级测试工程师。分析不同等级的要求,在教学过程中,主要针对初级和中级的技能要求循序渐近的展开教学。使通过此教学改进,既弥补了教师缺乏实战经验带来的不足,也使学生能较真实的接触到实际应用,从一定程度上实现了人才培养与市场需求的接轨。
2)强调团队合作:在教学过程中实施“1-7”模式,即在实验课教学中,采用团队合作的方式,分组完成各项任务。在实验初期由教师合理分配各团队成员间的任务,培养学生的基本岗位技能。经过两个实验任务的完成,每个团队挑出一名同学为项目组长,模拟公司招聘的形式,招聘4~6个组员组建自己的团队。后期实验任务的分工由团队组长负责项目进展、分工协作、制定测试计划等工作,其他小组成员则按要求完成自己的工作,如编写测试策略、设计测试用例、撰写测试报告等,教师主要起引导作用,充分发挥以学生为主体。为了全面培养学生,在不同的任务中,组员通过角色互换,充分发挥其沟通能力及综合技术能力。在学期末,通过团队评比,以提高平时成绩的形式对表现优秀的团队进行奖励。通过此教学手段,可以培养加强学生面试技巧、沟通能力、团队意识、竞争意识等职业素质的培养。
4结束语
基于人才市场需求的《软件测试技术》课程体系研究定位在对人才市场的实际需求分析之上,针对软件测试人才的特点要求,把行业、企业对人才的要求转化为教学中的具体目标。构建厚基础、强技能、注重技术应用的适合应用性人才培养的课程体系。
参考文献:
[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2010.
[2]古乐.软件测试案例与实践教程[M].北京:清华大学出版社,2007.
[3]马民生,马友忠,任刚.以就业为导向的软件测试实践课课程改革[J].电脑知识与技术,2010(4):241-242.