软件测试学习计划十篇

时间:2023-03-17 21:59:05

软件测试学习计划

软件测试学习计划篇1

关键词: 软件测试; 教学模式; 改革; 探索

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)11-52-02

0 引言

近年来,在经济全球化和信息技术飞速发展的带动下,软件产业已成为国家经济发展的重要支柱之一。在软件开发的整个生命周期中,软件测试是不可缺少的重要环节,其成效直接决定了软件产品的质量。软件测试行业日趋规模化和规范化,用人单位对软件测试人才的需求量也不断增长。因此,软件测试人才的培养成为众多高校计算机专业培养的新热点[1]。然而,很多高校开设的软件测试课程不能满足市场对软件测试人才的需求。学生只是学会了书本上条条框框的理论知识,而在实践中遇到各种不同类型、不同功能的软件时,仍然不懂活学活用。因此软件测试课程也应与时俱进,引入先进的教学管理理念和教学模式以适应市场发展的需要。

1 软件测试课程教学模式的现状

1.1 软件测试课程简介

软件测试是一门迅速发展的新兴学科,是计算机软件专业、计算机应用专业、计算机信息管理等专业的一门重要课程,是计算机软件开发与测试、软件测试专业高年级学生的必修课。软件测试课程是实践性、应用性很强的课程,其主要目的是使学生在学习程序设计语言、软件工程等课程的基础上,熟悉软件测试岗位的工作职责,了解软件测试的方法、原则、规范和管理,掌握软件测试工作流程、测试技能,培养学生的实际动手操作能力和专业实践能力,为就业打下坚实的基础。

1.2 软件测试教学存在的问题

软件测试课程教学模式是指:软件课程教学的总体设计。它是一个完整的功能体系,包括教学目标的确立,教学计划、进度的制定,教学方法、手段的选择和实施,课程考核的方法和手段等等[2]。本部分将对传统教学模式包含的各部分进行讨论,分析目前该课程教学模式所存在的问题。

1.2.1 教学计划及进度

目前大部分高校的计算机相关专业都是在大三下学期开设软件测试课程。学习的内容主要包括软件测试的基本概念、黑盒/白盒测试用例的设计技术和测试自动化工具的使用。由于该课程学习过程过于短促,加上学习内容拘泥于书本化,所以在课程学习结束后,大部分学生对该课程的印象如过眼云烟,没有留下多少记忆。即使是学习特别用心的学生,所学到的也仅是书面的内容,掌握的也只有软件测试的基础理论知识,极度缺乏实践环节的经验,当进入企业后,仍然无法圆满完成一个软件项目测试的实际工作。

1.2.2 教学方法及手段

目前高校开设的软件测试课程所采用的教学方法及手段与其他课程一样,即课堂讲授和实验室实践相结合。这种教学方法属于填鸭式的教学方法。首先,学生在学习的时候完全属于一种被动式的学习,学习效果不好;再有,实验室实践环节只是设计简单案例的测试用例,与公司/企业需要测试的大型软件相差甚远,在测试方法、测试过程和测试文档要求上都有很大的区别。因此,这种传统的教学方法及手段无法适应市场的需求[2,4]。

1.2.3 考核的方法及手段

传统的软件测试课程的考核方法及手段仍然是采用试卷命题闭卷考核的方式。而软件测试课程是一门实践性和应用性很强的一门课程,这种考核方法只能考核学生对理论知识掌握的程度,并不能考核出学生对软件测试技术掌握的情况。另外,学生在学习过程中的表现远远比一次考试的最终结果更能体现出学生真正的水平,所以这门课程的最终成绩也不能由最后一次的笔试结果来决定。

2 软件测试教学模式的改革

根据企业对软件测试人员技能的实际要求,我们对教学计划、课程设计、教学方式的实施及考核方式进行了调整。

2.1 教学计划调整

教学计划一改以往一学期学完软件测试所有内容的传统做法,分阶段完成对该课程的教学。这样一方面使学生以循序渐进地过程学习该课程,印象更为深刻;另一方面,学习的内容除了书本上的基础理论之外,还包括了丰富的实践内容。

在学生学习完程序设计语言课程后,第二学年的第一学期开设软件测试概论这门课,让学生对软件测试的基础理论知识有一定的理解;第二学年的第二学期通过抛锚式教学法开设综合测试课程,让学生掌握有关自动化测试工具的使用并培养学生团队合作意识。

第三学年开设一门完全是以实训为主的课程,让学生能够掌握不同环境平台下的测试方法,并根据对需求规格说明书的分析,自动生成测试用例,这将是软件测试的一种趋势。

第四学年让学生到跟我院合作的企业去实习,真正掌握软件测试的实践技能,以适应市场发展的真正需求。

2.2 教学方式采用“抛锚式”教学法

传统的做法是介绍软件测试的理论,以简单的案例进行说明。由于内容本身抽象,缺乏足够的实践,使得学生感觉枯燥乏味,且不会活学活用。为了激发学生的学习兴趣,并根据学习内容的变化,我们采用了案例抛锚和项目抛锚两种教学方法。

第一,采用案例抛锚教学。这种教学方法主要应用在教学计划的第一阶段,即软件测试概论和综合测试阶段。选择好的案例对帮助学生理解软件测试技术起到至关重要的作用。我们根据案例的难易程度,将案例和软件测试理论与技术相结合,把案例分成基础案例和综合案例两种[3]。例如在学习《软件测试概论》中白盒测试、黑盒测试技术时,应尽量选择简单的基础案例,让学生把更多的注意力集中在测试的方法上而不是案例本身上,这样更有利于学生理解测试技术的原理。在学习综合测试的时候,我们提供给学生的是一些比较复杂的综合案例,对学生进行分组,以小组为单位来解决较为复杂的测试问题。通过团队进行的整个测试过程既可以让学生感受到一个综合案例测试的工作流程、实施细节及注意事项,又可以促进学生沟通与协作的能力。在综合测试的整个过程中,还需要应用到各种自动化测试工具, 包括WinRunner功能测试工具、LoadRunner性能测试工具、TestDirector测试管理工具等,为学生毕业后从事真正的测试工作打下坚实的基础。

第二,采用项目抛锚教学。这种教学方法主要应用在教学计划的第二阶段,即在软件测试实训过程中使用。在学生掌握了软件测试的相关测试技术之后,需要将所学的知识灵活运用到实际环境下的软件测试中。因此,该阶段的学习内容主要以对项目的测试为主,选择的项目必须有不同的软件和硬件要求以及特定的配置环境,这可以让学生提前适应实际测试工作的流程,进一步提升学生对所学的软件测试理论知识和测试技术综合应用的能力。针对每个具体的项目,按照软件测试的三个主要阶段(测试计划、测试用例获取、测试有效性度量),充分将软件测试理论与实践结合起来,通过对不同环境下项目的测试,找出软件测试技术各阶段之间的相互联系,从而达到软件测试的教学目的和培养目标。

2.3 校企合作

为避免学校培养出来的学生与社会需求脱节,应使学生尽可能早地了解市场的行情,以掌握市场所需要的各项测试技能。因此,非常有必要让学校与企业进行合作,合作的方式可以有以下几种。

第一,请企业的专家给教师、学生进行技术讲座或市场信息的宣传,让教师和学生充分了解市场的需求以及学生需要掌握哪些技能[3],使得老师的教和学生的学真正做到有的放矢。

第二,与企业建立学生实习合作。争取有一定数量的学生参与企业软件测试实习并获得就业指导。

第三,与企业合作进行外包测试。

2.4 课程考核方式

考核分数由两部分组成:平时成绩占50%,期末考核成绩占50%。而期末考核由试卷命题闭卷考核的方式改为独立完成一个实际软件项目的综合测试,以此更能考核学生对软件测试的综合能力。

3 结束语

本文对“软件测试”课程的教学模式改革进行了探索,通过调整教学计划并采用“抛锚式”教学法,取得了较好的教学效果。新的教学模式以培养多层次、应用型、复合型软件测试人才为目标,全面加强素质教育,重点培养学生的团队精神、创新能力和实践能力,能够真正实现人才培养与市场需求的一致。

参考文献:

[1] 周元哲.“软件测试”教学改革的探索和实践[J].计算机教育,2008.22:16-17

[2] 聂静,吴琳.探索软件测试课程教学改革方案[J].中国校外教育(理论),2011.z2.

软件测试学习计划篇2

关键词:职业能力;项目导向;任务驱动;软件测试课程

中图分类号:TP311.53-4

1 研究现状

随着信息化的建设和发展,软件的应用范围越来越广,对软件质量的要求也是越来越高,相应的对软件测试的重视程度也越来越高。社会上对专业软件测试人才的数量需求也快速提高。

同时《广东省十二五规划纲要》提出加快发展软件产业等一批战略性新兴产业。而软件产业的发展不仅需要大批熟练掌握程序设计能力的专业技术人才,同时也需要大批软件测试的专业技术人才。高职院校培养的是面向生产与服务第一线的应用型人才,为产业发展提供必要的人力资源支撑。增强高职计算机专业毕业生的软件测试职业能力对软件产业具有重要推动作用。

目前高职院校开设的计算机相关专业较多,软件程序设计专业课程也很多,而且地位重要,但是软件测试课程开设还较少,对软件测试课程的开发和研究还比较少。本人认为,企业对软件测试人才的需求显著增加,而且软件测试工作的门槛相对程序设计而言会低一些。我们能早一步研究和开发“基于项目导向、任务驱动的软件测试课程”能显著提高高职高专的软件测试课程教学质量,同时能使我们的毕业生具备软件测试工作岗位需要的职业技能,毕业就能成为企业合格的软件测试技术人员。

