发布时间:2022-11-26 01:36:19
序言:写作是分享个人见解和探索未知领域的桥梁,我们为您精选了8篇的软件测试课程总结样本,期待这些样本能够为您提供丰富的参考和启发,请尽情阅读。
关键词:软件测试;能力培养;教学理念;培养模式;探索实践
中图分类号:TP311 文献标识码:A DoI: 10.3969/j.issn.1003-6970.2012.03.009
Explore and Practice of Training the Ability for Software Test Talent
CaI Jian-ping
(School of Software Engineering Beijing University of Technology, Beijing 100101, China)
【Abstract】According to the requirements of Ministry of Education for training software talents, Aim at the software engineering features, and as a breakthrough for shortage of talent on software test, the paper analysis the employing demand of IT enterprises, study the training target of software testing talents and the training demand on the ability, explore a good method of the ability training for software test talents. Based on this, we actively undertake many practice activities about the ability training for software test talents, for example, concise the teaching philosophy of training software testing talent, build the new pattern of training the ability for software test talents, constitute a general outline for software test course, write corresponding book, establish laboratory, etc.
【Key words】software testing; ability training; Teaching Philosophy; Training Pattern; Explore and Practice
0 引 言
软件测试是软件工程的一个重要分支,是软件质量保证的重要基础。现代软件测试与传统的软件测试不一样,它是贯穿软件工程整个生命周期(从需求分析、软件设计、代码开发,一直到最后测试、验收和维护),涉及各种软件开发技术、应用技术以及测试技术,覆盖软件各种应用领域(如桌面软件、网络应用、信息系统、电子服务、嵌入式系统、数字娱乐等),面临不同的专业领域知识,所要求的投入与软件开发相比规模同等甚至更高。另外,软件测试是一项需具备较强专业技术、学习和创新能力的工作,软件测试人员除了需要有一定的软件测试实践经验外,必须要具有缜密的逻辑思维能力、全面的技术能力、各种测试工具的使用能力、敢想敢干的创新能力,要有较强的责任心和团队合作精神以及出色的沟通能力等专业素质。要成为一名合格的软件测试人才需要经过严格系统化的专业培养,并且在专业培养过程中一定要结合软件测试专业化的特殊要求,强调软件测试人员的工程实践能力。
目前,很多高等学校仅仅是在计算机专业或软件工程专业中设置一些软件测试课程,还没有提高到软件测试专业化人才培养这个层面。北京工业大学软件学院率先在这方面进行了探索和实践,将能力培养作为软件测试人才培养的重要内容和突破口,提出了“用工具,促能力”的教学理念,积极探索软件测试课程的改革与实践,最终建立通过学习和使用软件测试工具进行软件测试能力培养的新模式。并在此基础上,开展课程建设、教材建设、实验室建设等工作,取得了较好的效果。
1 “用工具,促能力”的教学理念
工程实践能力是计算机专业,特别是软件工程专业的基本要求之一。计算机技术或软件工程技术涉及到大量的知识内容,包含各种开发和应用技术,覆盖许多应用领域,需要有很强工程实践能力。对于我们在校的本科学生,由于从高中到大学,一直在学习,缺乏实际项目经历。如果按照传统的课堂传授理论知识的方法进行教学,辅助一般的实验,会让学生感到枯燥、乏味,提不起兴趣。
为此,北京工业大学软件学院要求在软件工程本科专业的培养计划中加大计算机基础课程和软件工程专业核心课程的实践教学环节(包括配套的课程设计,独立的实践课程,以及小学期的集中实训等),并特别在软件测试课程的实践教学上进行了大胆的改革和创新,提出了“用工具,促能力”进行软件测试人才能力培养的教学理念。该教学理念的核心思想是通过要求学生熟练地使用各种软件测试工具,来掌握软件测试相关知识、技术、方法和管理流程,提高软件测试的工程实践能力,提升软件测试的专业化水平。
熟练地使用软件测试工具能带来如下好处:
1)提高工作效率。
软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,甚至会占到60%);另外,测试中的许多操作是重复的、非智力性的和非创造性的,但要求准确细致。最后,那些固定的、重复性的工作,可以由测试工具来完成,这样就使得测试人员能有更多的时间来计划测试过程,设计测试用例,使测试进行的更加完善。
2)保证测试的准确性。
手工测试常会犯一些人为错误。为此需要投入大量的时间和精力;而工具的特点是能保证测试的准确性,防止人为疏忽造成的错误。
3)有些测试很难开展,必须使用工具(如性能测试等)。
测试工具可以执行一些手工难于执行,或者是无法执行的测试。这是因为软件测试工作相当复杂,要求非常严格,很多测试在手工测试环境是无法完成的。
4)测试工具很好地保证测试工作的规范性和一致性。
软件工程最重要的内容就是管理,软件测试同样也是将管理放在第一位。
5)测试工具体现了先进的测试思想、方法和技术。
掌握并熟练地使用软件测试工具,能够快速和有效地掌握或巩固所学的软件测试的思想、方法和技术;运用软件测试工具开展软件测试工作,能够有效地提升解决软件测试中遇到的各种问题,增强软件测试的实战能力。
事实上,“用工具,促能力”的教学理念非常适合在工程化要求较高的软件工程核心课程中进行示范,予以推广。
2 探索软件测试人才能力培养的新模式
我们在“用工具,促能力”的教学理念指导下,对以软件测试人才能力培养为目标的教学方法与教学模式进行积极地探索和实践,确定了软件测试课程教学的知识体系以及学习和使用软件测试工具进行软件测试能力培养的实践教学体系,制定了软件测试课程教学大纲和实践教学课程大纲,从而建立软件测试课程教学及能力培养的新模式。
我们这里所说的软件测试人才能力培养新模式主要是指我们在对软件工程本科学生的软件测试能力培养过程中,强调“用工具,促能力”的教学理念,以开源软件测试工具为基础,结合精选的教学案例,大胆地将测试工具的掌握和测试工具的应用作为实践教学的重点,强化学生软件测试专业知识的掌握,促进学生软件测试实践能力的培养。这种实践教学的新模式,通过不断的探索和实践,充分得到学生的认可。学生通过软件测试工具的使用,大大提高了参与实践的兴趣,对软件测试相关的理论知识有了更深入的理解和掌握,运用工具解决测试项目实际问题的能力得到了加强。
2.1 软件测试人才能力培养的课程建设
软件测试人才培养专业性强,人员素质高,这要求我们必须科学地对软件测试课程体系进行论证,并按照软件测试人才能力培养新模式的要求制定出教学大纲。目前,学院在软件测试课程体系的设置上分三个层次:理论课程―软件测试,实践课程―软件测试课程设计,创新学分―软件协同测试。贯穿这三个层次的主线是软件测试工具,即通过软件测试工具在不同软件测试项目中的使用,强化学生知识的掌握和能力的培养,并按照工具使用流程要求,培养学生专业职业素质。
2.2 基于开源软件的软件测试实验室建设
软件测试课程对工程实践要求极高,对学生动手能力要求极强,因此软件测试实验室的建设,软件测试工具的配备除了支撑教学外,还是“用工具,促能力”教学理念的贯彻和通过学习和使用软件测试工具进行软件测试人才能力培养新模式的实施最重要的保证。
考虑到软件测试贯穿软件工程整个软件生命周期,涉及各种软件开发技术、应用技术以及测试技术,覆盖软件各种应用领域,需要用到多种测试技术、方法和测试类型。因此要建设能够让学生或受训人员全面参与这些实验或实践的软件测试实验室,特别是全面配置商用软件测试工具,这几乎是不可能的。首先,除一次性投入满足数十位学生同时上机进行实验或实践的要求外,经常性的升级维护费用就会让条件优越的高校或培训机构难以承受,更不要说大多数条件不优越的高等院校。另外,如果完全依靠商用软件测试工具开展软件测试的实践教学,除了面太窄、投入太高外,我们很难推广和普及在这方面取得的实践教学成果。
为此,我们提出了以主流的开源软件测试工具为基础,进行软件测试实验室建设的解决方案。该方案覆盖软件测试的各个阶段和各种类型,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件测试工具的情况下,仍然能够很好地开设软件测试实践类课程。
实际上,我们在软件测试实践能力培养过程中,一直是要求学生使用开源测试工具。这是因为:
①开源测试工具的使用,特别是测试环境的建立,能够促使学生接触各种开源工具,如操作系统、服务器、数据库、页面开发语言、绘图、邮件等,培养他们搭建平台的综合能力。
②采用开源测试工具搭建测试环境开展测试工作,更有利于学生学习和理解软件开发技术和软件测试原理,提高学习兴趣。
③学生通过使用开源测试工具,除了完成课程设计所规定的测试任务外,还能够清楚地了解这些测试工具对测试技术和测试方法的支持以及这些工具在应用中存在的问题,并可以尝试自己动手改进这些测试工具。
2.3 软件测试课程配套的教材建设
为使教学理念真正得到贯彻,能力培养模式真正得到实施,必须解决与之配套的教材问题。为此,我们编写了《软件测试大学教程》、《软件测试实验指导教程》以及《嵌入式软件测试实用技术》3本教材。这3本教材不仅是课程的配套教材,而且还是软件测试课程建设和教学研究及改革等成果的最终表现,也是软件测试能力培养新模式实施的基石。《软件测试大学教程》已被北京市教委推荐为“十二五”普通高等教育本科国家级规划教材(待评审);另外,《软件测试实验指导教程》全面介绍了支持各种软件测试类型的开源软件测试工具的主要功能、应用流程及实际案例,涉及到测试管理、缺陷管理、代码分析、单元测试、系统测试、性能测试以及软件综合评测等重要实践内容。该教材配套有近1GB内容的DVD光盘,光盘中存放有覆盖软件测试不同阶段和不同类型的大量开源软件测试工具及配套的实践教学案例,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件测试工具的情况下,仍然能够学习和推广我们的教学成果;最后,学术专著《嵌入式软件测试实用技术》对软件工程应用领域嵌入式软件的测试活动开展提供了专业支持。
上述教材的出版及使用,能够使我们的教学理念真正得到贯彻,教学大纲真正得到落实,教学新模式真正得到实施,实践教学的探索及改革有据可查,有迹可循。
2.4 软件测试精品课程的建设
精品课程的建设能够推动优质教育资源的共享、教学理念的宣传和教学模式的普及与推广,使学生得到最好的教育,从而全面提高教学质量。
软件测试课程自2009年评为北京工业大学校级精品课程以来,一直在努力开展精品课程相关内容的建设,积极申报北京市精品课程。通过近几年的软件测试精品课程建设,很好地推动了优质教育资源的共享,以及实践教学理念的宣传和实践教学模式的普及与推广。
软件测试课程在建设过程中,对教学内容、教学方法进行了如下的改革:
①在整个本科和工程硕士教学计划和培养方案的基础上,进行课程体系、教学内容及实验和实践环节整体配套和优化的教学改革;
②重视基础理论,采用案例驱动式教学方式,加强实践教学环节,注重基本技能训练与工程能力的培养;
③密切软件开发技术及测试技术应用最新动态,设计实践教学案例,增强课程内容的针对性和时效性;
④将软件测试课程理论教学与软件测试课程设计、软件协同测试等实践教学和创新学分整体考虑,努力达到培养高素质、专业化软件测试人才的要求;
⑤为使软件测试课程达到既定目标,开展了配套的教材建设。
总之,精品课程教学内容突出全生命周期软件测试概念、软件质量分析手段、现代软件测试技术、主流测试工具应用以及典型应用测试方法等,帮助学生了解和掌握现代软件测试的各种原理、方法和技术,并能够选择合适的软件测试工具进行相关测试。这些举措为培养学生今后成为高素质、专业化的软件测试人才打下很好的基础,许多学生毕业后在IT企业能够很好地从事软件测试工作。
软件测试精品课程网站是按照北京市精品课程网站建设要求建设的。网上的内容除了课程概况、课程内容、练习作业、教学课件、参考资料以及全程录像。由于软件测试课程包含有实践性教学,因此本网站包括实践教学指导等。除此之外,本网站还包括软件测试课程全面教育教学研究和改革的思路、方案和成果。可以说,本网站内容完整、资源丰富,其成果具有可示范性和可推广性。
软件测试课程建设得到北京世纪超星信息技术发展有限责任公司的大力支持,该公司将本课程作为优秀学术成果(超星名师讲坛――超星学术视频)进行了全程的录像和系统的整理,部分录像资源可在超星网上观看或下载,网址是: video.省略/playvideo.aspx?id=31475。另外,超星公司已授权我们可将本课程的完整学术视频放在学校精品课程网站上,使教师和学生共享其资源。
3 软件测试人才能力培养模式的实践
软件测试课程在不同的院校其设置是不一样(如理论课或理论课+实验课,学时、学分等)的,北京工业大学软件学院在软件工程专业本科生的教学计划中将软件测试课程设为专业必修课,其课程设置包括理论课及实验课(课程设计)两部分。理论课32学时,16周完成,每周2学时,最后参加学校考试周的闭卷考试。课程设计是期末小学期2周集中进行,共60学时。
3.1 课程设置情况
软件测试课程自2005年开设以来,就依据“用工具,促能力”的教学理念开展本文所提到的软件测试人才能力培养的新模式进行教学,讲授了8轮次,学习人数达500多人。
无论是软件测试理论课实验、软件测试课程设计,还是创新学分――软件协同测试,都是以软件测试工具为核心,结合精心设计的测试案例,使学生从测试需求、测试环境建立、测试策略、测试技术应用、测试用例设计与执行、测试结果分析,以及缺陷跟踪管理与测试报告文档撰写等方面完成实验内容和课程设计内容。
3.1.1 软件测试理论课程的实验大纲
软件测试理论课中安排了6个学时的实验内容,包括三个方面的内容(每部分内容2学时):代码静态检测、Java单元测试Junit、Gtk+界面测试。
3.1.2 软件测试课程设计大纲
软件测试课程设计按照《软件测试实验指导教程》开设了6大类型的软件测试项目,每个类型的测试项目要求学生同时使用主流的开源测试工具,体会先进和成熟的软件测试技术,提高学生的实战能力。
类型1:以测试过程管理为主,实验重点是缺陷管理、测试管理以及缺陷管理与测试管理的集成。涉及到的开源工具主要有Mantis、Bugzilla、Testlink、Testopia等。
类型2:以程序的静态分析为主,实验内容是程序理解、代码静态分析。涉及到的开源工具主要有Oink,Eclipse PTP/ CDT,以及分析Java代码的多种工具(如Findbugs、PMD、Checkstyle、Valgrind、Prefast等)。
类型3:以单元测试为主,实验内容是基于支持测试驱动开发(TDD)的单元测试框架xUnit的C/C++功能测试和C/C++及Java的覆盖测试。涉及到的开源工具主要有CppUnit、EclEmma、Gcov等。
类型4:以图形界面测试为主,基于单元测试框架对Java GUI进行测试,对网页进行测试。涉及到的开源工具主要有JFCUnit、HttpUnit、JWebUnit等。
类型5:以性能测试为主,除了继续在单元测试框架的基础上对Java应用进行单元性能测试外,重点是对Web应用系统进行整体的性能测试。涉及到的开源工具主要有p-unit、JMeter、WebLoad等。
类型6:以软件综合评测为主,对南京大学的EASTT工具进行综合应用(可辅助使用Panorama++试用版),全面了解软件评测的思想、方法和要求。
软件测试课程设计的考核内容包括:建立测试环境,运行测试工具,编写测试例子,加载被测程序,执行测试用例,分析测试结果,撰写测试总结报告(报告字数不少于1万字),最后登台汇报(PPT演讲)。
通过撰写报告和登台PPT汇报,培养学生的逻辑思维、归纳总结、论文撰写、多媒体制作以及登台演讲能力。3.1.3 软件协同测试创新学分大纲
软件协同测试创新学分实践课程主要是由教师布置具体的较大型软件测试项目,模拟多人异地得测试活动,让学生体验软件测试各个阶段进行协同的关键要素。包括测试需求分析、测试计划制定、测试用例设计、测试用例执行、测试结果收集以及测试资源和测试过程管理等各个环节的协同要求,学生通过协同分工完成整个课程任务,并在测试实践中总结方法,创新性的提出软件协同测试的解决方案。
3.2 实践效果
基于“用工具,促能力” 的教学理念下的软件测试人才能力培养的新模式在内容组织上做到了既能够调动学生专业兴趣,使其感到软件测试的实用性和挑战性,又加强了学生软件测试的实际动手能力。软件测试课程以主流的开源软件测试工具应用为基础,以实战能力培养为目的,易于教师开展软件测试的各项实践教学活动,而且学生对这种形式的实践教学反映非常好,学生参与实验的热情非常高,学生经过实践后收获非常大、能力提高非常快,学生为实践收集或设计的案例非常丰富,部分学生撰写的实践总结报告水平也非常高。另外,学生结合分组实践内容的安排,进行针对性地软件测试实践活动,同时也可以方便不同层次的学生根据自己的能力、时间和兴趣选择相关的实践内容进行自学和实践,进一步地拓展自己的专业知识和专业技能,为今后的职业生涯规划打基础。
企业对我们所取得的成果给予了认可。北京应用软件产品质量监督检验中心与学院签署了战略合作协议,确定在软件测试人才培养(如软件测试培训、实训及实习)、软件测试科研、软件协同测试平台建设以及嵌入式软件测试等基础建设方面开展合作。
2009年,北京工业大学软件学院所获得的北京市软件工程实践教学示范中心其建设内容主要是软件工程及其相关专业核心课程的实践教学及其学生的能力培养。按照什么样的理念和模式开展这些课程的实践教学,软件测试课程“用工具,促能力”的教学理念和在该教学理念指导下的软件测试人才能力培养模式做了一个很好的实践和回答。
4 结束语
目前计算机学院或软件学院学生的软件测试人才培养一直是高等院校计算机人才或软件人才培养的一个“短板”,一直缺少好的教学理念和教学模式。因此,开展软件测试人才能力培养的教学理念及培养模式的探索与实践是一件非常有意义的工作。对于这项工作,有关专家给与了充分的肯定,他们认为:软件测试人才能力培养的教学理念和新模式强调软件测试工具使用的重要性,同时重视教学实验成本和教学的灵活性,所有实验和实践活动的内容组织均以开源软件测试工具为主。通过实际测试项目的开展和工具的使用,能够使学生掌握软件测试的基本方法、技术和流程,提高他们的动手能力。而且这种教学理念和培养模式具有示范性和推广性。
参考文献
[1] 柳永坡. 让软件测试实验和实训课程轻松地走进高校或培训机构――介绍《软件测试实验指导教程》[J].计算机教育,2010(13):158.
[2] 柳永坡. 软件测试大学教程:软件测试课程专业教材[J].计算机教育,2010(12):158.
[3] 蔡建平. 开源软件测试实践教学方案设计[J]. 计算机教育,2011(6):103-108.
[4] 蔡建平. 软件测试大学教程[M]. 北京:清华大学出版社,2009,09.
关键词:案例教学法;软件测试过程;测试文档
目前我国软件测试人才严重匮乏,人才缺口达到30万,造成这一结果的主要原因是国内软件测试人才教育相对滞后[1]。但实际上,很多学习了软件测试课程的学生却找不到工作,业内专家称之为人才的“结构性过剩”[2],而滞后的原因不仅仅是教育机构开设软件测试课程时间的滞后,主要是教学内容和教学效果与实际需要的差距产生的滞后。外包开发行业快速发展,对人才在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高[2],而这些要求正是软件测试人才教育的薄弱环节。因此,如何顺应市场需求,培养出企业所需的软件测试人员,成为软件测试课程改革创新的目标。
1教学现状
随着软件测试人员市场需求的不断增加,各大高校、职业技术学校及IT培训机构纷纷开设了“软件测试”课程。然而,在师资方面,讲授软件测试课程的教师多数是由软件工程的教师承担,这些主讲教师能很好地讲解软件测试理论和介绍软件测试方法,但缺乏软件测试的系统案例和软件测试经验[3]。在理论教材方面,虽然各种软件测试的教材相继出版发行,但教材中技术实现的内容较多,对常用的软件测试文档书写介绍很少,且缺乏文档模板;对自动化测试工具,基本也是简略介绍其功能。在实验教材方面,目前还没有配套的软件测试实验教材问世,在教学过程中基本是任课教师自行设计实验教学内容。对于实践性较强的课程,主讲教师如果没有大量的实际项目开发经验作为支撑,就难于用恰当的实例来解释相关理论,更难设计出实用有效的实验内容,导致在校学习的知识与实际工作脱节的现象。要顺应软件测试人才市场的需求,软件测试课程的教学必须面向企业的实际需要,使学生能学到实际工作中常用的技能,以“经验者”的身份进入人才市场参与竞争。
2改革和创新
笔者以日企工程经验为依据,针对软件测试课程教学中缺乏系统案例、重技术实现轻文档工作、测试工具流于产品说明等问题[4],设计了一套软件测试实验,帮助学生利用软件测试技术搭建测试环境;根据测试规格说明书进行测试;练习测试用例的设计、执行与跟踪并高效地进行回归测试;熟悉常用测试文档的书写方法;掌握如何保存测试用例和有效的测试结果;准确地书写缺陷报告;通过思考题的方式启发学生利用计算机技术开发自动化测试工具。
2.1教学进度的调整
计算机课程的实验教学,通常和理论课同步或延迟几周进行。对于软件测试这门课程的实验教学,如果与理论课同步进行,前期的实验内容安排就缺乏理论支持,如果比理论课迟后几次,即在讲述白盒测试和黑盒测试后开始实验教学,就可以将各种测试方法融入实验中进行,但由于软件测试过程及技术、测试文档书写相关内容还未讲述,实验内容的安排显得孤立,没有整体感。为了让学生体验软件测试在实际工作环境中的实施过程,将理论课讲述的知识有机地融入到完整的案例中进行实验,就需要系统地学习完理论知识后,再结合实际案例系统地进行实验。
我们打破传统的周四学时,即“理论2+实验2”的排课模式,将一个学期分为理论上半学期,实验下半学期,上半学期周四学时用于结合案例进行理论教学,下半学期周四学时针对理论课讲述的案例进行实验教学,以便学生能够模拟实际工作环境进行系统的软件测试实验。
2.2实验教学的创新
2.2.1实验素材的创新
现有的软件测试教材,通常会在最后章节给出一个案例,针对该案例利用教材上介绍的各种测试方法有针对性地进行测试用例设计。但是教材对案例的描述基本只限于项目背景介绍、子系统介绍、子系统功能分析、子系统性能及可用性要求方面的资料,基本没有提供可运行案例系统的代码,同时也缺乏必要的供测试使用的文档。实际工作中,软件测试过程与软件设计周期有相互对应的关系,软件测试过程中的单元测试、集成测试、系统测试、验收测试分别对应软件设计中的详细设计、概要设计、系统设计和需求分析[5]。因此,要完成一个系统的较完整测试过程,不仅要提供被测系统的完整代码及数据,还必须提供全套的设计文档。
我们以一个开发完整的以C/S模式实现的“小区物业管理系统”和B/S模式实现的“图书馆管理系统”作为测试案例,在理论课教学中主要以“小区物业管理系统”作为案例进行理论知识的讲解,与网站测试和面向对象测试相关的内容以“图书馆管理系统”作为案例进行讲解。这样,进行完理论教学,学生对案例系统的功能基本了解。在实验教学中,我们提供给学生在测试中需要的代码、开发规范、需求分析、系统设计书、概要设计书、详细设计书,具备了以上资料,便可模拟实际工作模式,将理论教学中讲述的测试策略和方法、测试文档的书写方法运用到该案例的测试实验中。
2.2.2实验内容的创新
由于实验教学学时和学生能力的限制,在本实验的设计中,我们主要针对初、中级测试工程师级别设计实验内容,这些实验内容就是同学们踏上测试岗位要动手干的实际工作。而针对高级测试工程师和测试管理者担当的工作,比如测试计划的制作、各种设计的验证、测试评估和总结,需要经历初中级测试工程师的实战,积累大量经验才能承担,这一部分内容,我们只在理论教学中简单讲述,不在实验教学中安排实验内容。
我们设计了表1所示的实验内容,本设计旨在让学生经过实验的训练,以“经验者”的角色参与求职应聘,因此,我们以项目管理者培养“新人”的方式来安排实验内容和进度。虽然软件测试贯穿于软件生命周期的全过程,但对于刚毕业的大学生来说,从人才培养角度出发,项目管理者通常是按照以下流程在工作过程中培养人才:单纯性测试的实施、测试设计(书写测试规格说明书)、测试环境搭建等,按照单元测试、集成测试、系统测试的顺序循序渐进地深入测试工作,因此我们按如下进度设计了以下实验内容,并在提供的素材中人为地制造缺陷,以便学生发现缺陷、分析缺陷、修改缺陷。
通过上述8个实验,让学生牢固掌握单元测试和集成测试的设计和实现方法,了解常用测试工具的使用方法,同时对系统测试实施有基本了解。严格经过这8个实验的训练,学生基本能以初级测试工程师的身份投入到测试工作中。
关键词:软件测试;自动化测试工具;实践教学;分组教学
1开课背景
软件测试是提高软件产品质量的关键步骤,它是伴随着IT产业的发展而出现的。目前,越来越多的软件企业设置了测试工程师岗位,但测试人才却面临巨大的缺口。高等院校作为软件人才的重要输出基地,每年为IT产业提供了充足的人力资源保障[1-2],但软件测试起步比软件工程要晚,所以国内高等院校几乎没有制定专门的软件测试人才专业培养方案。而学生掌握软件测试相关知识,也仅仅是通过软件工程课程中关于软件测试知识的介绍,或者是通过软件测试课程。很多高校在软件测试课程教学中以理论为主,学生很难在这类课程中掌握实用的软件测试技术,进而在求职过程中也难以应聘对测试要求较高的测试工程师岗位。基于以上背景,我院于2008年在软件工程专业中设立软件测试方向,制定了科学系统的软件测试人才培养方案。自动化测试工具作为该专业方向的必修课,是学生了解和掌握自动化测试理论及工具使用方法的重要课程。本课程以软件功能测试自动化和性能测试自动化为主要内容,介绍自动化测试理论及自动化工具的使用。课程以实践为主,理论结合,学生通过实践操作,可以掌握自动化测试理论及测试工具中的关键技术,为成为一名测试工程师打下基础。
该课程在我国本科院校中开设面并不广,相关教学经验及教学资料缺乏。但从长远来看,随着软件测试人才培养模式的不断成熟,该类课程的开设必将成为趋势。本文根据笔者自动化测试工具课程的教学实践,总结课程教学经验、课堂组织形式等内容,希望为将来开设该类课程的兄弟院校提供经验支持。
2课程内容设置
测试过程中使用自动化测试工具是提高测试效率的重要手段,目前主流的自动化测试工具以功能测试和性能测试为主,其中应用比较广泛的包括惠普公司系列的自动化测试工具以及IBM系列的自动化测试工具。本课程在教学中以惠普公司的功能测试工具和性能测试工具为主。在专业教学计划中,该课程课时安排为64学时,其中理论课占18学时,实践占48学时。本课程设置的出发点是让学生通过课程掌握自动化测试工具的使用,因此实践学时所占比例较大。在理论部分主要讲授:自动化测试的产生、自动化测试的定义和引入、自动化测试工具的作用及优势、自动化测试脚本、自动化测试生存周期方法学、软件自动化测试工具简述等内容,同时在学习自动化测试工具的使用之前,在理论学时部分讲解该工具的工作原理。
3教学方法与组织形式
自动化测试工具课程实践性较强,因此在整个教学过程中,应以学生自己动手操作为主,任课教师只是对学生进行必要的指导。在每一个实验结束后,任课教师对实验进行总结,讲解实验中存在的共性问题,同时讲解每一个实验中涉及的知识点,以加深学生的理解。
在“录制、执行测试脚本,分析测试结果”实验中,教师应有针对性地加强对学生的指导。这是学生使用QTP所做的第一个实验,实验过程中会遇到各种各样的问题,举例如下:
1) 录制脚本完成后,执行不能成功。这个问题的出现,大多原因是学生在录制脚本的过程中频繁切换应用程序窗口,进行了与测试无关的应用程序操作,这些操作都录制到了脚本中,但在执行脚本时QTP无法找到这些无关应用程序的对象,导致脚本执行失败。该问题也属于共性问题,教师在讲解时应提醒学生在录制脚本时的注意事项。
2) 脚本执行完成后,不会分析实验结果。在教学参考资料中,可以引导学生去分析脚本执行结果。教师可以在课上统一讲解测试结果的分析方法。
第一个实验对整个自动化测试工具课程的学习是非常重要的,因此,授课教师一定要注意合理地引导学生,及时解决学生遇到的问题。当然,在学生遇到问题时,最好先提醒学生试着自己去解决,培养他们独立分析和解决问题的能力[3-4]。
所有实验在完成后要求学生提交实验报告。实验报告是考查学生完成实验的重要参考,完整的实验报告将体现学生在实验过程中的思考过程。
在完成QTP和LoadRunner的学习后,我们通过一个实际Web项目案例“网上书店”进行完整的功能及性能测试。学生经历项目测试计划、测试设计、测试执行、结果分析、测试报告的完整测试流程,完成对该项目的性能和功能测试工作。对于最后大项目的测试工作,很显然不能由一个人完成,教学过程中采用分组方式是比较合理的。将平时实验中表现比较突出的同学,分配在各小组中担任组长,每小组5~6人。由组长分配任务,督促团队按时提交相关文档。从教学实践来看,这种方式取得的效果非常好,能够充分调动同学们的积极性,增强学生的团队合作意识[4-5]。
4考核方式
对于实践性强的课程,考核方式以实验成绩为主[3]。按照教学计划中的实验设置,对每一个实验在课堂上进行检查,针对实验内容对学生提问,要求学生对所做实验用到的技术内容以及测试结果进行分析。根据学生的表述情况打分,单个实验的成绩还需要参考实验报告,根据实验报告的质量打分。对大项目的测试评定,依据小组的综合表现、项目测试相关文档质量打分,考核的总体标准如表2所示。这种考核方式,更加注重学生平时的课堂表现,脱离了传统的期末考试给学生带来的恐惧心理,使学生在平时课堂上能够积极做实验,取得更好的教学效果。
从最终考核成绩来看,大部分学生基本掌握了QTP及LoadRunner的使用以及其中涉及的关键技术,能够做到灵活运用,提高测试效率,为将来的求职打下了坚实的基础。
5结语
根据国内某专业网站的最新调查显示[1,6],软件测试正逐渐成为IT行业的主导,人才需求越来越旺盛。这将促使我国高等院校在软件测试人才培养方面加快步伐,通过制定专门的测试人才培养计划来培养急需的测试人才。希望我们的教学实践可为即将开设自动化测试工具类似课程的兄弟院校提供经验支持。
参考文献:
[1] 51testing. 2008年中国软件测试从业人员调查报告[EB/OL]. [2011-05-01]. /ddimg/ uploadsoft/20090622/08cydcl.pdf,2009.6.
[2] 钟素芬,叶明芷. 软件测试应用性人才培养模式的探索与实践[J]. 北京联合大学学报:自然科学版,2007,21(3):89-92.
[3] 李绘卓,唐峻,范勇. 基于案例的软件测试实验教学[J]. 电脑知识与技术,2009,5(27):7820-7821.
[4] 屠红蕾. 软件测试教学的点滴体会[J]. 计算机教育,2008(10):124-125.
[5] 程宝雷. 基于Rational的软件测试课程实验教学方法探讨[J]. 实验室研究与探索,2007,26(12):310-312.
[6] 51testing. 2009年中国软件测试从业人员调查报告[EB/OL]. [2011-05-01]. /ddimg/ uploadsoft/20100611/09cydc.pdf.
Teaching Scheme of Automatic Testing Tools
WANG Fasheng, ZHENG Dongxia, SHAO Ruifeng, XIONG Yaohua, GUO Quan
(Department of Computer Science & Technology, Dalian Neusoft Institute of Information, Dalian 116023, China)
关键词:软件测试;教学改革;人才培养
中图分类号:G64
文献标识码:A
文章编号:1672-3198(2010)03-0237-01
软件测试是保障软件质量的重要环节,随着中国软件行业的不断发展,企业对于软件质量意识的逐步增强,促使国内软件测试人员的地位不断提升,软件产品的质量要求与质量管理正逐渐成为企业生存与发展的核心。为了保证软件在交付使用的时候能尽量完善,大多数IT企业在软件产品前都需要做大量的质量控制工作。作为软件质量控制中的重要一环,软件测试重新显示了它的重要位置。
由于中国高等教育往往落后于企业的实际发展,所以在很多高校重开发、轻测试的思想十分严重。许多学生对测试工作存在偏见,其中对软件测试工作有三个认知误区尤为突出:一、软件测试是软件开发完成之后才进行的,只是软件编码的最后一个阶段。二、软件测试无需具备很高的技能,是没有前途的工作,工作枯燥,不具创造性。三、软件后如果发现BUG就是测试人员的责任。这些认知缺陷导致软件测试人才缺口进一步扩大,影响了企业对测试人员的招募工作,继而影响到中国IT产业的发展。同时,国内软件业因对软件质量控制的重要作用认识较晚,尚未形成系统的软件测试人才需求供应链。因此,高职院校有必要对此进行思考。
1 软件测试课程教学现状
根据各高职院校的专业设置情况来看,目前还没有高职院校设置软件测试专业,因此还没有专门培养专业的软件测试人才的体系。根据目前软件企业对软件测试技术人才的巨大需求,对于以培养满足社会发展需求的应用型人才为办学宗旨的高职院校来说,应该增加软件测试专业的设置和软件测试人才的培养。
目前,虽然很多高职院校增加了《软件测试》课程,但在教学方法上一般采用传统的灌输式枯燥地讲解测试理论和方法,使学生产生抵触和厌学情绪。软件测试是一项专业性较强的工作,它包括许多理论知识并要求测试人员具有一定的工程实践经验,缺少这些知识和经验,测试的深度和广度就不够,测试工作的质量也就无法保证。因此在该门课程教学中需要提供丰富的实例和习题,并且采用实际软件项目的测试案例,增加实训环节,激发学生的学习兴趣,促进了理论和实践的教学,把对学生的应用能力的培养融汇于教学中。
2 软件测试课程教学目标
根据目前软件企业对软件测试技术人才的能力需求,我们给软件测试课程教学制定了两个教学目标:其一,帮助学生熟练掌握规范化的软件开发流程和软件测试理论;其二,能进行一般的软件测试,能编写测试用例,能掌握至少一种软件测试工具。因此,学生应掌握的知识主要包括:(1)掌握单元测试、集成测试、系统测试、性能测试、功能测试等测试方法。(2)熟悉黑盒测试和白盒测试技术。(3)能够制定测试计划和设计测试用例。(4)掌握常用的软件自动化测试工具。(5)能够编写系统测试总结报告。
3 软件测试课程教学改革方案
3.1 修正学子对软件测试的认知误区,提高对软件测试重要性的意识
传统的瀑布模型中,软件项目主要有计划、需求分析、概要设计、详细设计、编码、测试和运行维护这几个阶段。软件测试处于运行维护阶段之前,仅仅是软件产品交付用户使用之前保证软件质量的重要手段。
随着软件业的发展,瀑布模型日益暴露出如下缺点:项目之间极少有反馈,在项目后期才能看到结果,这给经常发生需求变更的软件研发工作产生很多不便,一旦在编码阶段结束才发现设计和需求阶段的错误问题,修复的成本就会很高。因此测试人员应该在项目早期就介入,进行测试需求分析、制定测试计划等。软件测试应贯穿于整个软件开发生命周期的全过程,以保证各个阶段工作产品输出的正确性。这要求测试人员有很好的沟通能力、理解能力、分析问题能力,同时还必须对该软件服务的行业有一定的了解。
教师须结合软件测试的最新趋势,向学生普及新知识,新技术,以引起学生的学习兴趣,扩展学生视野,提高对软件测试岗位的理解,增强学生内在的学习动力,发挥学生的主动精神,将“要学生学习”变为“学生要学习”。
3.2 改革教学内容,强化实践教学,促进理论与实践教学的统一
关注新技术的发展,及时更新教学大纲,在课程内容安排上,注意理论与实践并重,将《软件测试》课程划分为二个模块组织教学。《软件测试理论》课程是理论模块,占60个学时,《软件测试实训》课程是实践模块,占60个学时。其中《软件测试理论》课程涵盖软件测试的各项基本技术和知识,以学生较熟悉的应用背景和业务流程的项目开发和测试实践为主线进行讲解,提供丰富的实例和习题,激发学生的学习兴趣,内容安排上由易到难,深入浅出。为了验证理论,加深对理论的理解和掌握,安排需求分析和软件设计的UML建模、单元测试、WEB系统的性能测试、系统集成测试等实验。软件测试实训需要着重解决的问题是实验的设计,既要考虑满足教学的条件与要求,又要实现与实际测试工作的对接,并体现出软件开发和测试的过程。
理论课和实训课的讲义,由参加了项目开发的专业老师和一些软件公司的项目负责人编写、整理出开发过程的所有文档,包括用例图、用例描述文本、时序图、类图、源代码以及单元测试和系统测试的测试计划和测试用例等。
3.3 建立了校外实训基地, 通过企业实习提高学生的岗位技能,深化教学改革
学生到企业实习是软件测试人才培养的重要组成部分。同学校周边的软件公司合作,建立校外实训基地,让学生在软件开发队伍中从事真正的软件测试工作。学生在实习中不但能亲身体会软件测试在软件开发流程中的作用,提高测试技术,而且可以培养测试人员必须具备的沟通能力、理解能力、分析问题的能力。一名好的测试人员必须能够同软件测试涉及的所有人进行沟通, 具有与技术开发者和客户、管理人员等非技术人员的交流能力,这种能力在课程教学上无法培养的。
让学生到企业实习还可以实现学生的职业能力与企业工作岗位的“零距离”,使学生根据自己的专业特长和爱好选择自己在测试团队的具体方向。掌握相关自动化测试工具的学生可以把自己定位于自动化测试人员,编程功底扎实的同学可以定位于脚本撰写人员,对相关测试中最易发现问题的地方敏感的同学可以定位于手工测试人员。4 结语
软件测试课程的教学难点在于对实践能力的高要求上,我们引入案例教学,营造学生主动学习的氛围,将课内学习和学生兴趣融为一体,切实提高了学生的软件测试能力,当然软件测试教学改革方案还需要不断根据软件技术的发展和学生的特点不断进行改进和调整,需要长期坚持不懈的探索。当前软件测试的重要性已是软件项目成败的关键环节,当它的重要性已经被各家公司提升到一定高度的时候,高校学子们也应该与时俱进,对于有志从事IT岗位的高校毕业生来说,充分了解各个职位的真实情况,对于将来职业的选择和规划都有着莫大的好处。通过对软件测试课程教学改革,可以看到教学效果明显改善。学生的理论课成绩显著提高,毕业设计阶段能够应用软件测试理论对自己的毕业设计进行测试,实验课教学质量提高了,培养了学生自主创新能力。
参考文献
[1]王中凤.开放式实验教学与创新型人才的培养[J].合肥学院学报(自然科学版),2009,(02).
[2]钟元生.软件测试实践教学特色的构建实践[J].电化教育研究,2006,(10).
[3]程宝雷.基于 Rational 的软件测试课程实验教学方法探讨[J].实验室研究与探索,2007,(12).
【关键词】软件测试;应用型人才;培养模式;课程群
据前程无忧网数据显示,去年国内软件测试人才缺口高达20万,今年有望突破30万人。目前国内软件测试和开发人员比例大约在1:4-1:5,而国外测试和开发人员比例为1:1,微软测试人员和开发人员的比例已达到2:1。软件测试人才正在成为我国软件行业目前最紧缺的人才之一。随着我国软件产业的迅速发展,软件测试人才的地位正在逐年提升,这种供需矛盾将变得越发突出。
目前,国内软件测试人才的培训[1]主要有三种机构:企业、高等院校和IT培训机构。企业培养的人才大多是通过参与项目自己摸索的软件开发人员,由于缺乏对软件测试全面的认识,在测试思想、技能、思维方式、沟通能力等方面都需要进一步提高。高校培养出来的人才具备一定理论知识,但动手能力较差,进入企业后需要再培养,不能立即到岗。培训机构则能弥补前两种方式的不足,但价格昂贵。
一、软件测试课程教学现状
(一)学生学习枯燥,兴趣低
软件测试是计算机专业课,课程内容理论性和操作性都很强,并且需要学习了解的自动化测试工具种类繁多。目前各个高校在开设这门课程时,大多数还停留在理论教学阶段。教师准备好课件,学生拿着课本,首先给出书上官方的定义和自己的解释,然后结合一些课本上或自己参与的项目,给出实例证明这些理论。学生容易感到内容空洞、枯燥乏味,学习时就缺少主动性,难对这门课程产生兴趣。
(二)软件测试实验开展不充分,学生实践能力弱
软件测试知识点众多,理论内容的授课量占绝大部分[2],实验课时数仅占到四分之一左右。由于实验时间、实践环境有限,日常实验教学都是验证性的小实验。由于没有一个实际的面向企业的项目支撑,很多测试过程难以进行,比如集成测试、性能测试、验收测试等等。通过对从事软件测试方向工作的毕业生就业情况调查发现,软件企业认为软件测试课程理论丰富,但还存在学生实践能力不足、测试工程师职业素质有待进一步提高等诸多问题。
(三)教师缺乏实际软件测试经验
软件测试行业发展迅速,软件测试工具种类多,更新快。软件测试这门课程实践性较强,高校计算机教师大多数软件项目开发测试经验不足[3],对软件公司软件项目研发测试过程没有切身的体会。教师在讲授这门课程时没有实际的软件项目案例可以操作,实践教学显得吃力,很难给学生软件测试方面的经验知识。
面对软件测试人才的社会需求紧迫性和软件测试教学现状,人才培养单位应该扩大软件测试人才培养规模,总结软件测试知识点,改革教学方法,培养学生兴趣,提高教学质量。
二、软件测试工程师职业能力需求
为更好地培养学生的软件测试工程师职业素质[4][5] [6],提高学生的就业率和用人单位的满意度,充分分析软件测试工程师的职业能力要求。
(一)素质要求[4][5]
1、具有团队合作精神。
2、有较强的责任感及进取精神。
3、细心、耐心,具备逆向思维。
4、技术方面的基本素质,熟悉系统的应用,熟悉办公软件的应用,熟悉基本的测试流程;熟悉测试管理工具的应用。
5、具有测试人员的学习能力、领悟能力。
6、对行业具有信心,对测试的信心,相信软件一直存在BUG。
7、良好的英语阅读和写作。
8、良好的语言及文字表达。
9、较好的沟通技巧。
10、怀疑精神具有测试人员必须保持的怀疑态度。
11、捕获用户观点的能力,强烈的质量追求,对细节的关注。
(二)专业能力要求[6]
1、对Windows、Linux、Unix等大型主流操作系统的熟练掌握能力。
2、具备快速进行应用系统部署和测试环境搭建的能力。
3、测试人员必须掌握目前主流的程序设计语言,比如C、C++、JAVA、C#、VB等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。
4、熟练掌握SQL Server、Oracle、DB2等一种或多种数据库系统的使用,熟悉使用SQL语言。
5、对信息安全知识的基本掌握。
6、必须深刻理解和熟练掌握软件测试基础理论与技术。
7、精通各种测试技术,能够手工或利用相关工具进行单元测试。
8、能够进行测试用例设计、测试执行、编写缺陷报告。
9、熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力。
10、掌握测试管理相关知识和软件。
11、掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。
(三)知识结构要求
1、软件知识:数据结构、操作系统、面向对象程序设计、数据库原理、C程序设计语言、WEB技术、数据仓库与数据挖掘、软件工程。
2、硬件知识:数字逻辑、微机原理与接口、计算机组成原理、计算机系统结构。
3、网络知识:计算机网络技术、计算机网络安全。
4、人文、社会学基础:原理、道德与法律、中华民族历史、大学语文、大学英语。
5、数学基础:高等数学、线性代数、概率统计。
三、软件测试课程设计理念和思路
根据软件测试工程的职业能力要求,对软件测试课程我们重新把握课程的设计理念和思路。
(一)课程设计理念
1、与企业共建基于工作过程的课程体系
根据专业办学的定位及特色,《软件测试》课程的设计理念是以软件测试员/测试工程师岗位需求为依据,以培养学生使用自动化测试技术进行软件测试的职业能力为主要目标,以测试工作的典型工作任务为导向,坚持以能力为本位的设计原则,制定突出企业应用能力和素养的课程标准,构建基于工作过程的系统化课程体系。课程组通过开展课程标准研讨会和技术培训会等形式,听取企业专家的建议,修订软件测试课程的内容,保证课程内容与企业用人需求同步;在课程功能上注重学生应用能力的培养,构建以掌握软件测试应用能力为特征的理实一体化的教学内容,做到强化技能、提升业务素质,提高学生的就业竞争力和实际工作能力。
2、和相关课程构成课程群,实现企业应用项目开发过程的案例教学环境
立足于培养满足企业应用的软件项目开发需要的应用型人才,本课程以真实的软件实例项目测试任务和过程为依据,以现代教学理念为指导,精心进行教学设计。
在构建课程体系[7]时,由专业建设及教学指导委员会,充分调查分析不断变化的市场,以企业应用软件项目开发为切入点,构建基于软件项目开发过程平台。将《Java面向对象程序设计》、《数据库原理及应用》、《软件工程》、《软件测试》、《软件项目综合实训》这5门课程,按照专业培养目标,掌握计算机软件技术所必需的理论知识和专业技能,具有较强实践能力,能在软件项目研发测试一线从事软件项目需求分析、设计、编程、测试和软件产品等工作的高素质应用型专业人才的要求,对应“软件工程师”、“软件测试师”“数据库工程师”等行业职业特征,以项目为载体,形成一个有机整体,整合成“基于企业应用软件项目开发过程”,组建了课程群。其中《Java面向对象程序设计》、《数据库原理及应用》是专业核心基础课程,《软件工程》、《软件测试》、《软件项目综合实训》是专业核心必修课。通过“软件项目的需求分析、设计、编程和测试技术”这个链将这五门课程紧紧联系在一起,并能带动软件技术、网络工程、计算机信息管理、计算机应用技术等几个专业的协调发展。
(二)设计思路
1、以软件测试工程师对软件测试的能力要求为主线,设计课程体系,强化“工程属性”,突出“项目色彩”。
在课程体系设计中,课程组以软件测试工程师对软件测试的能力要求为主线,整合“JAVA面向对象程序设计”、“数据库原理及应用”、“软件工程”并融合到以多种实际企业项目作为案例的“软件项目综合实训”实践课程中,经过优化,强化课程的“工程属性”和“企业项目开发色彩”,将原来在传统课堂教学中仅仅通过简单实验无法实现的“集成测试”、“性能测试”、“系统测试”、“验收测试”等环节在实际工程项目实训中得到实现,并努力培养学生岗位职业能力。在课程教学中,坚持以实际项目案例中的工作任务为目标,融理论教学与实践教学为一体,以案例教学为导向,结合学生考取软件测试工程师资格证书的实际需要,加强学生职业能力和综合素质的培养,提高学生就业竞争力。
2、以企业工程能力培养为重点,实行分阶段培养模式
根据企业工程能力的形成过程,课程组将教学内容划分为基础理论阶段、技术应用阶段、职业发展阶段三个阶段。其中,基础理论阶段包括测试基础理论模块,主要介绍软件测试的基本理论与技术,测试用例设计和软件测试流程,侧重培养学生的测试思维,了解并掌握软件产品质量保证的基本思想和基本测试流程,以及软件测试的方法、技术,使学生能够设计出测试案例并通过手动测试实现测试案例,为全面掌握软件测试技术,后续实施测试和测试项目管理打下坚实的基础。技术应用阶段包括测试技术应用模块,主要介绍主流的自动化测试工具,包括IBM系列测试工具、HP QTP、HP LoadRunner,企业级项目的测试实施,培养学生将测试知识和技术应用于自动化测试实施的能力。职业发展阶段包括测试项目管理和职业素质教育两个模块,主要介绍软件测试项目管理的相关技术和方法、运用工程项目方式管理软件测试过程、测试企业工作模式和软件测试人员必备素质,培养学生的项目管理能力、团队协作能力和求职应聘能力。
适当加入游戏测试、手机测试、笔记本测试等学生感兴趣的内容。我们了解到学生对游戏测试这部分内容很感兴趣,那些平时听课不太认真的学生在这个问题上都举手要说上几句,跃跃欲试,也都能说出一二。所以,课程组在软件测试这门课程中经常讨论一些游戏测试这部分内容,以引起学生的学习兴趣。
四、改革教学模式和教学方法
(一)教学模式
本着“教师为主导,学生为主体”的思想,采用双证培养、分阶段培养和教学做评一体化教学模式[8]。
1、双证培养教学模式
实行“双证培养”教学模式,将学历教育与技能学习无缝对接,学生毕业后不仅能获得国家承认大学学历证书,同时还将获得国家劳动部高级职业技能认证证书。根据学生的能力特点,推荐学生考取软件测试助理工程师、软件测试工程师、软件质量管理工程师、注册软件质量保证师(国际认证)等资格证书。双证教育使学生专业能力更强、职业素养更高、综合素质更好、更符合企业用人标准。
2、教学做评一体化教学模式
将教学场所直接设在实训实验室,师生双方边教边学边做,理论和实践交替进行,把课堂教学转向工作情境,课堂由教师为主转向以学生为中心,突出学生动手能力和专业技能的培养,充分调动和激发学生学习兴趣。学生真正变成了学习的主人,而老师只是一个引导者或答疑解惑者,可以培养学生的终生学习能力,对加强学生的计算机动手操作能力和解决实际问题的能力也有很大好处。
最后教师跟大家一起对实验结果进行讲评,并对表现优秀的学生给予鼓励,同学们情绪高涨,学习积极性高。
(二)教学方法
根据学生的实际情况,综合采用多种教学方法[9][10]。
1、项目导向教学法
以从企业精选的项目为载体,在授课过程中对项目进行分解,根据学生的个性和他们的意愿分配不同的角色,并引导学生练习操作,体验项目流程,从而形成规范的开发意识和良好的IT职业素质。学生在校内所学习到的软件开发中的各类案例,在实际工作中能够及早地进行规划。
本课程以物流信息网这个项目为主线,把整个课程的教学演变成一系列的教学情境。按照实际工作中项目开发流程的顺序,依次展开,将“显性”的知识灌输,变为“隐性”的能力培养。通过具体项目的实施,引导学生在完成项目的过程中,掌握知识,培养能力。
2、任务驱动教学法
在课堂教学活动中,如果采用传统教学方法,很难激发学生学习兴趣。应该采用任务驱动教学方法,把一个项目分解为若干个大任务,每一个大任务,又分解为若干个小任务,将任务资料发给学生。学生在教师的引导下,课下先要进行消化,然后查阅各种必要的资料,理解知识并思考提出解决问题的方法。课上教师答复学生的问题,并引导学生更深层次的思考。通过这种方法充分调动学生的学习积极性,提高学习兴趣,使学生既学会理论知识又学会用理论知识解决实际工程中的问题。
3、启发式教学法
教师根据课程教学目的、内容、学生的知识水平和认知规律,采用启发诱导方法传授知识。该方法能够充分调动学生学习的积极性、主动性,促使学生独立思考、判断、归纳解答。能较好的培养学生学习能力,达到触类旁通的教学效果。
4、小组教学法
将班内学生分成若干个测试小组,每小组成员不超过7人,每组分配不同的软件项目任务。小组成员模拟与体验软件测试全过程工作职位和角色,使学生全过程适应工作职位的要求。
各项目小组在测试项目过程中,针对不同的开发阶段,撰写各开发阶段相应的文档,并制定相应的测试计划,设计典型测试用例,使用不同的软件测试技术和测试工具,完成不同的测试目标,并进行回归测试,以实现软件测试各单项专业知识与技能整合运用的目标。在整个测试过程可以体现“学以致用”的思想,实现理论与实践相结合。
通过演练项目开发测试,不仅让同学们切身体会到软件开发的整个过程,还让同学们对软件开发中各个角色有充分的了解,同时也更深刻的体会到团队合作的重要性。
五、教师队伍建设
加强双师队伍[11]建设,坚持“引进来,走出去”原则,积极引进具有企业开发经验的高素质人才进行课程教学和实验指导,同时注重本课题组青年教师队伍的培养。采用分批次选派青年教师参加山东大学齐鲁软件学院暑期实训和定期组织青年教师去软件公司实习等方式,将企业的软件测试经验直接带到教学中,提高教师的教学水平。
我们定期引进一些软件公司的软件测试人员或者聘请这方面的专业人士为教师、学生做定期讲座,以弥补我们在教学实践方面的缺陷。
六、实验实训条件建设
为培养应用型人才,本课程注重从不同侧面提高学生的实践能力。一方面,强化课内实验教学,在校内建有多个实训实验室,另一方面,与校外多家企业建立合作关系,为学生提供实训实习平台,开展产学研合作,构建校企合作培养人才的新模式。
本课程组注重密切与行业和企业的联系,与多家软件公司进行长期合作,建立了校外实习实训基地[12],为学生提供了生产性实训和顶岗实习的场所,在真实的职业环境中完成真实软件产品的开发,体验企业文化,培养职业态度和习惯。学生毕业后可成为这些公司的正式员工,真正实现了学校、企业、学生三方受益。
七、改革考核方式
大胆改革课程考核方式[13],采用30%平时成绩+30%实验成绩+10%项目考核成绩+30%期末考试成绩方式。平时成绩主要考核学生的课堂讨论情况、课后作业完成情况及课后自学情况。实验成绩根据学生在实验中的测试用例设计和操作情况,以及测试小组的分工合作情况给以评分。项目考核主要采用项目答辩的形式考核学生对基础知识的理解和掌握情况,由教师、行业专家、学生代表组成专家组给予评分。这种考核方式更注重的是对学生学习过程和实践操作水平的考核,避免学生为考试而学习,死记硬背现象。
八、小结
通过对基于工作过程的软件测试应用型人才培养模式的探索研究,学院已取得了实质性进展,建立了软件测试课程教学团队和软件测试实验实训基地。学生的软件测试综合应用能力有明显的提升,得到用人单位的好评,提高了学生的就业率。
参考文献:
[1]龚宇辉.软件测试课程教学改革研究[J].教育与职业,2010(24):130-131.
[2]温艳冬,石冬凌.软件测试课程三级项目教学实践[J].计算机教育,2010(22):77-79.
[3]胡宏银.软件测试课程教学方法探讨与实践[J].计算机教育,2007(03):11-13.
[4]http:///link?url=5xO-IodKMsEhsyUjQhIeqybDGR-8AypYffsnAnZdMWpLRpgEhLehfzGEROxq9fIC.
[5]孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.
[6]钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报(自然科学版),2007(03) :89-92.
[7]田小霞.软件测试人才培养的探索[J].福建电脑,2013(02):181-182.
[8]刘育熙,耿雪春.面向应用的软件测试人才综合能力培养模式研究[J].教育与职业,2009(11):111-112.
[9]范洪辉,朱洪锦,朱广萍.“软件测试技术与软件质量”课程教学改革探索[J].江苏技术师范学院学报,2012(12):151-153.
[10]周改云,马丽.行动导向教学在软件测试技术课程中的应用[J].电子测试,2013(04):192-194.
[11]兰景英.构建应用型软件测试人才培养实践教学体系[J].黑龙江教育学院学报,2011,(05):78-80.
[12]兰景英.应用型软件测试人才培养模式探索与实践[J].潍坊教育学院学报, 2011,(04):78-80.
[13]叶振,杜斌.开放式软件测试教学实践探索[J].现代企业教育,2011(01):140-141.
基金项目:
山东协和学院教改项目(2012xh01)。
作者简介:
李兆翠(1980.1-),女,山东莒南人,硕士,讲师,研究方向:软件工程。
关键词:软件测试;项目实训;实践教学;人才培养
作者简介:吴梦麟(1982-),男,江苏南京人,南京工业大学电子信息与工程学院,讲师。
中图分类号:G642.44 文献标识码:A 文章编号:1007-0079(2013)14-0126-02
近年来,随着中国内需市场的增长和国内外外包企业的合作加深,我国的软件外包行业得到了迅速发展。软件测试作为软件外包的主营业务之一,是加快软件企业与国际接轨,实现产品国际化的重要手段。随着软件开发流程的系统化和规范化,我国软件企业对软件测试的需求逐步增大,因此高校计算机专业中的软件测试人才具有良好的就业前景。
由于软件测试工作的特殊性,需要从业者不仅掌握一定的软件技术,同时也要对软件测试的方法和流程具备相当的经验。通过高校教育培养出来的计算机专业应届毕业生,虽然能够掌握基本的软件开发技术和软件测试理论,但是缺乏实际的测试经验和相应的行业背景知识,离企业的需求尚有一定的差距。目前高校计算机专业中软件测试教学仍以理论为主,实践动手能力和项目背景经验的培养相对不足,这些矛盾导致学生就业时很难适应企业的用人要求,企业也必须对招入的应届毕业生进行培训,花费相当的人力和物力。
项目实训是解决高校和企业之间供需矛盾的有效手段。在日常教学计划中引入项目实训,以实际测试任务为驱动,按照企业规范进行流程管理,让学生掌握测试过程中各阶段的技能,理论联系实践地接受企业化的锻炼。通过实训课程,使学生不但能够学习到实际测试经验,而且能够增强团队意识,进一步缩小毕业生与职业测试工程师之间的差距。
一、软件测试项目实施
1.测试项目简介
本文所述的软件测试实训项目是基于校企共建模式,由南京工业大学(以下简称“我校”)软件外包实验室提供软件测试的场所和专用的硬件设备,从合作的软件公司引入相应的测试平台、管理流程和测试报告文档的测试项目。
本项目的内容是针对前期开发的教师管理系统进行测试。该系统是教学部门的业务管理支撑系统,测试主要围绕教师信息的查询和更新操作的管理。通过对这些功能模块的测试,增强系统的易用性、稳定性、可配置性,消除信息孤岛,进一步提高数据信息的应用水平。
在测试环境搭建过程中,服务器的软硬件配置要与该系统的实际运行环境保持一致。对于测试计划、测试方案和测试用例等文档的修改、更新操作,则采用svn版本管理工具来进行控制。学生可以通过svn服务器平台,按照进度提交每日的测试用例文档,并填写日志记录测试进度和每天的测试工作。
2.实训计划和人员管理
软件测试实训安排在我校外包实验室中进行,采用与企业相同的管理模式集中训练,由相关教师和企业工程师来指导测试流程。测试团队的成员来自于我校电子与信息工程学院计算机专业的大三、大四学生,以及对软件测试感兴趣的相近专业的学生。这些学生具备基本的软件编程能力,并且对测试的基本理论有一定的了解。根据学生自身水平和对项目的熟悉程度,可以将其划分为不同角色,其中包括开发人员和测试人员。开发人员由原来参与系统开发的部分学生担任。测试人员可以分成不同的小组测试不同的模块,每个小组设置一个测试组长,负责测试项目管理,其余组员则负责执行测试用例,各小组都有一名教师作为指导教师,控制模块的测试进度。整个测试实训项目安排在假期进行,用时半个月,每天工作8小时。每天早晨由测试组长安排当天的测试任务,并对前一天的测试结果进行总结。在每个时间节点,由指导教师和小组成员对相关测试文档进行评审。
3.测试项目进程
本项目的实际流程图如图1所示,在项目初始阶段,担任开发人员角色的学生叙述产品需求和业务流程,为编写测试计划做准备。该测试项目主要分为5个阶段:测试计划制定、测试方案编写、测试用例设计、多轮系统测试和测试系统报告提交。每个阶段都力求达到规范化、细致化的测试目标,同时每个阶段都要经过教师和各个组员之间的评审,如果评审通过,可以开始下一阶段的工作;如果不通过,则需要完善后继续评审直到通过。
(1)测试计划制定。在了解了教师管理系统的需求以后,结合学生的基本情况、系统模块数量和测试的周期来制定测试计划。测试计划要涵盖测试的范围和环境、测试人员的管理和测试进度安排。考虑到参与实训项目的学生缺乏相关经验,因此测试计划要重点突出每个测试小组所对应的系统模块,以及测试流程中每个阶段所对应的完成日期。该测试计划由各组组长和指导教师制定,最后需各小组评审后通过。
(2)测试方案编写。测试方案是按照系统需求说明书详细的分析测试的模块,指导后续的测试用例的编写工作,重点在于对模块具体功能的理解和测试对象的分析。在这一阶段,首先由担任开发人员角色的学生来介绍系统模块的基本功能,并以文档的形式向对应测试组成员提交;然后由指导教师以具体测试点为例,介绍详细的测试用例写法;最后,由各组组长将测试任务分配给组员,各组员在理解的基础上开始测试用例的设计。测试方案完成以后由各组组长汇总,并在组内进行评审。
(3)测试用例设计。测试用例的编写是针对各功能模块测试而设计的一组测试输入、执行条件以及预期结果,也是本实训项目的重点内容。在对模块的特性和功能了解的基础上,设计系统的测试点,设计时应考虑角色权限、验证点和测试描述。在设计验证点的过程中,鼓励学生展开讨论,力求做到无疏漏;同时在测试描述时,可以将等价类划分、边界值、错误推测等常用方法与书本理论相结合,通过具体的实例加深学生对所学知识的理解。最终的测试用例以Excel表格形式列出,其中包括编号、重要级别、操作步骤、预期输出和实际测试结果等条目。
(4)多轮系统测试。按照测试用例的具体内容,可以进行多轮的系统测试。根据测试结果,扮演开发人员角色的学生对缺陷进行修改。通过这一过程,不但使学生认识到开发过程中存在的问题,而且积累了开发经验,为今后规范化的编程打下了基础。
(5)测试报告提交。通过半个月的实训,学生经历了规范化的测试流程,测试报告的编写是对测试内容的概括和总结。报告的内容主要有以下三个方面:通过对测试结果的分析,得到对软件质量的评价;总结本次的测试过程,为制定以后的测试计划提供参考;评估本次测试计划和测试执行是否符合规范。通过本次实训,学生普遍体会到从理论知识到实践的过程,明确了规范化的软件测试方法,同时对软件编写中隐含的错误和缺陷也有了一定的认识,为今后的软件开发打下一定的基础。
二、软件测试实训存在的问题和解决办法
本次软件测试实训基本达到了预期的效果,学生不但学到了规范化的测试流程,提高了职业软件素养,而且通过互动和交流,发现了教学中存在的一些需要解决的问题。首先,本次软件测试实训是针对上一次实训开发的系统,离企业的实际系统测试尚有一些差距;其次,参与的学生缺乏实际经验,对软件测试认识不足,导致测试方案和测试用例编写不够规范、完善;另外,相应的管理需要加强,在实训过程中存在迟到、早退以及缺席的现象,从而影响了测试进度。
针对以上问题,在今后的实训过程中,测试项目要尽量切合企业的实际需求,同时在测试方案和测试用例的评审中,要加强教师和学生的沟通,强调测试流程的规范性,可以多鼓励高水平的学生带低水平的学生。另外,可以采取企业现行管理方式对实训进行管理,如引入考勤制度、评审制度等。
三、结语
软件测试是我国软件产业高速发展中需求缺口较大的一个行业,培养具有相关经验和符合企业需求的软件测试人才是目前高校计算机专业需要解决的核心问题之一。本文通过研究软件测试实训项目,探索了软件测试专业人才的培训方式以及在此过程中遇到的问题,对研究校企联合的人才培养模式具有重要意义。
参考文献:
[1]徐瑾.中国软件外包业研究综述与展望[J].经济学动态,2010,(11):75-78.
CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人与职业技能、人际团队能力和工程系统能力四个层面,要求以综合的培养方式使学生在这四个层面达到预定目标。CDIO不仅继承和发展了欧美20多年来工程教育改革的理念,还提出了系统的能力培养、全面的实施指导、完整的实施过程和严格的结果检验的12条标准,具有很强的可操作性。
2综合实训课程的定位与培养目标
按照循序渐进,由浅入深,逐层推进的原则,盐城师范学院信息科学与技术学院将软件工程专业的实践教学体系分为四个层次:课程实验、课程设计、综合实训、毕业设计。其中,综合实训是以前期课程实验和课程设计为基础,综合运用多门相关课程(群)知识完成一个工程项目的实战训练,并作为后续毕业设计的预演,是整个实践教学体系中承上启下的关键环节。在软件工程领域,软件开发与软件测试是目前两个主流的就业方向,也是综合实训课程训练的重点。软件开发综合实训要求以软件生命周期为主线,综合运用程序设计、数据库应用、软件工程、软件项目管理等学科知识,严格遵守软件开发的流程与规范,完成一个软件项目的开发,最后提交软件产品和相关技术文档;软件测试综合实训要求学生以软件开发综合实训所完成的软件产品为被测对象,综合运用软件测试与质量保证、软件测试流程与方法、测试框架与自动化测试等学科知识,使用软件测试的方法与技术,设计测试用例和测试脚本,完成被测软件的功能测试与性能测试,生成测试报告,并对测试结果进行分析。综合实训的培养目标为:通过软件开发与软件测试项目的实战训练,全面提升学生综合运用所学知识与技术解决实际工程问题的素质与能力,进一步加深学生对工程化、系统化原则与方法的理解,为胜任现代软件工程环境下高质量软件的开发、测试和维护工作奠定坚实的基础。
3CDIO模式下课程改革与实践
根据综合实训课程的定位和培养目标,借鉴和吸收CDIO工程教育理念和标准,按照“以CDIO培养大纲为指南、以项目为载体任务为驱动、以工程能力培养为目标”的原则,对我们综合实训课程改革进行了探索与实践。
3.1全真模拟企业环境,实施一体化训练模式
软件开发和软件测试是综合实训的主体内容,传统的训练模式将二者割裂开来,分两个阶段分别完成实训项目,这种方式没有考虑软件开发与软件测试的内在关联与协同性,与企业真实环境也不相符合;并且由于两个实训阶段时间跨度较大,项目衔接性差,效率低下,实训效果也大打折扣;而在真实的企业环境中,软件开发小组和软件测试小组共同对同一个项目负责,各司其职,协同完成整个项目。鉴于此,我们采取“全真模拟、同步协作、角色互换”的策略,实施软件开发与软件测试一体化的训练模式。具体地说,整个实训过程完全模拟企业真实环境,将某个项目分配给由若干学生临时组成的项目组,该项目组又细分为开发小组和测试小组,分别负责软件的开发与测试工作;项目完成后,开发小组和测试小组角色互换,重做该项目。实践表明,一体化的训练模式能实现软件开发与软件测试的无缝衔接,学生能在更为真实的环境中参与整个项目过程,体验不同角色的职责范围,并通过不同的角色转换,使学生更深刻认识到开发人员与测试人员协同合作对完成整个软件项目的重要性。
3.2项目驱动,全面实践CDIO
CDIO的核心就是企业与社会环境下的构思、设计、实现和运作系统,它展示了一个产品或系统完整的开发过程,也体现了“做中学”和“基于项目的教育和学习”的精髓。从软件开发与软件测试的角度,无论是以软件生命周期为主线的开发过程,还是以测试流程为主线的测试过程,无不体现着软件产品从构思到运作的整个生产过程,与CDIO理念不谋而合。这里,我们以项目为载体、任务为驱动,以CDIO方法论为指导,严格按照“构思、设计、实现和运作”四个不同阶段来开展实训过程,以培养学生对产品、过程和系统的构建能力,增强学生的工程化意识。CDIO与软件开发、软件测试过程的对应关系
3.3分组互学互助,培养团队协作能力
团队能力是CDIO大纲要求工程毕业生必备的一种能力,也是软件企业非常看重的一种职业能力。在实际实训过程中,我们模拟企业真实环境,将所有学生分为若干项目组,每个项目组又细分为开发小组和测试小组,各小组由一名组长和若干名组员构成。根据任务分工不同,每名学生都被赋予一定的角色,组员在组长的指挥协调下通力合作,共同完成实训项目。实践表明,分组模式能较好地激发学生的学习热情,提高学习效率,而且也营造了良好的学习氛围,组员之间分工协作,互学互助,学生的沟通能力、协作精神和团队意识大为提升。
3.4面向全体,务实勿虚,促进共同进步
综合实训是一种典型的自主学习课程,学生在任务的驱动下以小组为单位协作完成实训项目,但由于任务分工不合理、学生自制力差等原因,容易导致小组内个别技术较好、自觉性高的学生承担大部分甚至全部工作,而部分学生却人浮于事,使团队分工协作流于形式,不利于全体学生的共同进步与提高。为避免此类现象的发生,我们考虑在角色分配和任务分工时,尽量使学生都能承担软件设计、编码、测试用例设计、脚本设计、测试实施等较为具体的工作,使学生通过具体的训练来提高专业技能,而对于需求分析、计划制定、总结报告等相对较“虚”的工作则由组长带领全体组员共同完成;同时,任务分工也充分考虑学生原有的技术基础、兴趣爱好和特长。这种分工方式在尊重学生个体意愿的基础上使得每个人都有具体明确而又力所能及的任务分工,能充分调动学生的学习积极性,激发学生的学习潜能,促进全体学生的共同进步与提高。
3.5实施多维度考评体系,注重过程考核和能力考核
考核是对学生学习成果的认定和评价,良好的考核机制能对学生的学习过程和学习动机产生正确的指引作用,促进培养目标的达成。在实训课程的考核上,我们以CDIO大纲要求的能力培养为导向,学习过程与学习结果并举,实施多维度的考评机制,每名学生的成绩由平时成绩、所在小组成绩和个人成绩三部分组成。其中,平时成绩主要考评学生的职业态度与能力,小组成绩主要考评学生所在小组的整体表现和工程实作能力,个人成绩主要考评学生个体所承担任务的完成质量,且每项成绩的考评方式也是多元的,力求做到公平、公正、合理。在小组内部,同组学生的小组成绩相同,但平时成绩和个人成绩各异,引导学生在努力完成各自任务的同时,重视组内的协作互助,并通过各个个体的高质量工作提高整个团队的工作质量。实践表明,该考评体系既重视最终学习成果的呈现也关注学生学习过程中的表现;既重视团队整体的工作效率也关注学生个体在团队中的价值;既强调学生专业技能的训练和工程能力的培养也关注学生职业素养和个人能力的提高,有效避免了传统评价方式只看结果不看过程、评价指标单一化、评价结果趋同化的弊端。
4结束语
【关键词】计算机专业课程体系改革
计算机技术是飞速发展的一个领域,尽管各类高校开办有计算机专业,但是计算机类人才缺口仍然很大,由于社会的需求与高校的人才培养模式不相符,导致出现了以下现象,一方面,用人单位却反映人才紧缺,要找到合适的人才很难;另一方面,当计算机专业的学生就业时,往往感到工作难找,要找到专业对口的工作很难。因此,对计算机科学与技术专业的课程体系结构、课程教学内容、教学形式等方面将进行一系列的改革,是迫在眉睫的任务。
一、计算机科学与技术专业存在的主要问题
1、教学内容陈旧,跟不上计算机行业发展
计算机行业是飞速发展的行业,新理论、新技术日新月异,目前计算机专业在课程设置上普遍存在的问题是:教学内容总是滞后,不能体现专业发展的新技术,因此造成了教学内容陈旧。用人单位反映的最多问题之一是学生的专业知识结构落后。
2、重理论轻实践,动手能力差
重视理论轻视实践,理论与实践脱节,很多实践课程仅局限于几个验证性实验,缺乏综合性的实验,缺乏足够的实践训练,特别是针对职业岗位的实践训练,因此动手能力差,这也是用人单位反映比较多的问题,直接导致了培养的学生与社会需求脱节。
3、职业特色体现不够,岗位适应性差
学生要么对职业岗位不适应,要么对职业的适应期较长,不能很快融入企业环境。虽然具备了胜任职业岗位的知识和能力,但是缺乏适应企业管理、人际关系的能力,很难在企业找准自己的位置,影响自己的才干发挥,最终面临被企业淘汰的危机。
二、推进计算机科学与技术专业课程体系改革
由上面分析可知,对计算机科学与技术专业课程体系进行改革,是当前急需解决的问题,下面对如何推进计算机科学与技术专业课程体系改革谈谈自己的一点看法。
1、计算机专业课程设置的原则
计算机专业课程设置的原则是厚基础、重实践、求创新。计算机科学技术发展很快,但是其基本原理,基本方法是相对稳定的,因此,只有把基础知识学好,才能为今后的发展打好良好的基础,才能为学生可持续发展提供助力。计算机专业是一个实践性很强的专业,因此不能满足于原有的课程实验,还要加大专题实验,专题实训,特别要重视针对性的职业岗位实习。计算机技术的发展可以说是日新月异,新技术新理论层出不穷,在有条件的情况下必须开设一些比较新的课程,从而实现培养人才与社会需求的对接。
2、计算机专业课程设置
计算机专业学生主要学习和运用计算机科学与技术基本理论及专业知识,接受计算机应用系统设计与开发的基本训练,根据计算机目前的发展现状和未来发展趋势,本专业应分3G应用技术模块、企业计算技术模块和软件测试工程技术模块等三个子方向。
在课程设置上,三个子方向修读同样的专业基础课和专业必修课,这些课程构建了本专业基础课程体系,是专业核心部分;而在专业选修课上三个子方向各有侧重,以不同的课程设置作为不同的修读方向展开专业技术培养。着重培养计算机应用软件设计、3G应用程序设计、企业ERP应用系统规划设计和开发、软件及应用系统的测试等不同方向的综合知识和技能。下面我们分别以三个方向的专业必修课和专业选修课为例来展开讨论。
专业必修课设置:软件工程、软件代码开发技术、操作系统及应用、计算机网络技术、数据库原理及应用、形式语言与自动机、人机交互的软件工程方法。
专业选修课设置:
A.3G应用技术方向
移动通信理论、3G通信技术基础、移动增值业务分析与解读、3G通信通信软件设计与使用、MicrosoftMobile移动应用开发、流媒体技术制作及应用、手机应用开发(JAVAMe)、3G业务技术开发、终端技术开发实践、3G业务与终端技术开发、手机游戏开发实践、3G工程师认证强化训练、3G终端增值业务分析与项目实践、3G工程职业实践。
B.企业计算方向
软件设计与体系结构、MFC/C++应用技术开发、软件质量保证与测试、软件项目管理、大型数据库系统、ERP技术及项目实践、CIMS技术及应用、数据仓库与数据挖掘技术、软件设计师认证强化训练、J2EE项目开发实践、.NET项目开发实践、ERP软件项目职业实践。
C.软件测试技术方向
基于MFC/C++应用技术开发、J2EE应用技术开发、软件测试过程与用例设计、LINUX/Windows平台测试技术、数据库应用开发与测试、软件测试工具及应用、软件测试工程师认证强化训练。
三、计算机科学与技术专业课程体系改革实践总结
根据以上课程体系改革方案,我们对2009级计算机科学与技术专业(应用技术方向)进行了改革试点,近三年的实践表明,学生的学习目标明确,学习兴趣比前几届浓厚,学习积极性高涨,我们又邀请了相关用人单位对我们的课程进行了讨论,对学生进行了岗位技能测试,用人单位给予了很高的评价,认为学生所学能够适应社会发展,看好他们的就业前景。
参考文献