“项目导向”是在教学过程中,以企业项目为导向,模仿相应工作岗位,使学习过程和真实企业项目融合,学习过程就是完成一个项目的过程。通过这种实践性教学,学生能掌握对应职业岗位所需的知识和技能,是一种真正意义上的职业教育。

“任务驱动”是在项目导向的基础上,把项目按照企业工作过程,划分成一项项的工作任务,教学过程中是按照企业要求的工作任务实施教学,强调的是职业性、专业性和严谨性(项目的工作过程的完整性、工作性、实际性),力求教学过程就是完成实际工作中的项目任务的工作情景,以达到培养学生实际工作能力的教学目的。

目前软件测试课程还是以“边讲边练”为主,任务驱动已经有所体现,但“项目导向的任务驱动”并没有在教学过程中显著体现。本人有多年企业项目管理和软件质量保证经验,对于软件测试项目的实施有丰富的经验。本人考虑结合自己的企业项目经验和企业新人培养过程的经验,开展“项目导向、任务驱动的软件测试课程”研究和开发,希望对于职业教育的教学改革有所帮助和提升。

2 研究方法与进度(含教学试验的措施)

2.1 研究思路和方法

以软件测试工作岗位典型工作任务进行分析和分解具体的项目,项目分解为工作过程任务。确定实施教学试验的班级,设计试验方案和思路,在班级教学过程中试验“项目导向、任务驱动的课程”,在试验过程中不断修正问题,完善课程的研究和开发。

首先制定软件测试课程的教学大纲,明确教学目标和教学内容,以及要求。其次,选择符合学生现状和教学需要的项目,项目要求难度适中,尽量覆盖主要的工作技能需求,周期和教学课时能尽量匹配。项目具有一定的代表性,项目中所学习的工作技能是通用性的技能。然后,设计合适的教学进度表,把项目过程划分成具体工作任务,知识学习和任务完成同步开展,以任务驱动学习。之后,制定教学方案。最后,在选择试验的班级实施“项目导向、任务驱动的软件测试课程”。

根据班级教学实施效果,修正改进教学大纲、教学进度表、教学方案设计,完成课程的研究和开发。

2.2 研究的安排和阶段性成果

阶段一:资料收集与分析,理论研究,制定软件测试课程的教学大纲,选择教学过程中需要实施的企业项目。

阶段二:结合企业的软件测试项目工作过程和软件测试课程教学大纲,设计合适的教学进度表,并制定初步的教学方案。

阶段三:在选择的教学班级进行试验,在试验过程中研究课程,并修订课程大纲和教学计划以及教学方案。

3 主要研究内容和解决的问题

3.1 主要研究内容

本文主要研究基于项目导向的任务驱动的软件测试课程开发,根据软件测试工作的特点,制定合理的软件测试课程大纲,把项目实施过程和教学过程融合,建设特色的软件测试课程,从而提高学生的软件测试技能,一方面提高教学效果,另一方面培养职业的软件测试人才。

研究第一项:软件测试课程大纲。根据本人多年的工作经验,同时调研多家企业的软件测试工作人员工作过程,企业对软件测试工作人员的招聘要求,确定软件测试课程的主要学习内容和需要学习的技能。进而制定出符合企业和学校及学生的软件测试课程大纲。

研究第二项:选择合适的企业项目,合理划分任务。项目导向的任务驱动的软件测试课程的研究开发,对于项目的选择,任务的划分是非常重要的工作。选择的项目要求符合学生的特点,能适应学校的教学,项目的难度,代表性,覆盖的知识面,需要涉及的工作技能等都需要认真研究和考虑。而任务的划分也需要结合学生的特点、接受程度,需要先易后难。

研究第三项:如何设计好的教学进度和方案,把项目过程和教学有效的结合。这个过程的研究需要在教学过程中不断的试验,尤其是要研究新技术的学习,项目任务的理解,任务的完成程度,客观教学进度限制,项目任务的完成质量,如何在任务完成过程中培养学生的专业技能、职业修养、工作习惯等。

研究第四项:开发课程体系。根据研究和试验,开发基于项目导向、任务驱动的软件测试课程。

3.2 解决的问题

(1)通过对企业工作岗位典型工作任务研究,确定典型工作任务,制定符合软件测试岗位需求的教学大纲;(2)通过对项目选择和任务划分的研究,选择合适的项目,并设计一系列具有实用性的项目教学任务;(3)课程中每个任务都按照“工作任务――要求的技能――学习理论知识点――练习――完成项目工作任务――检查工作任务质量”的结构进行组织。

4 研究成果

通过本人在4个教学班级的试验和研究:基于企业需求制定教学大纲,引入企业真实项目作为导向,深入剖析项目工作任务,针对项目工作任务的特点,划分教学任务设计,提高了实践教学的效果。促使学生在学习过程中完成项目的实施过程,同时提高了职业工作技能。

经过试验证明,软件测试课程在基于项目导向的任务驱动式教学中,学生能充分发挥主观能动性,围绕工作任务要求开展实践探索,教师不再是课堂的中心,单方面地向学生灌输知识,而是在学生完成任务的过程中起到组织、引导、督促、协助、评价的作用。

采用这种课程教学,可以解决传统教学存在的无法充分调动学生的积极性和创造性、不利于培养学生的实践能力和职业能力的问题。

参考文献:

[1]刘洪,刘晖,周明君.论软件测试[J].计算机光盘软件与应用,2014(06):86-87.

[2]库波.基于工作过程软件测试体系构建探讨[J].计算机光盘软件与应用,2014(06):95-96.

软件测试学习计划篇3

关键词:软件工程;培养目标;实践

中图分类号:TP311.5-4 文献标识码:A文章编号:1007-9599 (2011) 17-0000-01

Analysis of the Training Road to Software Engineering

Zhang Lin

(Tongji University,Shanghai200092,China)

Abstract:This paper analyzes the current software engineering training objectives as well as software engineering professionals in the community capacity needs,and finally discusses the software engineering training effective way.

Keywords:Software engineering;Training objectives;Practice

21世纪以来,信息产业得到快速发展并成为国家的支柱产业,其中的软件行业更是得到前所未有的快速发展。为了满足市场需要,软件工程专业成为计算机科学与技术专业的一个重要的专业方向。

软件工程涵盖了包括计划、分析、设计、测试、实现、交付、集成、维护等在内的软件生命周期的所有阶段,作为软件技术人员,要掌握软件基本工程的概念、原理、技术和方法,掌握面向对象的独立开发软件的方法,掌握并了解软件度量和管理的方法,要了解如何去安排项目的组织和进度,如何保证项目的质量,从而进行有效的项目策划和软件开发。目前,我国软件行业正遭遇软件人才结构性矛盾突出的瓶颈,缺乏高层次、高素质的创新型软件人才,且人才规模不足以满足产业的发展需求,人才知识结构不合理,缺乏软件架构、项目管理、文案管理、测试等方面的人才,难以满足现实需求。因此,有必要探讨软件工程人才的培养策略,为国家真正培养应用型软件工程技术人才。

一、软件工程专业人才培养目标及能力要求

(一)培养目标。软件工程的培养目标是:培养具有良好的科学与工程素养,系统掌握计算机基础理论、软件管理及软件开发等计算机应用技术,能综合运用工程化方法、技术与工具从事软件分析、开发、设计及维护等工作,具备工程项目的组织与管理能力、团队协作能力的高级应用型软件工程人才。

(二)能力要求。应用型人才的主要任务是将成熟的技术和理论应用到实际的生产和生活中,其培养的关键是强调对学生专业核心能力的培养。对于应用型软件工程人才,其专业核心能力包括以下几个方面。(1)软件分析与设计能力。掌握用户需求调研和需求分析方法,能够将需求转换为系统的设计;掌握结构化和面向对象分析方法与设计方法,熟悉常用的软件分析与设计开发工具;熟悉UML建模技术和常见的软件设计模式;能够设计和定义软件构架、模块划分的接口协议;具备数据库结构设计能力;能够运用相关工具进行模块的详细设计;能够设计用户界面;具备用户需求说明书、软件规格说明书、概要设计说明书、数据库设计说明书、详细设计说明书等软件开发文档的撰写能力。(2)软件测试能力。掌握常见的单元测试、集成测试、性能测试和回归测试技术;掌握常用的白盒与黑盒测试方法,具备测试用例的设计能力;掌握常用的软件测试工具;熟悉实际的软件测试流程,能够搭建测试环境;掌握软件测试管理技术,具备软件测试计划、软件测试报告等测试文档的撰写能力。(3)软件实现能力。掌握结构化程序设计技术和面向对象程序设计技术,至少熟悉一门高级语言编程技术;熟悉常用的IDE开发工具,掌握软件的编辑、编译、运行和调试技术;能够运用开发工具的联机帮助来解决编码问题;能够运用打包工具制作产品的安装程序,能够编写用户使用手册、安装说明等文档;熟悉嵌入式应用软件的编程、调试、部署技术;具备硬件驱动程序开发能力。(4)工程综合能力。掌握项目范围界定、计划制订及进度监控技术掌握软件配置技术,能够使用配置管理工具;掌握软件开发风险评估与控制技术;掌握常用的软件项目管理工具;能够基于用户的反馈情况进行软件产品的维护,并能对用户进行培训;具备软件开发计划、可行性分析报告等项目管理文档的撰写能力。

二、软件工程专业人才培养模式

(一)广泛寻求企业合作,建立实习实训基地我们积极寻求与相关专业领域的企业合作,与人才实训基地等企业建立了密切的合作关系,为学生创造良好的实践学习的平台。

(二)维护与企业的关系,除了实习基地和共建实验室以外,还应该与企业还开展相关的合作。首先联合进行毕业设计指导(双导师)。近几年,在企业实习和实训的学生中,有相当数量的学生的毕业设计题目由实习单位拟定。部分实习单位的专家被聘请为我院的兼职教师,共同参与学生的毕业设计指导工作。这些做法提高了我们学生的毕业设计环节的教学质量。其次与企业一起进行课程改革的合作,一方面从企业了解对人才的要求,获得教改信息,改革教学内容;另一方面开展了与实训企业的课程互认的尝试。最后一起探索共建研究机构,利用双方的优势开展实用技术的研究和推广应用工作。通过与企业的合作,不仅使我们的学生“适销对路”,更使我们专业人才培养有了方向,有了目标。

(三)迭代式的培养过程。传统的人才培养过程强调基础宽厚,先系统学习理论知识,打好基础以后再联系实际应用。在四年的本科培养方案中,第一年主要是公共基础课,第二年主要是专业基础课,第三年主要是专业主干课,第四年主要是专业方向选修课和毕业设计。这类似于软件开发过程的瀑布风格。在这样一个培养过程中,学生们在学习的最初几年往往很茫然,不知道学习哪些相应的课程,但讲课仍从教材出发,不能从实际工作的需要出发,讲授的知识仍限于教材上的内容,不能开设案例教学,在教学的实用性方面存在很大缺陷,致使所培养的学生解决实际问题的能力不强,直接导致了学生所受教育与市场需求相脱节。因此,教师的培养是实施新型培养模式的关键。

三、结束语

我们在探讨软件工程人才培养模式的实践中,明确提出软件工程人才的培养目标要面向职业,而实施这种新型的人才培养模式的关键在于加强校企合作和教师的培养,从而加强学生在实践方面的能力,以适应社会的需要。

参考文献:

[1]史志才,韩彦铎,葛斌等.软件工程专业人才培养模式的改革与创新[J].大连大学学报,2005,6:26-28

[2]王陆海,王忠民.计算机工程型人才培养模式的创新与实践[J].计算机教育,2009,13:16-18

[3]施步洲.构建工程应用型本科人才[J].培技术师范学院学报,2006,6:6-10

软件测试学习计划篇4

关键词:软件测试;案例教学;教学内容

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)09-2275-02

Teaching Methods of Software Testing Technology

GAO Zhi-sheng

(School of Mathematic and Computer, Xihua University, Chengdu 610039, China)

Abstract: Software testing is a course that teaches the software testing methods and means. Case teaching methods that runs through the whole software testing process with a single case is proposed. The corresponding teaching contents and experiment requirements are also introduced. Through the teaching methods, the studying interesting, the initiative and the capability of finishing the practical software testing projects are really improved.

Key words: software testing; case teaching; teaching contents

软件开发过程中的质量问题是关系到软件和软件组织生存的重大问题,得到了越来越多的重视。目前在高校的软件工程专业普遍开设有软件测试相关课程。但是在具体教学实践中,教师普遍感觉到有许多不如意的地方[1],具体表现在教学内容与具体应用脱节,学生对软件测试认识有误区,学生学习积极性不强、认为软件测试是文字性课程,软件测试过程如何展开,如何选择测试工具,如何在教学中贯彻软件测试管理思想等。

近年来关于怎样进行软件测试教学,引起了相关专家的重视和讨论[1-4]。本文在总结前人的经验基础上,结合作者近几年在软件测试技术课程教学中的实践提出了以一个具体项目案例贯穿整个教学过程,理论与实践紧密结合的教学方法。

1 教学的目的和教学方法

软件测试技术课程是本校软件工程专业的一门专业必修课程,通过软件知识体系的学习,使学生了解软件测试的发展现状,认识软件测试的重要性,掌握软件测试的方法和技术,熟悉软件测试过程管理,从而具有独立承担软件测试项目的实施能力,具有测试计划、管理、实现和软件质量保障的能力[3]。

针对以上教学目的,我们在软件测试技术教学过程中引入一个具体测试项目案例贯穿整个教学过程的教学方法。第一课时,我们组织学生自由进行分组,每组5个人左右,每组确定一个名称。要求每个小组在课程的前几周完成同一个模拟题目“大学图书馆管理系统”的软件开发。系统完成后,然后各个小组交叉进行测试对方开发的软件系统。随着课程的进度,主要要求学生完成软件系统的单元测试,集成测试,功能测试和系统测试。单一的案例贯穿整个软件项目测试过程的案例教学方法的优点是:

1)软件测试的前期课程有“Java EE编程技术”,同时我们选择图书馆管理系统作为开发对象,学生从技术上和业务需求上都具备快速完成该系统的能力。

2)相同的开发对象,互相测试对方开发的系统,有利于形成竞争,有利于调动学生的学习积极性。同时也有利于教师对学生完成的结果进行点评和组织课堂讨论。

3)整个软件测试课程,学生能够完成对一个具体项目的全部测试过程,有利于促进学生系统地掌握软件测试的技术方法,组织和过程。

2 教学过程

我们的教学过程主要包括以下5个阶段,最初的几周主要讲解软件测试原理,同时这个阶段学生主要完成指定项目,然后是4个主要的软件测试技术:单元测试,集成测试,功能测试和性能测试。软件测试课程也会讲解其他如回归,压力等其它测试技术,下面是我们课程重点讲授的内容和要求。

2.1 软件测试原理

本阶段主要讲授软件测试技术的基本概念,使学生掌握基本的软件测试原理。包括软件测试的重要性,软件评测师的职业规划,软件质量的概念等基本概念,重点讲授的内容是白盒测试及用例的设计和黑盒测试及用例的设计两个章节。白盒测试主要包括逻辑覆盖和基本路径覆盖两种用例设计方法,逻辑覆盖又分为语句、判定、条件、判定/条件、组合、路径覆盖等。黑盒测试的重点内容是等价类划分,边界值分析,因果图,决策表和场景法。

本阶段对学生的实践要求是开发“大学图书馆管理系统”,由上课老师为学生统一提供系统的需求规格说明书,该系统的主要功能如图1所示。要求学生结合对本校图书借阅系统的使用和需求规格说明书,采用Java EE技术进行开发,系统采用典型的4层结构进行设计,如图2所示,即运行在客户端计算机上的客户层组件、运行在Java EE服务器上的Web层组件、业务层组件和运行在EIS服务器上的企业信息系统(EIS)层软件[4]。系统开发采用JSF+EJB3.0的架构,Glassfish为应用服务器,MySql提供数据库服务。

2.2 单元测试

单元测试是对软件最小组成单元的测试,是软件开发过程中进行的最基本的测试。单元测试主要按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作。单元测试主要考虑各个模块接口的输入和输出,模块内部的数据结构,模块的边界条件,模块的基本路径和模块的出错处理。单元测试阶段还讲授代码规范性检查,代码覆盖率的检查,代码复杂度的计算和内存泄漏的检查等。

完成单元测试的基本原理的学习后,要求学生交叉完成图书馆管理系统的单元测试,主要抽取系统中的核心函数进行测试。完成测试后要求每个小组提供单元测试计划,单元测试用例和单元测试报告3个报告文档。得到所有报告后,组织一次课堂讨论,展示优秀小组的成果,分析原因总结经验。单元测试工具要求采用JUnit,代码规范和代码质量分析采用Logitscope, Pruify用于分析代码的内存问题。

2.3 集成测试

软件各个单元通过单元测试之后,需要检查各个单元之间的相互接口是否正确,就是集成测试。软件集成测试主要考虑的问题是模块间的数据传递是否正确,一个模块的功能是否会对另一个模块的功能产生错误的影响,全局数据结构是否有问题,块组合起来的功能是否能满足要求,集成后累积误差是否被放大等[5]。关于软件集成测试的原则、策略和用例设计等相关原理可参考其它相关文献。

教授完集成测试相关原理后,我们要求每个小组负责人组织完成系统的集成测试。集成测试以一个EJB、Servlet或者JSF为基本单元,工具选择Cactus和HttpUnit。完成集成测试后要求每个小组提交集成测试计划、集成测试设计文档和集成测试分析报告。收齐所有小组成果,组织学生进行讨论。

2.4 功能测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。主要考虑系统的各个功能,一般从软件产品的界面、架构出发,按照需求编写测试用例,测试产品时是否达到用户使用的需求。本阶段主要让学生采用WinRunner完成系统的功能测试,进行功能测试之前首先完成测试计划和测试用例的设计。然后完成WinRunner的6个步骤:识别程序的GUI,建立测试脚本,完善测试脚本,在新版应用程序执行测试脚本,分析测试结果和回报缺陷。

2.5 性能测试

典型的性能测试主要是从系统的响应时间、吞吐量、系统资源利用率、并发用户数、HTTP事务处理数/秒、会话数/秒和连接建立时间等方面衡量系统的性能。性能测试主要有压力测试,容量测试和强度测试等。针对图书馆管理系统的特点,我们要求学生理解性能测试的重要性和困难性,掌握性能测试的基本概念和技术。在此技术上,我们要求学生使用LoadRunner完成系统的压力测试。主要步骤是测试需求分析,制定测试策略和方案(重点是设计测试场景),使用VuGen创建脚本,在Controller中创建场景,运行场景,分析结果。完成后提交测试策略和方案报告,脚本和图书馆管理系统压力测试报告。

3 结论

一个合格的软件评测师要求具有编程能力、开发能力、沟通能力、管理能力、逆向思维能力等多种能力。怎样在大学软件测试技术教学中培养既有理论又能实践的软件测试从业人员是本文研究的动机。我们提出的基于同一案例贯穿整个软件测试技术教学过程的教学方法,通过学生互测对方开发的软件系统,相互对比,相互促进同时组织课堂讨论,有效营造了主动学习的气氛,增强了学生的学习积极性,培养了学生主动思考问题的能力。该方法是一个值得借鉴的软件测试技术教学方法。

参考文献:

[1] 李绘卓,唐峻,范勇.基于案例的软件测试实验教学[J].电脑知识与技术,2009,27(5):7820-7821.

[2] 屠红蕾.软件测试教学的点滴体会[J].计算机教育,2008(10):124-125.

[3] 李亚.“软件测试”教学探索与实践[J].计算机教育,2008(6):14-15.

软件测试学习计划篇5

关键词:软件工程;教学改革

软件工程是一门综合性程度高、知识面广、实践性强的系统学科。开设软件工程学科的目标,是为了培养具有工程能力、综合素质、扎实专业技术基础、良好团队协作能力及职业道德的复合型人才。

一、教学现状

学生因缺乏项目实施经历,在软件工程课堂内并没有体会,到了工作岗位,经历几年实践,才会对软件工程学有领悟。软件工程入门要求较高,学生在前期必须掌握程序语言、数据库技术、开发工具、系统平台等,如何针对不同专业方向的学生开展教学工作是一个巨大考验。本文改革涉及教学内容与学生工程能力评定、教学实践等方面。

二、教学改革探讨

1.教学内容与学生能力评价体系:根据美国计算机学会制定的软件工程学科要求,掌握软件工程理论的最小子集包括软件过程与生命周期模型、需求分析、软件设计与进化、测试与评估、项目管理、软件工具和环境。现有的教材,极少在一本教材上对上述内容进行全面覆盖。按照上述教学内容,对学生在实践项目中的表现做出如下能力等级认定。1.1软件过程与生命周期模型1。软件过程定义包括项目类型定义、项目规模定义、项目风险识别、项目文档的规范模板。根据需求类型、项目风险、项目类型、用户类型、团队类型进行项目生命周期选择。分为如下5个等级:1.1.1理解软件过程流程图,理解风险识别与分析活动,理解常见软件生命周期模型;1.1.2根据教师提供的项目生命周期模型选择表,从瀑布型、迭代型、增量型模型中做出选择;1.1.3选用适合的标准过程文档模板,包括过程管理类、项目研发类、项目管理类,并采用svn等工具对文档进行版本控制;1.1.4理解风险管理活动,确定风险来源,识别风险,确定风险优先级别,建立风险行动计划,跟踪风险;1.1.5分解工作任务,制定完整的项目计划书,采用project、Git等工具进行跟踪管理。1.2需求分析与需求管理2。包括开展需求调研活动,理解用户需求,产生《用户需求说明书》。进行需求分析与定义,形成基于UML建模的产品需求规格说明书。对《产品需求规格说明书》进行评审与确认。需求管理内容包括对《用户需求说明书》、《产品需求规格说明书》进行评审。需求管理员建立与维护《需求跟踪矩阵》,确保需求一致性。需求管理员建立和维护需求跟踪矩阵,管理需求变更。根据上述知识范畴,分为如下5个等级:。1.2.1理解用户需求,理解需求规格说明书内容;1.2.2通过访谈、调查、网络收集、同类类比、征询建议等方式进行需求调查,形成《用户需求说明书》;1.2.3采用UML用例图、活动图、顺序图等方式进行建模,形成符合模板的《产品需求规格说明书》;1.2.4能识别需求描述不一致、有二义性的地方,根据需求检查单确认;1.2.5能根据需求跟踪矩阵,按照已建议、已接受、已分析、已实现、已验证需求项的状态来跟踪管理,在系统设计、编程、测试等阶段对工作产品进行跟踪,更新和维护《需求跟踪矩阵》。1.3软件设计与软件进化4。可通过强调设计规范、增设设计模式内容,以极小易懂的程序为出发点,通过持续改进,让学生理解版本改动的原因,会评价一个设计的好与坏。分为如下5个等级:1.3.1理解软件设计活动,理解概要设计、详细设计、数据库设计方案;1.3.2理解面向对象方法设计原则,能用UML类图表达设计;1.3.3根据需求文档,能产生实体-联系图,将实体间关系转化为表间约束,尽量优化表结构;1.3.4能够基于复用、可维护的考虑,进行一定程度的软件重构;1.3.5撰写数据库设计、概要设计说明书,执行设计规范、编程规范。1.4测试与评估。制定测试计划,编写测试用例,规定输入与预期输出结果、测试步骤。执行测试用例,进行测试分析,形成测试报告。分如下5个等级:1.4.1理解需求,编写系统测试用例,合理运用等价类分析、边界值分析等设计方法;1.4.2理解设计,编写集成测试用例和单元测试用例,能搭建测试环境,手动执行,并记录测试结果。理解缺陷管理,发现缺陷,填写测试报告并执行回归测试;1.4.3能使用自动化测试工具,编写测试脚本,运行脚本执行测试,将发现的问题进行报告。使用Bugfree等工具管理和维护缺陷,确保项目提交时,缺陷的状态均为关闭;1.4.4能使用大型测试管理工具进行测试计划、测试管理、跟踪需求、设计等变更对测试的影响;1.4.5采用工具进行性能测试、安全性测试、压力测试等方面,能够进行测试场景设计、脚本编写、执行和报告。1.5软件工具和环境。工具包括建模工具、开发工具、测试工具、配置管理工具、项目管理工具等6。分为如下3个等级。1.5.1在工程类活动中采用建模工具、开发工具、测试工具;1.5.2在管理活动中采用配置管理工具、项目管理工具进行项目策划、风险监控、项目监控活动;1.5.3能够根据团队人数和项目情况,选择适合项目特点的工具。1.6项目管理。强调人员、产品、过程、质量的关系,包括项目策划、项目跟踪与监控、项目风险与管理、软件质量保证、项目配置管理等。分为如下2个等级:1.6.1理解项目过程管理,定期召开例会,编写个人周报,会议纪要,进行问题追踪,坚持执行规范;1.62理解项目立项策划、项目监控、风险及结项管理,并从团队实践项目中进行组织级总结。上述六个关键内容上,不要求学生在每个活动上能力认定都达到几,可通过每个关键活动上分别评定,最后计算加权平均值的方法,折算学生的最终成绩。2.教学措施。避免一言堂式教学方式,创造引导和探讨式、学生自启发式教学模式。可采取以下措施:2.1教学采用小班制教学,学生分为三五人制团队,自我管理和团队合作完成实践项目。2.2引导学生自拟实践题目,协助定义软件过程,协助制定软件进度计划,并提供软件标准文档模板和工程标准规范。2.3引导学生在每周召开例会,完成对项目跟踪追溯。例会的内容可加入软件技术的规范、风险意识的培养和训练、软件文档写作等内容。2.4教学案例可选用一般信息管理案例讲述,项目知识不宜超出学生认知范围。2.5专家来访,引入课堂。营造良好的学习氛围,企业工程师与学生分享和交流工程应用、企业管理方面的最佳实践和教训,培养学生工程意识。2.6结合学生不同专业方向,对实践案例做出选择。软件测试方向重在理解需求、掌握软件测试工具、软件测试管理工具、自动化测试、性能测试工具和测试报告写作。嵌入式方向重在嵌入式平台使用、设计模式、UI设计、UML与软件设计、手机客户端和服务器设计实现、嵌入式数据库应用方面。游戏设计方向重在游戏策划、工程标准和规范、游戏引擎工具、项目管理工具、版本控制工具、游戏测试等方面。2.7启发学生学习新技术,包括大数据、交互设计、CMMI能力成熟度模型及标准。

三、结语

本次课程改革集中在教学内容、教学措施、能力认定等方面。软件工程课程改革是一个长期和持续过程。在实施中取得的成效值得我们不断思考和总结。

参考文献:

[1]方智.面向对象编程思维的建立和培养[J].实验科学与技术,2013年06期.

[2]张海藩.软件工程导论(第6版)[M].北京:清华大学出版社,2013.

软件测试学习计划篇6

关键词:软件工程;网络课程;教学实践;Jazz

中图分类号:G642 文献标识码:B 文章编号:1673-8454(2012)07-0061-04

一、引言

随着远程教育需求的日益增长和网络教育支撑技术的飞速发展,设计适用于网络上教学的高质量课程已经成为网络教育发展的一项重要课题。

“软件工程”课程的目的是使学生能够系统地掌握软件工程的基本概念和原理,以及实用的开发方法和技术,了解软件工程各领域的发展方向,学习用工程化的思想和方法开发和管理软件项目,了解软件开发过程中应遵循的流程、准则和规范,为从事软件工程研究或应用开发工作打下坚实的基础。[1-3]考虑到软件工程是一门注重工程实践能力的课程,课程的学习既要求要掌握软件工程基本理论,又要求锻炼运用这些理论知识解决实际问题的能力,做到理论与实践相结合。

当前“软件工程”网络课程的设计日益受到重视,但在实际教学中还存在着一些问题,包括:在理论课程中贯穿整个软件工程过程的系统化案例不多,以及实践课程中项目开发实践平台不完善等。[4-6]这些缺陷都影响了学生对于软件工程整体思想的理解与实践。

解决上述问题已成为当前“软件工程”网络课程设计的迫切需求。因此,本文以理论结合实践的方式将IBM公司的下一代软件开发协作平台Jazz整合到课程的设计中:使用基于Jazz平台的工具集(尤其是其中的RTC、RRC、RQM,以及ClearCase和ClearQuest),提供对软件工程生命周期各阶段任务的支持,并将Jazz平台跨地域的团队协作能力和适用于敏捷软件开发的特点充分利用到学生的工程实践中,具有一定的创新性,取得了良好的效果。

二、“软件工程”网络课程的总体教学设计

本文在“软件工程”网络课程的教学设计中注重理论知识的掌握,同时以培养工程实践能力为导向, 强调学生能力的培养。通过对该课程的学习,让学生理解工程化方法在软件开发中的应用,以理论结合实践的方式进行同步教学:理论讲授部分采用网络多媒体教学模式,辅之以课后测验和课后作业,课程实践部分采用学生分组完成一个中小规模软件项目开发的教学模式。

在课程开展的可行性方面,苏州大学计算机科学与技术学院在与IBM公司的合作框架下,能够获取学生课程培训与实践所需要的工具和相关电子资源。此外,通过校、院或系一级的教学管理系统和FTP服务器建立教师与学生的互动平台。教师可以通过网络教学课件和案例分析等电子资源,还可以布置课后测验、课后作业以及实践项目;学生则可以通过网络下载教学资源进行课程学习,也可以通过网络进行课后测验、提交课后作业以及参与实践项目的开发。

该课程的教学设计分为两个部分:授课部分和学生工程实践部分,其中授课部分又可进一步分为理论知识授课部分和工具培训授课部分。这两部分的结合能达到配合理论教学,进行工具使用能力训练,并提高学生工程实践能力的目的。

1.授课部分

(1)理论知识授课:本部分由主讲教师完成,提供网络多媒体教学课件。理论知识授课部分主要介绍软件工程的历史、现状,以及发展趋势,以软件工程发展历史上的两个主流方法学(结构化软件工程和面向对象软件工程)为基础,深入讲解软件工程的基本原理、方法和技术,并涉及软件工程的管理话题,如软件质量管理、配置管理、过程管理、项目管理等。该课程的理论知识授课内容可以划分为结构化软件工程,面向对象软件工程,软件过程管理与质量这三个主要部分。在课程教学中,注重提供贯穿整个软件工程过程的系统化案例,使得学生能够对于软件工程的理论知识有一个全面、直观、感性的认识。

(2)工具培训授课:本部分由辅讲教师和工具提供商工程师完成授课和辅导,与理论授课部分同步进行,采用专题讲座方式进行相关工具的使用培训。工具培训授课部分主要针对IBM公司新一代的软件开发协作平台Jazz,采用IBM公司Jazz平台系列集成工具的培训教材和教学资源,对学生进行Jazz平台及相关工具体系的使用方面的培训,并对工具使用的实验进行指导,该实验也可通过网络完成。

2.学生工程实践部分

本部分由辅讲教师和助教完成,指导学生分组完成软件项目的开发。学生工程实践部分主要参考IBM公司的Jazz平台实验方案,选用一组典型的中小规模软件项目,由学生分组并选择适当的项目进行开发。在软件开发过程的不同阶段中,学生项目组需要展示对理论课程内容的掌握程度和工具使用的熟练程度,每周就项目进行进展报告,并提交各阶段相应的成果。教师需要对学生项目组进行过程管理和技术辅导,并对集中的问题进一步进行辅导。

三、IBM-Jazz平台简介

Jazz平台是IBM推出的面向跨地域团队的下一代团队协作平台,也是一个整合软件工程生命周期各阶段任务的软件开发平台。[7]

1.Jazz平台的特点

Jazz平台的主要特点包括下述三项,这些特点使得Jazz平台能够提供对于“软件工程”网络课程工程实践的支持:

(1)跨地域的开发团队实时协作能力。Jazz平台支持Web2.0技术,能帮助分散的软件开发团队克服地域障碍,搭建实时协作的平台。Web2.0技术支持实时的信息和信息反馈,通过网络,分布在各地的开发团队成员都可以在Jazz上了解最新的开发进度,提交最新的开发和测试结果,找到应遵循的工作流,在该工作流的指引下循序渐进地工作,而不必担心偏离了开发目标。项目的管理者也能够在Jazz上找到需要了解的信息,包括团队的进度、每位开发者的现状,以及资源的配置等,从而帮助其配置资源,确保开发按时按目标完成。这种通过网络提供的协作能力很适合网络课程中工程实践部分的团队协作工作,包括了学生的参与和教师的管理。

(2)支持整个软件生命周期各阶段任务的无缝集成。Jazz平台提供了对于软件开发和管理流程的定义和执行能力,在这些自定义流程的基础上,能够跨越包括需求、设计、编码、测试、配置与交付等软件生命周期的各个阶段,对各阶段的任务进行无缝集成。Jazz平台对软件工程生命周期各阶段任务的支持,符合“软件工程”课程的工程实践要求,使得学生能够对于软件工程过程有一个全面和系统的理解和实践。

(3)支持敏捷软件开发。Jazz平台还预定义了一些适用于敏捷软件开发的流程,对RUP的支持使得最新的需求能及时交付给软件开发项目的提出者,并且能很快得到最新的反馈意见。Jazz平台对于敏捷软件开发提供了支持,符合“软件工程”网络课程的工程实践部分中“开发中小规模软件项目”的要求。

2.Jazz平台工具集

从2008年开始,IBM陆续推出了基于Jazz平台的工具集,这些工具都是以与Jazz平台集成的插件或连接器的形式的。主要的工具包括:

(1)Rational Team Concert(简称RTC):RTC是IBM推出的第一个基于Jazz平台的产品。作为一个协作软件交付平台,RTC通过提供整合的项目计划、工作管理、配置管理、团队构建、版本构建、报告能力等,为整个开发团队提供了协作的基础。RTC还能够帮助开发团队简化、自动化和监管整个软件交付过程。

(2)Rational Requirements Composer(简称RRC):RRC是基于Jazz平台的需求开发管理平台。辅以Rational DOORS Requirements Professional,RRC将各种需求定义手段和需求相关人员有机地结合在统一的集成协作平台上,实现协作化的需求定义与需求管理。RRC采用多种需求开发方法和协作技能,使需求相关人员能更好地进行需求的获取、分析、精化、管理、评审以及验证。使用RRC能够尽量确保在开发之前将需求定义清楚,减少因为需求定义不良为后续开发带来的问题。

(3)Rational Quality Manager(简称RQM):RQM是基于Jazz平台的全生命周期质量管理协作平台。RQM在整个软件工程生命周期中提供了从测试需求管理、测试计划、测试用例设计、测试执行、测试评价和缺陷管理等完整的测试生命周期管理方法,能够简化和自动化繁杂的测试任务,支持手工测试以及自动测试。通过与其扩展组件Rational Test Lab Manager的集成,RQM还能提供自动化的测试环境和测试资源的管理,从而提高测试的效率。

(4)Rational Project Conductor(简称RPC):RPC是基于Jazz平台的项目及资源管理平台。RPC可以帮助项目经理进行项目计划、制定项目进度,为项目和任务安排合适的资源。RPC还提供了对项目状态和进度进行管理监控和可视化的功能,可以作为项目开发的核心数据库。

(5)Rational Insight:Insight可以帮助获取关于开发团队的度量数据,客观地度量开发的状态和进度。Insight能够提供关于系统和软件交付准确的深入信息,确认高优先级的业务目标,并给出软件交付的最佳实践,从而更好地定位开发团队的目标、度量最佳实践和业务成果。

(6)Rational Build Forger(简称RBF):RBF是基于Jazz平台的过程执行框架,可以对软件工程生命周期中重复的开发任务和构建过程进行自动化的安排、管理和追踪。RBF支持主流的开发语言、工具及平台,能够在沿用现有开发资源的同时,增加有价值的自动化、加速、通知和日程安排等功能。

(7)Rational Asset Manager(简称RAM):RAM可以帮助组织了解所拥有资产的状况,资产之间的关系,以及资产所交付的业务价值,从而使组织能够基于一致的可重用资产更快地向市场交付高品质的软件解决方案,并减少解决方案实现和维护的成本。

除了上述工具外,IBM还将陆续基于Jazz平台推出相关工具,并进行众多上一代Rational工具的Jazz化过程,已完成的包括ClearCase和ClearQuest等。

在“软件工程”网络课程中,主要涉及的基于Jazz平台的工具是:Rational Team Concert、Rational Requirements Composer、Rational Quality Manager,以及ClearCase和ClearQuest。

四、“软件工程”网络课程的工程实践部分设计

“软件工程”课程具有实践性强的特点,其工程实践环节既重要又困难,需要深入研究该课程整个工程实践环节的教学内容和方法,确保相关实践平台,设计完整的实践体系,包括:实验大纲、计划、教材等。本章中对于“软件工程”网络课程,即所述“学生工程实践部分”做进一步研究。

1.工程实践部分的目的

(1)让学生在实践环节中加深对软件工程课程理论知识的理解,通过让学生参与一个中小规模软件开发的完整过程,建立对软件开发过程各阶段活动的全面、直观、感性的认识。

(2)要求参与的学生在实践环节中分成若干个项目组,并以项目组为单位完成软件系统从需求分析到测试交付的完整过程,在该过程中学习有效的沟通方法,培养团队合作精神,为将来进入软件工程行业做好准备。

(3)让学生通过实践环节掌握Jazz平台系列工具的使用方法,培养学生灵活运用所学理论知识分析和解决问题的能力。

“软件工程”网络课程的工程实践部分的总体要求包括:遵循敏捷软件开发的定义,各个学生项目组独立完成从需求获取与分析、设计与建模、编码、测试、配置与交付、过程管理等软件工程关键活动,熟练使用各种工具完成上述活动,养成规范化软件开发的习惯,并根据国标版软件开发文档模板最终提交相应的软件制品与规范化文档。

2.工程实践部分的具体要求

(1)项目管理与计划。根据实验课程的安排,各学生项目组首先进行的是基于项目管理知识使用Jazz-Rational Team Concert进行所选项目的开发过程管理,使用Jazz-ClearCase实施配置管理,基于Jazz-ClearQuest进行缺陷与变更管理。需要学生项目组制定项目计划,包括过程计划、开发计划、测试计划、配置管理计划等,在网上提交相关文档和进展报告。

(2)需求获取与分析。在该阶段中要求各学生项目组获取并分析目标软件项目的需求,采用用例模型描述系统的需求规约,使用Jazz-Rational Requirements Composer管理需求分析阶段的结果并进行需求评审。需要学生项目组给出需求规约文档,在网上提交相关文档和进展报告。

(3)设计与建模。在该阶段中要求各学生项目组以需求阶段的结果为基础,使用工具Rational Software Architect为目标软件项目进行设计和建模(注:IBM尚未为该阶段提供基于Jazz平台的工具),基于模型描述系统的设计规约。需要学生项目组给出设计规约文档,在网上提交相关文档和进展报告。

(4)软件编码。在该阶段中要求各学生项目组以设计阶段的结果为基础,完成目标软件项目的最终编码过程,并对软件产品进行评审。需要学生项目组给出源代码和可执行的系统,在网上提交相关软件制品和进展报告。

(5)软件测试。在该阶段中要求各学生项目组使用Jazz-Rational Quality Manager及其他测试工具完成测试:设计测试用例,完成测试脚本的编制,实现自动化测试执行,进行测试结果的收集和分析,进行测试评估,将确认的缺陷提交到缺陷追踪系统中。需要学生项目组给出测试文档,在网上提交相关文档和进展报告。

(6)软件部署与项目总结。在该阶段中要求各学生项目组结合实际运行环境,完成目标软件项目的部署,并对各个阶段的执行情况进行总结,必要时可录制系统演示。需要学生项目组在网上提交报告和相关资料。

五、结束语

针对当前“软件工程”网络课程的现状,本文在对该课程的设计中整合了IBM公司的下一代软件开发协作平台Jazz,利用该平台对软件工程生命周期各阶段任务的支持,及其跨地域的团队协作能力和适用于敏捷软件开发的特点,以理论结合实践的方式设计了该课程的总体教学计划:着眼于培养学生的工程实践能力,从授课部分(包括理论知识和工具培训)以及学生工程实践部分两个方面展开,在实践中取得了良好的教学效果。

参考文献:

[1]Roger S. Pressman. Software Engineering: A Practitioner's Approach, 7th edition[M]. McGraw-Hill,2009:928.

[2]Ian Sommerville. Software Engineering, 9th edition[M]. Addison Wesley,2010:792.

[3]Shari L. Pfleeger, Joanne M. Atlee. Software Engineering: Theory and Practice, 4th Edition[M]. Prentice Hall,2009:792.

[4]许家,白忠建,吴磊.软件工程――理论与实践, 第2版[M].北京:高等教育出版社,2009:399.

[5]黄河笑,杨焕宇, 陈海建等.“软件工程”网络课程的设计与开发[J].计算机教育,2009(22):93-96.

软件测试学习计划篇7

关键词:工作过程系统化;软件模型建立;课程开发与设计

1工作过程系统化的课程开发

职业教育课程的开发是工作过程导向的,依据并围绕职业活动中“为完成一件工作任务并获得工作成果而进行的一个完整的工作程序(工作过程)”选择课程内容,并以之为参照系对知识内容实施序化,着眼于蕴含在行动体系中的隐性实践知识的生成与构建,筑造课程内容结构[1-2]。

工作过程系统化的课程开发,以工作过程分析为起点,选用适于教学的典型工作任务为载体整合教学内容,在课程教学过程中凸现以学生为主体、以职业能力的培养为主线、“教学做一体化”的特点。工作过程系统化的课程开发模式将职业活动中的各个元素渗透到教学的整个过程,实现学习者从经验层面向策略层面的能力发展,培养企业真正需要的人才;与此同时,工作过程系统化的课程开发也关注如何在满足社会需求的同时实现人的个性需求、如何在就业导向的职业教育大目标下人保持个人的可持续发展[3]。

2软件技术专业整体课程设计

软件技术专业以培养具有良好职业道德素养,具有一定的专业理论知识,具有较强的实践动手能力,具备可持续发展能力,适应软件开发、测试、维护、应用、推广、支持及服务等岗位需要的德、智、体全面发展的高级技术应用型人才为目标。对软件技术专业进行职业专门化方向研究后,认定软件技术专业人才面向的岗位及岗位群有项目经理、数据库开发工程师、程序设计工程师、系统测试工程师、系统维护与售后工程师等。

软件技术专业的就业岗位主要包括:1)软件设计员、软件项目经理、软件项目组长、程序员、编码员:程序模块设计、代码编写、软件文档制作等相关技术岗位;2)测试员:与软件测试、质量保证等工作相关的技术岗位;3)软件技术支持、推广、维护等人员:与软件应用、服务、推广、维护等工作相关的技术支持岗位;4)企业信息员:与企业信息化,如企业管理系统应用、数据库应用程序维护及开发等工作相关的一般技术岗位;5)办公室文员:与办公自动化,如桌面应用程序开发、Web应用系统开发等工作相关的一般技术岗位。

软件技术专业的典型工作任务包括:1)软件开发资讯、计划、质量管理、进度管理;2)针对概要设计,进行项目开发前期的准备工作;3)针对概要设计进行系统详细设计;4)阅读理解详细设计书进行代码编制;5)数据库的开发、测试、运行与维护;6)进行单元测试设计过程,填写技术文档;7)代码检查,填写技术文档;8)程序集成测试与维护;9)常见网络和系统环境的配置和纠错并进行客户操作培训等。

3基于工作过程的“UML系统分析与设计”学习领域课程的总体设计

“UML系统分析与设计”是软件技术专业的核心学习领域课程,具有承前启后的关键作用,它不仅有助于学生理解、掌握面向对象的软件开发技术,也为后续课程(如程序设计及编码规范、Java程序设计、Web应用开发、桌面应用程序开发等课程)的学习打下坚实的基础,还为毕业后的就业,尤其是应用软件开发类职业岗位的就业增加机会。

“UML系统分析与设计”课程主要讲授如何将统一建模语言(UML)运用于面向对象的分析与设计及整个软件开发过程中。通过对本课程的学习,学生能够熟悉UML建模语言组成符号的基本意义和使

用,能够通过阅读相关的UML图迅速获取用户的需求,能够迅速读懂程序详细设计开发文档,能够运用Rational Rose建模工具开发典型的软件设计模型、实现模型、部署模型、测试模型等。

“UML系统分析与设计”课程的典型工作任务包括:1)与用户沟通、交流,获取用户对软件开发的需求,根据用户需求开展软件开发前的系统分析与设计,分析设计意图,规划软件模型;2)选用软件建模工具,绘制用例图、类图、顺序图、状态图、协作图、组件图等图形,构造软件开发模型;3)与用户反复交流,调整并完善软件开发模型,直至用户满意。其过程如图1所示。

“UML系统分析与设计”课程的总体目标是:能快速阅读UML的各种模型图,并以此获取用户需求及领会软件设计师的设计意图;能使用Rational Rose建模工具以及软件需求建模、架构建模和应用建模中的方法和技巧,绘制典型的软件设计模型、实现模型、部署模型、测试模型;通过课程设计、实训等途径,锻炼学习能力、知识应用能力、解决实际问题的能力、沟通能力和创新能力等。

我院“UML系统分析与设计”课程的学习单元整体设计如表2所示。

图书馆信息管理系统用例建模 机房 4 R2.2

图书馆信息管理系统静态建模 机房 4 R3.2

4.动态建模 小型商贸公司数据管理软件动态建模 机房 2 N4.1

N4.2 Z4.1

Z4.2

Z4.3 R4.1

图书馆信息管理系统动态建模 机房 2 R4.2

(续表)

学习单元 主题学习单元 学习地点 学习目标与主要学习内容

课堂学习时间 能力目标编号 知识要求编号 任务或项目编号

5.体系结构建模 小型商贸公司数据管理软件体系结构建模 机房 8 N5.1

N5.2 Z5.1

Z5.2

Z5.3 R5.1

图书馆信息管理系统体系结构建模 机房 8 R5.2

6.模型整合与完善 小型商贸公司数据管理软件模型整合 机房 12 N6.1

N6.2

N6.3

N6.4 Z6.1

Z6.2

Z6.3 R6.1

图书馆信息管理系统模型整合 机房 12 R6.2

总学时:64

4学习单元2“用例建模”的完整设计

表2中学习单元2“用例建模”的主题学习单元1是“小型商贸公司数据管理软件用例建模”,4学时完成。该单元的学习目标包括以下几个方面。

1) 专业能力目标:能理解用户的设计需求并进行需求说明;能根据需求分析的结果,发现参与者、明确用例并分析它们之间的关系;能根据分析结果,制定工作规划;能使用建模工具绘制用例图。

2) 方法能力目标:能制定合理的工作计划、选择合适的工具开展工作;能在行动过程中发现问题并

解决问题;能尽职尽责完成任务;能对工作进行恰当、合理的评价,并追求完善。

3) 社会能力目标:能有效地与人沟通并开展合作;能有效地开展自我学习并独立创新。

该单元使用典型的、真实的“小型商贸公司数据管理软件”作为学习平台,研究该软件的用例模型,该单元的学习重点是:分析与发现系统参与者;分析并确定参与者与用例之间的关系;绘制用例图的一般方法与技巧。

学习过程的组织实施如表3所示。

表3 “UML系统分析与设计”课程学习过程的组织与实施

软件测试学习计划篇8

规划期限:3年

所属专业:医学信息管理

阶段目标:大三之前过四六级,学好专业知识,顺利毕业

总体目标:先在公司学习软件和网络技术,而后积累技术经验,成为出色的软件大师。工作后开始学习钢琴还有要考级,最起码要过6级。

自我分析:一开始上大学就不大喜欢自己的专业,但两年下来,渐渐对专业产生了兴趣,以后会继续努力的,当然我也会在我喜欢的英语方面下功夫的,一直以来都很喜欢英语,所以不会放弃英语,虽然说不是英语方面的专业。个人对艺术也比较感兴趣,特别是音乐,喜欢唱歌,喜欢学不同的乐器,喜欢弹钢琴,虽然钢琴学得不多,也学过葫芦丝,往多方面发展。

就业意向:跟现在自己所学的专业相符合,软件开发;英语方面的也行。

职业分析:软件测试工程师首先必须具有电子、电机类相关专业知识背景。第二,还应有三年以上的实际操作经验,这也是对软件测试负责任的表现。

第三,软件的使用者千差万别,软件在使用过程中遇到的各种现象也是千差万别的,所以要求软件测试工程师需要具有一些逆向思维的能力。这是作为一名优秀的软件测试工程师最基本的素质。第四,要有一种穷追到底的精神。第五,善于沟通,软件测试人员与开发人员搞好关系,这对于提高整个软件项目质量是十分重要的。第六,软件测试技术随着时间的变化也在做一些提高和改进,作为一名优秀的测试人员要善于利用书籍、网站、论坛、交流等各种途径不断提高自己的软件测试水平。第七,当软件测试人员发现软件中存在缺陷的时候,往往要书写缺陷报告,作为一名优秀的测试人员提高自己的写作能力是非常必要的,同时需要熟练掌握一门语言。

社会环境分析:目前,随着软件产业发展与应用需求的不断提高,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心,软件质量问题越来越受到政府相关部门、软件企业、软件用户的关心与重视。软件测试是保证软件产品质量控制、管理与检测的重要手段,但由于我国企业对于软件测试技术在整个软件行业中的重要作用认识较晚,该方面的专业技术人员在国内还是凤毛麟角,人才供需之间存在着巨大缺口。因此,加强和提升软件质量保证和测试在企业中的作用和地位,培养合格的软件保证和测试人才,提高软件产品质量和整个软件产业的水平,在某方面有很高的技术并有一定的权威。

目标实现安排:

1、基础准备,学习好专业知识;

2、 考取一些专业相关的证书;

3、到公司实践,认真学习获得经验。

具体实现步骤:

1、大学第二第三学年

阶段目标:争取过四级和六级,掌握一门编程的语言基础。

实施方案:首先要合理分配好时间,制定严谨的计划,每天坚持背单词,做适量的英语练习,同时完成好各科目的学习。争取当上学校的网管,然后可以学点更多的电脑知识。继续努力学好自己的葫芦丝和琴。

2、大学第四学年

阶段目标:通过实习积累经验,学会交流。

软件测试学习计划篇9

1 概述

随着国内软件市场不断扩大,软件企业也越来越规范,软件产品正逐渐成为软件企业生存和发展的核心。人才市场需要大量的软件测试人才。高职软件工程专业毕业的学生也绝不仅仅只限于从事低端程序,在软件工程专业,软件测试逐渐成为一个新的就业方向和就业趋势。凭借软件工程专业,加大建设软件测试课程的力度,同时对软件测试的投入力度也要加大,进而使得培养出的软件测试人才都具有扎实软件测试理论知识,同时掌握测试软件的方法,并且具有一定的测试软件的经验。

2 高职院校软件测试课程现状分析

多年来,软件测试技术课程一直按传统的教学方法以讲授为主进行教学,学生缺乏学习动力,依赖性强、易受外界环境的干扰,工程意识、工程素质没有得到有效锻炼,不能利用所学知识和技能对软件项目进行测试实施。软件测试技术方面的教材近年来出现了一些,但质量也良莠不齐,高职的软件测试课程大多设置为选修课或者考查课,课时相对较少,并没有作为重点内容来要求。软件测试课程的教学目前大致为两种状态,一种测试理论和测试方法是高校教师授课的重点,在软件测试案例和软件测试经验方面比较匮乏,在教学过程中很少涉及重要的实践环节,系统的训练相对比较缺乏。与软件公司的测试人员相比,学生还有很长的路要走。另一种是从软件公司聘请多年从事测试的高级人才来任教。他们直接用企业的测试项目对学生进行讲解,但高职软件工程专业的学生之前都很难完成实用性的具体项目,更没有扎实的测试理论和方法做依托,不能将实用的测试技术深入的消化理解,灵活运用。如何将这两种教学现象很好的融合,是软件测试课程能否使高职软件工程专业学生成为软件测试实用人才的关键所在。另外,学生对软件测试技术的掌握程度直接受到对软件测试认识的影响。不懂编程的人才从事软件测试这是所有学生的共识,在一定程度上影响了软件测试技术的学习。恰恰相反的是,能做测试的高端人才,正是对编程有着深刻理解的全能型人才。

3 教学方法

为了确保培养的软件测试人才符合社会的需要,在一定程度上满足高职院校学生职业能力的要求,可以从以下几个方面进行改革:

3.1 加强软件测试的课程建设。可以设立《软件测试理论、方法》、《软件测试系统训练》和《软件测试实战项目》等多门课程。适当增加实验实训的学习时间,对教学目标、教学内容、教学计划和教材选择等进行重新制定。在软件开发过程中,要让学生了解软件测试的重要性,熟悉软件测试的基本概念和理论,同时掌握软件测试的技术和方法,能将软件测试技术用于实际测试问题,并指导软件测试职业的特点和对软件测试人员素质的要求。软件测试课程应该在软件工程课程结束之后开始,安排在第三学年。最好同步能安排生产实习。

3.2 合理组织教学内容,实施案例教学。在知识点方面,软件测试技术涉及的比较多,并且通过大量的规范的训练才能理解和掌握这些知识,最好的办法是进行分阶段教学。前期的基本概念和基本知识、单元测试、集成测试以及自动化测试工具的使用等是教学内容的基础。后期包括需求测试、设计测试、系统测试、可靠性测试、验收测试以及静态测试中的同行评审等。多利用各种测试案例进行教学。建立案例库等。

3.3 严格实践训练,实施实训练习。按照测试对象,要求学生设计相应的测试用例、编写测试程序、测试和书写测试报告。在高职院校教育中,认识实习和实习是两个重要的实践环节,利用这两个环节,组织对软件测试感兴趣的同学进行测试,进而提高技能,在一定程度上激发他们对软件测试的兴趣。生产实习则需要有经验的软件测试工程师能实际指导学生进行项目测试,通过训练使学生认识到实际项目的测试,找出自身差距。

3.4 加大培养与引进软件测试师资的力度。通过派遣的方式,让该课程的授课教师到优秀的软件测试培训机构参加相应的培训,然后到正规软件公司的软件测试部门进行实习。另外,坚持软件测试实战项目聘请有经验的软件公司的测试工程师来校任教。

软件测试学习计划篇10

关键字:操作系统课程设计;考核体系;考核环节;考核指标

中图分类号:G642.0文献标识码:B

文章编号:1672-5913(2007)08-0045-04

计算机操作系统是与硬件直接相关的系统软件,计算机中的关键性技术,它的设计与实现体现了程序设计与软件工程的精髓[1]。计算机操作系统原理课程是计算机科学与技术及相关专业的核心课程之一,对理论与实践要求都很高,历来为计算机及信息学科所重视。操作系统课程设计正是该课程实践环节的集中表现,不仅可使学生巩固理论学习的概念、原理、设计、算法及数据结构,同时培养开发大型软件所应拥有的系统结构设计和软件工程素养。对该课程考核体系的构建可以促进学生设计能力、创新能力和科学素养的全面提升。

1 操作系统课程实践现状分析

国内外高校对操作系统课程的实践环节极为重视[1]。北大、清华、西电、国防科大等院校均分两个学期,设立理论、实践环节来共同完成该课程的教学工作。实践内容主要分为模拟仿真型、解剖型或设计型。由于操作系统课程内容的抽象性、复杂性,决定了许多学生在学完理论以后,对实践环节感到束手无策;同时该课程内容承上启下,涉及以前学习的许多课程,如C语言、数据结构、计算机组成原理等,要求学生有较强的综合分析问题和设计的能力。课程的难度阻碍该课程的考核,实践考核往往成为程序设计考核或算法编程考核,没能成为有效促进操作系统学习的有力工具。一些院校在此方面进行了有益的改革与尝试。北京大学根据MIT的开放课程经验和自己学生的特点,建立操作系统实验室,提出了一套自己的试验平台和实验体系,包括实习授课、进程控制、实习反馈等环节控制教学质量[2]。考核模式中增加成果演示和期末答辩环节,借助交流开发心得、压力测试等方法检查进度控制好坏,达到促进学生学习的目的。南开大学提倡使用系统仿真的实验环境加强学生理论联系实际的能力,降低试卷考试的压力,建立多元化考核体系,使用“弹性考核制度”培养学生的综合素质和能力[3]。

我校是农业类院校,操作系统课程设计是紧接操作系统原理课程的实验型必修课,安排在上完理论课的下一学期。过去两三年里,借鉴其他院校的经验,根据自己学生的生源特征和课程特点,本着“承上启下、提高综合能力”的宗旨,为提高学生的软件设计能力、动手编程能力,摸索与总结了一些控制实践课程质量的方法。但也暴露出一些问题。(1)无法将操作系统理论与实践结合起来。一些同学只为完成表面上的功能进行软件设计与开发,没有借鉴前人成果;(2)同学之间依赖性严重,加之Internet网提供的便利功能,一些同学出现网上拷贝,不劳而获、浑水摸鱼的现象;(3)缺少考核体系与测试环节。对原理课程的认识不足,缺少软件工程的思想指导。实践环节的软件开发等同于以前的算法设计或编程,没能突出该课程系统性的特点;(4)缺少分组协作能力、口头表达能力、进程控制能力等方面的训练,许多同学会做不会说、不会写;能单独开发,不会小组共同协作。

2操作系统课程设计考核体系构建思路

学习评价是课程学习的一部分,能够有效地促进课程学习。一个完整的课程考核体系应该有过程性学习评价和终结性学习评价两部分。针对本课程的现状,考核体系应具体解决如下问题:(1)量化考核指标;(2)量化考核每位同学的协作能力、分析解决问题能力。由于分组协作完成设计任务,给老师有效地分辨出每位同学具体完成的工作量及工作质量带来困难,需要考核环节中具体的量化措施来保证。(3)体会软件开发全过程。操作系统是计算机中管理软硬件资源的系统软件,其设计与实现的着眼点均是“一切为了用户”的系统观点。通过考核环节的设定,使没出过校门,没有实践经验的学生,在校期间体会到软件的开发过程。

与理论考核模式相比,实践考核不仅注重结果,更加注重过程、技术和素质考核。分析操作系统课程设计实践现状,结合具体的考核量化问题,本着过程与结果并重的原则,提出如下指导原则:

(1)坚持多样化考核与多次考核机会相结合的考核方法。建立以考察专业技术和职业素质为基础的考核体系。考核内容的选择,既要体现和课程培养目标,又要有利于培养学生运用所学知识和技术分析问题和解决问题的能力。真正做到既考知识,又考能力(技能)和素质。

(2)强调理论与实践的结合。课程设计从题目的选择到设计与实现,均应借鉴前人成功的设计理念,采用或扩展已学过的算法和策略,考察将抽象的理论知识渗透到实践设计的能力。

(3)根据课程设计考核改革模式,设计考核评测体系及考核评价指标。过程考核、技术考核及结果考核相结合,最终得出综合成绩。同时,注重每一考核环节的交流与指导。

(4)将软件工程的思想融入课程设计,培养学生分工协作能力,进度控制能力。

本研究在总结我校前三届学生课程设计经验的基础上,学习借鉴其他高校的成功经验,针对农业院校学生的特点,突出内容的系统性、设计性和可操作性的同时,本着综合能力提高的宗旨,通过协作学习与模拟性学习相结合,设计出一套适合本校学生特点的学习考核模式,采用过程考核、技术考核、结果考核等多种形式建立实践教学的考核评价体系(图1),提高实践环节的质量,调动学生的学习热情,“以考促学”,培养学生多元能力,为农林类院校操作系统课程实践考核趟出有益的道路。

3 考核评测体系的构建

操作系统实践教学的考核目标是在软件工程思想指导下,提高大型软件的分析设计能力,小组成员的分工协作能力,设计结果的分析测试能力。因此,考核体系的制定既要考虑理论知识与技能提高,又要加强团队精神与素质培养。本研究按照该课程实施过程中的五个步骤:明确目标――小组计划――协作研究――分组测试――最终评价设立考核环节。

3.1 考核评测环节的建立

操作系统课程设计考核体系根据课程考核的指导原则和课程设计流程,本着科学合理,重理论、重技能、重素质的原则,设定为五大考核环节,分别是设计考核、算法考核、测试考核、能力考核和提优考核,最终考核成绩是五部分乘权重之和。表1,体现各考试环节的考核内容与方法。其中,设计考核针对课程设计的开始部分,检查学生整体规划和协作分工能力;算法考核主要考核每位学生的参与程度,具体实现措施;测试考核属于对课程设计成果的检查,是以往实践考核的薄弱环节。该考核体系中强调测试,通过制订组内测试、组间测试和教师测试制度完成整体测试。具体测试过程是教师提供测试报告书格式及考核项目,组间成员按照对方提供的操作说明对软件作品进行相互测试,并填写测试报告,然后由教师组成的测试小组进行综合性测试,给出测试评语。能力考核贯穿实践的每个环节,通过学生制作PPT、口头汇报并回答问题,考察语言表达能力、进度计划实施情况及工作汇报能力。提优考核是在课程设计结束后,针对部分优秀的学生主动申请,通过撰写小论文的形式体现。

3.2 考核评价指标的建设

考核测评环节是指导实践考核的基础,考核评价指标具体量化考核环节,是成绩评定的依据,它的构建必须有系统和全局的眼光。我校操作系统课程设计是停课一周进行,时间安排在三年级下学期开学第一周。三年级上学期理论课结束后学生分组、选题,利用寒假时间准备资料,开学后完成具体实践工作。课程设计的好坏很大程度取决于假期准备工作的好坏。为了有效考核学生准备工作和实践情况,针对考核环节设定具体的汇报考核指标和测试报告考核指标。由教师和四年级优秀学生组成考核小组,按照汇报考核指标打分,存档源码程序、可运行程序、测试报告和课程实践报告,综合测试报告考核指标给出课程设计的综合成绩。

(1)汇报考核指标

汇报考核如表2,属于过程性考核,主要考查学生整体计划,分工协作与进程控制能力,语言表达能力和幻灯汇报能力,有利于提高理工科学生的综合素养。采用PPT幻灯形式,汇报时间穿插在实践设计的过程中,是量化设计考核、算法考核和综合能力的主要手段之一。同时,总结性汇报促进同学之间彼此交流成果与心得。

(2)测试报告考核指标

软件测试是保证软件质量的重要环节,测试考核指标的设立有助于建立良好的软件测试观,养成良好的测试习惯,为后续软件工程课程的开设积累实践经验。测试考核以测试报告的形式存档,考核指标既要体现整体构思,又要能够促进被测试软件的完善,有助于错误的发现与改进;同时,该项工作的开展是同学之间交流与学习的机会。核心测试指标如下:

理论依据是否充分。

功能、结构设计的合理性、是否考虑充分。

算法正确性及容错程度、算法性能情况,要求评测人用具体的测试数据进行说明。

用户界面友好性、直观性、易用性,并要求具体列举。

总结评价该设计的优缺点,具体描述特色与创新,并提出改进建议。

4 实践与效果分析

4.1 操作系统课程设计的实践

2005~2006学年第二学期,在我院院级实践教学改革项目的资助下,计算机科学与技术系02级共63位同学分成20个小组,按照操作系统课程设计考核体系进行实践。教师提供20道参考题目供学生选择,同学也可根据自己的兴趣爱好自定与操作系统相关的题目。有模拟内存可变分区的系统,有模拟Linux 2.6内核的进程调度系统,也有图形化动态模拟磁盘调度各种算法的系统。两名教师和两名四年级同学组成考核小组,经过三阶段的汇报考核,组间测试考核,实践报告考核,作品测试等考核,顺利通过课程设计课程实践。每组同学巩固理论学习的同时,加强软件设计与编程能力,整体素质得到锻炼与提高。每个小组提交软件作品,其中5个小组提交提优论文。图2和图3分别是课程设计学生作品样例。

4.2 实践效果

经过一周的停课实践,学生们普遍感觉加强了对操作系统理论的认识,同学之间的协作能力提高,自身的编程能力、系统设计能力及表达能力得到锻炼和改善。通过课程设计考核体系的实施,使广大学生在如下几个方面得到了提升:

(1)协作学习能力普遍提高。每个小组非常重视三个阶段的汇报,从查阅资料到幻灯结构、内容和色彩都经过仔细琢磨;小组内讨论气氛热烈,有些小组甚至在宿舍熄灯后仍在探讨问题;还有的小组到处寻找通宵教室,加班加点工作。

(2)真实能力明显提高。量化课程设计过程和考核指标,完善了过程监督,有效地防止了学生实践“做弊”现象,使所有学生的能力都得到一定锻炼。

(3)提升综合应用知识的能力。操作系统模拟的许多题目,不仅涉及数据结构,同时要求活学活用操作系统理论中的概念与方法。如,模拟内存管理的设计中,为突出并发和共享特征,一些小组使用了多线程实现并发。另外,数据结构中树、链表以及Hash表的知识得到巩固。

(4)计划表达与交流能力提高。课程设计三个考核环节,将自己的成果展现给同学和老师,并且解答老师的提问,有助于老师与学生、学生与学生之间交流。老师可以及时发现问题,指导学生改进设计方案;学生也可在汇报过程展现自己,锻炼语言表达能力,对于不善表达的理工科生来说是很好的锻炼。此外,该考核方法使学生不敢懈怠,按时完成任务。

(5)学习主动性和创新性得到激发。课程设计的所有考核环节均开放式进行,学生在考核过程中可以相互对比,有效促进了比学赶超的学习热情;考核压力促进基础薄弱的同学在基础较好的同学带动下进行主动学习。学生潜力得到很大发挥,不再局限于教学过程中所学知识,自学相关内容,力图将设计做到最好。

5 结束语

该套考核环节、方法和考核指标的建立,强化了操作系统原理的掌握,激发了学生学习热情,提高了实际软件设计、编程能力,培养了组织协作与团队精神,为抽象理论课的实践环节的理论提升探索出一条有益的道路。由于该考核体系处于实验阶段,有待于进一步发展和完善。

参考文献:

[1] 孙微微,刘才兴.研究型大学操作系统课程实习项目的设计[J].农业网络信息. 2005,5.

[2] 陈向群.操作系统实习教学经验[J].全国第八届操作系统课程教学研讨会. 2005,5.

[3] 史广顺,韩维桓,袁晓洁.南开大学“操作系统”课程建设的思考[J].计算机教育. 2006,7.

[4] 邹恒明.上海交通大学“操作系统”精品课程的立体化建设[J].计算机教育. 2006,7.

[5] 程金林,吴斌,靳晓枝,黄铮. 高校实验教学考核模式的改革与实践[J]. 实验室研究与探索, 2004,24,(4).

[6] 康丽军.关于操作系统课程改革的探索与实践[J].太原大学学报.2004,5,(3).

收稿日期:2006-9-14

资助项目:南京农业大学信息技术学院院级教改项目的资助

作者简介:姜海燕(1967-),女,浙江临安人,副教授,研究方向:农业信息技术、软件工程。

通信地址:南京农业大学信息学院,邮编:210095