HI,欢迎来到学术之家,发表咨询:400-888-7501  订阅咨询:400-888-7502  股权代码  102064
0
首页 精品范文 软件测试课程总结

软件测试课程总结

时间:2022-10-12 19:03:24

软件测试课程总结

软件测试课程总结范文1

关键词:软件测试;能力培养;教学理念;培养模式;探索实践

中图分类号: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.

软件测试课程总结范文2

关键词 软件测试 教学改革 能力培养 教学过程 课程置换

中图分类号:G424 文献标识码:A

Exploring about the Reform of Software Testing Course

in the Application-oriented Institutions

PANG Haibo, LI Zhanbo

(Software Technology School of Zhengzhou University, Zhengzhou, He'nan 450002)

Abstract This paper analyzes the software testing industry, and a number of issues that exist in teaching, summed up the software companies for software testing requirements and industry demand conditions talent for talent, summed up the software testing professionals should have the basic knowledge and quality requirements, focusing on the improve student software testing theory, technical capacity, a new model of software testing from the curriculum reform, teaching, engineering practice, school-enterprise cooperation and replacement programs, etc., to stimulate students' enthusiasm and motivation to learn and improve training quality of software testers.

Key words software testing; teaching reform; ability training; teaching process; course change

近年来,中国软件产业保持了飞速发展的趋势,软件产品的质量备受所有用户特别是IT行业用户的关注。软件测试作为软件开发过程中重要的一环,对保证软件质量具有至关重要的意义,同时也是控制软件质量的重要手段之一。目前,国内许多软件开发企业对软件开发仍然存在“重开发、轻测试”的思想,因此,尽快建立完善软件测试人才的系统培养环境、提高软件测试人才的培养质量,为软件产业的健康发展提供智力支持已成为软件测试专业课程和教学改革的主要目标之一。

本文首先分析了我国软件测试行业和教学存在的若干问题以及IT企业对软件测试人才的素质要求,接着讨论了软件测试专业课程的设置和定位问题,结合笔者的工作实际以及校企联合开展大学生软件测试技能竞赛的效果,对软件测试教学过程提出了一些建议。

1 软件测试行业和教学现状

软件生产方式已经越来越趋向于大规模集成化生产,这一生产方式确立了软件产品的质量控制与质量管理在软件生产中至关重要的地位。调查显示,我国软件开发企业普遍缺少测试人员,而专职软件测试人员与开发人员的比率更是偏低,远远达不到国外1:1甚至2:1的比例,整个软件行业从业人员比例结构很不合理。主要由于企业认知和软件测试人员的培养过程存在以下一些问题和不足而导致:

1.1 重开发,轻测试

很多企业和学生认为,软件开发比软件测试重要,软件测试相关工作职位待遇不如软件开发。他们认为软件测试从业人员不需要深入的专业知识,只要会写程序就能够胜任软件测试工作,从事软件测试类的工作没有前途,所以大部分倾向于做开发人员,而不喜欢做测试。同样,绝大多数学生认为软件测试比软件开发容易,没有较高的技术含量,只是能够找出软件中的错误就可以了。甚至有相当一部分软件测试人员认为软件的质量的好坏是开发人员的事情,与软件测试人员没有关系。

1.2 底子薄、基础差

大部分开设计算机课程的学校,学生都是到大学二年级后半学期才开始接触软件测试课程,缺少对软件测试课程的系统学习,甚至很多学生只学习软件工程课程,根本接触不到软件测试课程。

对离散数学、程序设计、软件工程等软件测试基础课程的学习效果差。例如,软件测试中黑盒测试用例的设计方法大都以数学知识为依据的,决策表驱动分析法与因果图法对应命题逻辑知识。尽管学生之前已经学习这些课程了,但是由于受行业认知的限制,学生经常忽略一些重要的知识,导致在后续测试课程学习中感到力不从心,最终还是不能够稳固掌握软件测试的相关知识和技能。

软件测试贯穿软件开发的全部过程,软件测试的大部分阶段都要求测试人员能够编写代码并且进行调试,比如,在单元测试阶段和进行白盒测试的时候都需要检查和测试代码,这就对软件测试学院提出了更高的要求,要求学生不但要了解软件测试技术,还要能够熟练对代码进行分析和调试,甚至更多的时候要求测试人员能够自己编写代码进行专项测试。但是,由于先导课程的课程设计、实践和考查的脱节,导致学生写代码能力较弱,不能灵活运用软件测试中的技术和方法。

1.3 重技术、轻理论

现代社会快节奏的影响和急功近利心情的驱使,学生通常希望学习一些能够马上使用的技术,而不愿意去学习复杂和理论性较强的工程管理内容。软件测试计划、软件测试管理等工程管理课程抽象和教条,并且理论性较强,教师如果单纯通过课堂教学,学生很难真正掌握这些内容,他们不能将所学知识马上转换为应用,或者不能立刻看到成效,会慢慢地失去对这些课程的兴趣和热情。同时,考虑到软件测试需要与具体的开发模式和行业背景相结合,在学习阶段容易受授课模式和知识结构的限制,学生觉得学无所用,将来也很难结合具体场合恰当使用测试手段。

1.4 重个人,轻团队

软件的大规模集成化生产意味着个人独立劳动已经不能胜任大型软件的开发,并且对团体软件开发中的协作和沟通提出了更高的要求。软件测试作为软件开发过程中一个不可或缺的环节,也需要测试团队分工合作。目前教学更多地采用教师讲、学生听这一学习模式,没有实现双向互动学习,老师总是面面俱到地传授测试专业知识和技术,希望学生能够学得更全面。然而,当代学生普遍以自我为中心,缺少基本的沟通和团队协作能力,单独的个体又不能独当一面,最终导致软件测试工作不能顺利进行。

2 软件测试人员素质要求及课程设置定位

软件测试人员的工作职责是理解软件产品的功能和性能需求,在软件开发中担任“质量管理”角色,这种职责对软件测试人员在技术、管理能力和个人综合素质等方面提出了更高的要求。主要包括以下方面:(1)全面技术能力。测试人员必须站在工程技术的角度对需要开发的产品进行理解,以工程技术产品应用为目的构造合适的测试用例进行测试。这就要求测试人员必须掌握软件生命周期、开发流程、软件质量管理知识,熟悉离散数学、工程经济等基础知识,熟悉各种系统平台、数据库、常用软件和网络等软硬件,掌握主流测试工具与测试管理工具,还有具备编程能力和相关行业的法规和外语等知识。(2)责任心。做测试工作,需要思维严密,具有怀疑与破坏的精神,测试人员要打破常规思路进行软件测试,能够设计一些非常规测试用例对软件进行破坏性测试。(3)细心与耐心。软件测试工作中发现缺陷的环节除了依仗测试人员的专业技术知识之外,还与测试人员的细心及耐心程度有很大关系。软件测试工作相比较软件开发工作而言,更加繁琐和枯燥,如果没有足够的细心和耐心,就会留下很多潜伏的缺陷。(4)良好的沟通与组织协调能力。软件测试不仅仅是测试人员和测试团队内部的事情,软件测试人员要能够与项目经理、开发人员、客户、市场人员等不同角色人员进行良好沟通,保持密切配合。这就要求测试人员具备良好的沟通技巧,当发现问题的时候,能够积极有效组织协调开发人员、客户等各方面来解决问题,并且能够精准表达自己的观点。

软件测试人员的素质培养,需要从构建合理的软件课程着手。课程体系构建根据测试内涵来分析相应的知识、技能、素质要求,以软件测试这一职业所需的知识和技能为先导,强调当前及未来就业岗位所需基础知识和基本技能的掌握运用,体现知识、能力、素质培养的统一。精选教学内容进行整合与优化,使课程模块化,明确每个模块化课程对知识和技能的培养要求,构建以掌握技术理论和技术应用为培养目的的课程体系,实现知识和技能同步培养和提高。

3 软件测试教学过程的改进

教学过程是对软件测试人员技能和素质培养的关键环节,教学方法起着至关重要的作用。教师在教学过程中应注意几方面:

3.1 正确认识开发和测试的关系,激发学生学习动力

针对学生认为软件测试不如软件开发重要,或者认为软件测试类岗位不如软件开发类岗位有前途等片面认识,教师应注意正确引导。通常在第一节课上教师应该结合功能测试、性能测试等具体案例介绍软件测试的重要性,让学生了解该课程的重要性、必要性和当前的行业动态。另外,要让学生认识到测试工作的丰富层次和内涵,了解测试人员应该具备的知识和技能更加多样,做测试工作比做开发更有挑战性。最后,要给学生介绍行业对测试人员的需求,让学生更清楚了解软件测试工作的待遇和发展前景,树立从事软件测试工作的决心和信心,激发他们学习软件测试的主观能动性。

3.2 案例法教学贯穿全过程

针对软件测试课程中测试计划、管理等理论性较强的工程化管理知识部分,需要结合实际案例进行教学,因为单纯课堂教条式的教学很难让学生深刻掌握这些知识的精髓并应用于实际工作,更甚至会让学生失去学习软件测试的兴趣。因此,应在教学过程中引领学生由易入难自己动手实践,激发学生的学习主动性与热情。通过课堂讨论或分组讨论的方式活跃课堂气氛,在讨论的过程中,让学生担任不同角色,模拟实际管理过程,切身感受管理知识的应用价值,同时,不同角色的轮换担任还可以锻炼学生的沟通能力,树立团队意识。教师要适时进行引导与总结,指导学生按照工程化的文档模板规范将思考分析的结果进行记录,在锻炼学生分析、解决问题能力的同时养成良好的学习工作习惯。

对于技术性较强的知识,也要注意实际案例的引入。加大实际案例实验学时的的分配,引入规模适中的工程实例,让学生利用所学的测试技术对实例设计测试计划,测试用例,执行测试,分析和讨论测试结果,发现测试存在的问题,通过这样的实践教学活动,更容易让学生产生成就感,激发学生兴趣。

3.3 注重工程实践课程和参与竞赛

根据软件测试行业对人才素质需求定位测试专业方向人才培养目标。由于软件测试课程与软件开发课程的不同,软件测试实验教学应该设立实验、实训和实习等多层次的工程实践课程,通过让学生参与实际工程项目,提高学生专业技术应用、分析问题和解决问题的能力。同样,教师需要设计和引入规模适中的工程实践项目,要求学生现学现卖,完成制定测试计划、设计测试用例、执行测试和评估测试的全过程。通过项目的锻炼,学生分析问题和解决问题的能力会逐渐得到提高。

鼓励学生多参加软件测试技能竞赛等实战性的实践活动,提高学生的观察、思考、交流、实践和协作能力。本团队组织学生参加河南省计算机学会主办的首届大学生软件测试技能大赛,成绩斐然:三个代表队分别获得了特等奖、一等奖和二等奖。事实证明,竞赛类的实践活动,能够极大激发学生自己动手进行软件测试的兴趣,同时在动手操作的过程中培养了学生的创新能力,促进了学生思维的纵深发展;学生对软件测试课程的学习热情和积极性空前高涨,学习的自觉性极大提高。

3.4 开展校企合作和课程置换

校企合作的目的就是通过学校与软件企业进行多方面的合作,建立企业实习基地,让学生能够亲身参与企业软件的开发和测试过程,校企合作是软件测试人才培养最有效的办法。在计算机行业,校企合作有着至关重要的作用,学生通过参与企业实际产品的开发和测试,可以更好更快地融入到软件开发过程中。学生不但能够将所学的综合知识进行实际应用,还能对软件开发有一个更加深刻的认识。与企业交流不只是学生的事情,教师参与其中也是十分必要,教师到企业实习,参与软件项目的测试,紧跟技术发展步伐,才能把握授课方向,才能以自身参与的项目为实例进行授课。

课程置换是将企业成熟的软件测试培训课程和教学体系替换掉学校的部分软件测试课程,将企业以应用为目的的教学方式、科学、系统和实用的课程内容引入学校教学。“他山之石,可以攻玉”,课程置换就是要结合学校教学和企业培训的优势方法和资源,弥补传统学校教学方式存在的不足,紧紧结合市场需求,提高学生各个方面的能力。 同时,课程置换将学历教育和职业教育相结合,学生在获得学历证书的同时,还能获得相关企业行业证书和一线实践经验,从而为学生毕业后服务于企业奠定良好的基础。

4 结束语

软件测试的重要性得到越来越广泛的认可,创造一种课程内容改革的引导机制,探索一套切实有效的大学生学习和实践相结合的学习模式,转变教师对传统软件测试课程的教育教学观念,推动软件测试教学改革,才是提高软件测试学生的专业技能和创新能力,最终提高学生的核心竞争力的根本途径。

参考文献

[1] 钟素芬,叶明芷.软件测试应用性人才培养模式的探索与实践[J].北京联合大学学报,2007(9):90-91.

[2] 孙金华.软件测试人才培养与课程构建的探索[J].计算机时代,2009(6):68-71.

[3] 柳永坡.软件测试大学教程:软件测试课程专业教材[J].计算机教育,2010(12):158.

软件测试课程总结范文3

本人从事一年级《计算机组装与维修》教学,根据中职学校学生的升学和就业的需要,在教学中,我认为《计算机组装与维修》课程主要涉及四类主要的知识块:硬件组装(匹配)、故障检测、软件安装及软件测试。下面具体探讨“硬件组装”、“故障检测”、“软件安装”及“软件测试”四类主要的知识块如何按照“任务驱动”教学模式进行教学。

⒈“硬件组装”知识块

该知识块的教学组织与实施一般过程为:课堂设计――示范引导――模仿试做――纠错重做――复述总结。主张课堂组织以学生小组为中心,内容教学以任务为驱动,形成师生互动、生生合作的探究式学习氛围。各环节具体操作要求如下:

课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。

示范引导――主讲教师进行操作示范,在此过程中结合录像、课件、网络、软件进一步向学生展示操作的全过程。

模仿试做――学生在观看完老师的演示后开始动手实际操作,教师巡视指导,发现个别错误与一般错误。

纠错重做――及时纠正个别错误,集体讲评一般错误,之后让学生重做一些步骤。

复述总结――最后老师对操作步骤进行复述,特别提醒容易出错的步骤和环节,总结整堂课技能要点、方法要点和社会需要要点。

例如,在“为系统安装网络硬件”课例中,抓住其中的网卡安装、插槽选择、金手指的接触情况、网卡类型的选择,IP地址的设置等几项关键技术,而在网络原理、网络ISO的分层则一带而过只作简单介绍。教师先讲解示范,接着由学生试做,同时教师巡回指导,发现个别性问题,及时指导解决;针对一般性问题,教师则讲评纠错;之后对一般性问题容易出现的环节,让学生重做有关步骤。

2.“故障检测”知识块

“故障检测”包括硬故障和软故障的检测,硬故障是指计算机硬件出现的问题,软故障是指软件运行出现的问题。该模式的一般过程为:课堂设计――预设故障――分组讨论――尝试修复――纠错重试――分析总结。上课前教师提前预设若干个可控制故障,上课开始时分组讨论每个故障产生的原因,在讨论的基础上小组尝试排除故障。这种模式采用问题驱动来展开。各环节具体操作要求如下:

课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。

3.“软件安装”知识块

“软件安装”包括系统软件安装和应用软件安装,以及多操作系统安装。“软件安装”行为引导教学模式的一般过程为:课堂设计――软件介绍――安装提示――学生安装――个别辅导――总结提高。本模式教学以问题或任务为驱动展开。各环节具体操作要求如下:

课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。

软件介绍――介绍所要安装的软件背景知识,包括软件的开发商、版本的演化、最新版本的功能等。

4.“软件测试”知识块

“软件测试”就是用软件对硬件系统进行性能测试,目的是观察或比较不同品牌的组件的性能表现。“软件测试”行为引导教学模式的一般过程为:课堂设计――布置任务――分组操作――结果报告――比较分析。这个过程采取任务驱动来展开。各环节具体操作要求如下:

课堂设计――将社会需要设计为相应的课堂学习行为,形成以培养专业能力为核心、学习能力和社会能力为两翼的课堂教学预案。

布置任务――软件测试包括两类任务,一是匹配性测试,一是系统优化测试。教学中可以选择某一类任务或两类任务组合进行。

分组操作――学生在明确任务后开始分组测试。

结果报告――对小组测试参数进行分析,形成一个有说服力的组件选择方案或匹配优化的测试报告。

在教学中可以充分利用学校的现有资源。现在计算机技术发展很快,各个学校都有许多淘汰的计算机,但它们都还可以正常使用。我们可以利用它们建立计算机组装与维修实验室,在加上一些典型的、比较新的演示教师机,基本就能满足教学要求,解决学生的动手操作问题。上述大部分教学都应该在组装与维修的实验室进行才能达到教学目的。

在本课程中还有很重要的组成部分那就是实训部分。《计算机组装与维修》实训的目的是锻炼和培养学生实际操作技能和解决问题的动手综合能力。学生可在基本掌握各部分内容的基础上集中进行相关实验,以加深对知识的理解和掌握。在实验的基础上进行实训,提高学生的软硬件安装水平和排除故障的能力。

本课程考试改革的目的旨在加强学生技能、能力培养,使学生重视实践性技能的学习。课程考试采用抽签抽取问题决定操作考试和口试内容的考试方法。通过建立涵盖《计算机组装与维修》各关键技术的项目库,给出各操作项目的难度系数,考试前将这些操作项目作为考试内容公布给学生,让他们全面准备,这些项目涉及组装、测试、维护和维修的主要方面,目的是要学生全面掌握操作内容。考试时,让每个学生随机抽取一个项目,学生先口头陈述本操作项目的原理、方法、步骤和过程等,然后再进行动手操作,操作完成后学生还可以再作补充陈述。教师根据操作与口试结果,以及所选择项目的难度系数,以操作与口试7:3的比例给学生评定本课程考核成绩。具体安排为整个考试总时间为3小时,包括口试和操作考试。口试陈述、答问30分钟,其余时间为操作考试时间,操作完成后学生还可以再作补充陈述。

考试程序为:

(1)学生抽取考试项目。

(2)根据项目名称,口头陈述本项目的原理、方法、步骤和过程,期间老师根据学生陈述情况随时提出问题,学生口头回答。老师做好相应口试记录。

(3)学生进入操作考试,教师和辅导教师全程监控,并做好相应的记录。

(4)操作完毕,有需要再陈述的学生可以提出补充陈述要求,否则离开考场。监考老师合议评定学生考试成绩。

如上面的考题学生基本都能回答正确,这样进入社会工作后,基本可以达到用人单位对中职计算机应用专业学生的要求。那我们的教学目的也就达到了。

附加:

本课程所需要的实验条件:

软件测试课程总结范文4

关键词:案例教学;教学模式;软件测试

近几年来,软件测试人员的培育要求和计划已纳入高职教育范畴,具有软件测试的知识体系和工作技能已成为软件人才新的职业构成标准,《软件测试》这门课程成了各高职院校计算机软件专业的一门必修专业课。开设该课程的主要目的是使教学对象掌握软件测试的基本概念和基本理论,掌握基本测试技术和方法,并应用到实践;使教学对象具备软件测试的必备专业知识和实际工作能力,能基本承担起软件测试的工作任务,并为未来成长为软件测试工程师奠定必备的理论知识与实践基础。而目前的情况是,大部分院校软件测试课程的教学并没有较好地达到预期的要求和目的。

一、软件测试课程的传统教学

软件测试课程涉及的专业知识面较广,而且要求有良好的基础知识,如英语、数学等方面的知识。课堂教学内容繁杂,没有规律可循,更难以用一条主线相连、跳跃性大,从而导致学生对教材的理解不深,容易出现前面学、后面忘的情况。本课程具有很强的实践性、综合性和社会性,与工程实践联系紧密,知识更新的速度很快,涉及到有关学科的综合运用和团队合作精神等。因此,如何将所学的内容与实际工程联系起来,学会用所学的理论知识分析和解决实际工程问题,成为该课程教学成败的关键问题。

“粉笔+黑板”仍是目前许多课堂教学的主要方法,这种传统的方法,相对来说,教学环境一成不变,教学手段呆板枯燥,课时效率低。在教学活动中主要采用的是“教师讲,学生听;教师写,学生抄的满堂灌”的教学方法。在学习过程中,学生要不断巩固测试理论知识,加深对其理解和认识,完成所承担的测试项目中的各项工作任务,提交测试分析报告,通过项目培养和训练协同工作、沟通交流、角色转换等,形成实际工作能力。按照传统的教学方法教学,很难解决以上问题,也无法满足现代教学要求。

二、软件测试课程案例教学的重要性

软件测试课程在高职院校是一门本着“理论够用,实践为主”原则的重要专业基础课,但在实际操作中,如何把握这个理论够用的度,实践为主又如何展开,这都需要从实际的教学过程中不断地总结和调整。在软件测试这门课程中,针对高职高专学生基础差、学习积极性和主动性不强的特点,在教学过程中采用“案例驱动”、“从实践中领悟理论”,即案例教学是比较理想的模式。这种模式能够让学生在教学中动手动脑、直观体会实际的测试过程,寻找理论的根据和支点,从而达到预期的教学效果。

案例教学法源自医学教育的问题导向学习(Problem-based learning),强调以学习者为中心的合作学习,是一种跨学科领域的学习架构。此种方式较口述或文字叙述更能传达真实问题情境的复杂,给学生提供更接近真实的问题学习情境。案例教学法除强调问题的真实性外,也着重解决问题过程中学习者搜集、分析、整理资料,乃至提出解决方案的学习历程。

案例教学法的特点是突出实践性、较强的综合性、深刻的启发性、过程的动态性。案例教学法注重学生的智力开发及培养学生解决实际问题的能力。在本课程的教学活动中,采用案例教学能改变传统的灌输式的教学方法,充分调动学生的学习积极性,使学生的思维空间得到拓展,提高其学习兴趣;使学生学会用所学的理论知识分析和解决实际工程问题的方法,从而也改变其对理论学习的枯燥感和“读书无用”的观念。

三、软件测试课程案例教学的思路

1.案例的引入和设计

首先,要根据教学计划安排和教学进度的要求设计教学案例,为课堂的教学内容埋下伏笔。案例教学以案例为基本教学材料,将学习者引入工程实践的情境中。因此,教学案例应具有很强的实践性;要蕴涵工程实践的理论、原则与原理和方法;要具有新颖性、讲究时效性、背景要清晰等特征。其次,在完成理论课的讲解后,再将相关案例发给学生,给学生较充足的课外时间准备相关的材料。一般情况下可通过多媒体教学软件或服务器的形式发放给学生,要求他们在规定的时间内认真完成。一个好的测试案例应包含测试目的、特殊的硬件要求、特殊的软件要求、特定的配置、执行测试的描述、测试的预期结果或成功条件。另外,还要考虑如何将本堂课的新知识点贯穿其中。

2.案例分析讨论

案例分析讨论是案例教学中的重要环节。学生通过分析案例,可以知道本节课要掌握的理论知识、操作内容、注意事项、所要达到的教学要求和目的、在课后应完成哪些报告或查找哪些资料等。案例分析的过程是学生与学生或教师与学生之间讨论交流的过程,教师要善于在讨论过程中启发引导学生,培养他们思考问题的敏捷性和洞察力,让他们学会用理论知识来指导实践,遇到关键节点时能够急中生智,稳中求胜。

在案例教学中,学生的学习在讨论与争辩中进行,学生充当主角,是主动的学习者,教师的角色是指导者和推动者,其作用是领导案例教学的全过程。课堂上教师要组织案例讨论,不仅要引导学生去思考、去争辩、做出决策和选择,解决案例中的特定问题,进而从案例中获得某种感悟,而且要引导学生探寻特定案例情景复杂性的过程及其背后隐含的各种因素和发展变化的多种可能性。

3.案例实验操作

教学案例的主要内容是与教学内容为依据相匹配的,要有较强的可操作性。下面是一个教学内容与案例的匹配图示:

从图1可以看出,在设计实验案例时,既要有简单的基础性实验案例,又要有综合实验甚至是课程设计。简单的基础性实验案例主要是让学生熟悉基本的软件测试方法,综合性的实验案例主要是让学生增强实际操作能力,增加软件项目测试的综合经验。通过一个个综合性的案例,特别是较大型的软件项目测试实验,让学生在实验的每一个步骤中理解软件测试技术和各种具体的测试方法。同时,学生可以通过对案例的操作和理解,进一步了解熟悉软件测试工作的完整流程,包括文档的编写与收集,都是一个很好的锻炼。这样的教学在不知不觉中就迈出了“工学结合”的第一步,与高职教育需求完全吻合。

4.案例归纳总结

案例讨论后要做简短的归纳和总结,从案例讨论中得出一定的结论,为后续的课堂理论教学提供准备。教师在总结过程中,要讲明案例中的关键节点,以及在实验操作时存在的长处或不足,但不宜对错误的观点简单地否定,以免挫伤学生的积极性。实验结果可以多元化。在总结中,要揭示出案例中包含的理论,强化以前讨论的内容,提示后续案例,达到突出教学重点,回归教学的目的。

四、其他丰富的教学方法和手段

经过实践中的不断摸索和总结,发现《软件测试》课程在教学过程中要增强师生互动,提高教学效果,达到预期的教学要求,在教学方法和手段上还可以采取以下几种形式的结合。

(1)课堂进机房,避免纯理论的“PPT滚动”,注重课堂里的师生互动。(2)FLASH动画分解操作内容,教师录相演示操作流程。(3)分组合作讨论,责任到人,各尽其能。(4)优秀组员示范,荣誉物质兼并鼓励。(5)定时地带学生了解软件测试企业“完整的工作过程”,让他们从实践中得到熏陶。(6)“一带一”订单式的互助。让基础好的学生帮助基础不好的学生,督促完成相应的教学内容。(7)开设课外兴趣小组,为基础兴趣较好的学生提供更多更好的实践环境。

五、结语

在高职院校,对软件测试这门课程,我们结合自己的学生不断地进行探索和实践,进行了一系列的教改与创新,受到学生及领导的好评。该教法以企业的要求为导向,注重学生动手能力的提高,注重培养学生主动思考问题、解决问题的能力,同时又运用现代教育学理论,在教学过程中采取案例教学与项目教学等多种教学方法和手段来实现“工学结合”。通过学生座谈会了解到,大多数学生认为这种多样化的教学,使他们对课本知识的理解更加深入,主动思考问题的能力有了一定的提高,动手能力得到进一步加强,“软件测试”的教学质量和教学效果有了较明显的好转。

参考文献:

[1] 张尚仁.古希腊哲学家的故事[M].北京:中国青年出版社,1984.

[2] 李亚.“软件测试”教学探索与实践[J].Computer Education,2008,(6).

[3] 贺平.软件测试课程开发[J].计算机教育,2006,(12).

[4] Ron Patton.Software Testing Second Edition(第2版)[M].北京:机械工业出版社,2006.

[5] 钟元生.软件测试实践教学特色的构建实践[J].电化教育研究,2006,162(10):62-65.

软件测试课程总结范文5

关键词:软件测试;校企合作;面向企业;教学改革

0 引言

随着软件技术的发展和应用日益广泛,软件系统的规模和复杂性与日俱增。然而,由于软件本身是逻辑实体,软件开发目前还主要依赖手工劳动,软件的变更比较频繁等,导致了软件质量很难得到保证。软件缺陷导致的各类损失不断增加,甚至带来灾难性的后果。软件质量问题已成为所有软件使用者和开发者关注的焦点,而作为软件质量保证和质量控制的有效手段,软件测试受到了企业、用户及专家越来越多的关注。随着用户对软件质量要求的提高,企业对软件测试人才的需求量逐年递增。据前程无忧网数据显示,2011年国内软件测试人才缺口高达20万,2012年缺口突破30万人。作为人才培养的主要基地,高校成为企业挖掘软件测试人才的主要关注地。然而,从目前的企业反馈来看,应届毕业生很难直接被使用,而是需要经过长时间的培训,成本较高,这导致了企业对高校人才引进的信任危机。高校也慢慢意识到了这些问题,开始加强软件测试人才的培养。笔者从企业软件测试人员的引进及使用现状、高校软件测试人才的培养及教学现状进行分析,对软件测试课程教学改革进行讨论,并提出一些意见,以期能够对目前的软件测试人才培养起到一定的促进作用。

1 高校软件测试课程教学现状

2001年12月,国家批准建立了35所部级示范性软件学院,其中软件测试课程成为本科及硕士研究生的专业核心课程之一。然而受传统人才培养模式的影响,高校在软件测试课程设置及人才培养上存在着如下不足。

1.1 传统“知识碎片”式的教学模式

在软件测试课程的教学上,大多数高校仍然采用的是以理论教学为主,实践教学为辅的教学模式,教师在课堂上讲授理论知识,学生上机完成相应的作业。教师授课时采用的案例和学生课后的作业,大多数都是以掌握知识点为主,比较片面,学生无法形成对软件测试工作的整体认识,更多的是一些“知识碎片”。如讲授测试用例设计方法时,教师已讲完等价分类法,学生也做了作业,但是学生最终还是不清楚到底为什么要学习等价分类法、在什么情况下用等价分类法,甚至实际应用中真正的测试用例是什么样子都不清楚。类似的单一孤立知识点的学习对学生来说并不合适。

1.2 具有专业知识及实际经验的师资力量匮乏

目前在高校从事软件测试课程教学的教师中,不具备软件测试专业知识及实际软件测试项目经验的占很大比重。一些教师未经过软件测试专业知识培训,不具备实际经验,仅仅是凭借书本进行理论教学,对现实企业中的软件测试工作不了解,无法针对企业的人才需求展开具有针对性的教学活动。

1.3 实践教学环境不完备

软件测试是一门实践性要求较高的课程,仅仅是通过小型的测试练习是无法达到实践的目的和效果的,必须建立完备的实践教学体系和环境。目前高校普遍缺乏真正的软件测试环境,学生无法通过项目实践来理解和深入学习软件测试的相关技能,如软件测试工具的使用,网络架构对软件系统性能的影响,大批量数据处理的性能测试及分析等。

1.4 对学生的理解误区未给予正确的引导

学生在大学校园中的学习受到社会观念的影响,对软件测试产生错误的认识和理解,对现实中的软件测试工作缺乏兴趣,从而影响到对软件测试知识和技能的学习。如“软件测试工作的技术含量较低,发展前景不如软件开发工作”“软件测试工作薪资较低”等,对于这些错误的认识,教师在教学过程中未给予正确的引导,从而导致学生就业后不愿意从事软件测试工作。

2 企业软件测试人才需求及使用现状

2.1 企业软件测试人才引进现状

软件测试属于软件质量管理的范畴,与软件开发不同,软件测试并不直接产生效益,所以企业在这方面的人员投入相对比较谨慎。在欧美等软件产业发达国家的软件企业中,测试人员与开发人员的配置比例一般已达到或超过1:1;而在国内被调查软件企业中,能够基本达到该比例的企业仅占22%,很多软件企业的测试人员与开发人员的比例达到1:7以上。

随着国内软件市场不断扩大,软件企业逐渐走人正轨。近年来,软件质量越来越被关注,软件测试日益引起国内软件企业的高度重视,企业在软件测试人力上的投入也在逐渐增大。而目前企业引进软件测试人才的主要途径有3个方面:高校、培训机构和自主培养。自主培养软件测试人员的周期相对较长,无法满足人才需求的快速增长;社会培训机构举办的各类培训价格不菲,生源相对较少,且培养出的人才质量良莠不齐,无法缓解人才市场的紧缺状况,这就使得高校成为软件测试人才引进的主要源头。然而,国内高等教育院校对相应的市场需求反应迟缓,开设软件测试专业的院校很少,且应届毕业生常常无法马上胜任相关工作。

2.2 企业软件测试人才技能要求

目前,企业中软件测试人员的工作岗位主要包括以下几种。

1)测试员。

测试员的技能需求主要包括:根据测试规程执行测试,记录测试过程及结果,编写测试日志和提交BUG描述;编写用户手册、在线帮助;参与整理测试项目相关文档、资料等。

2)测试工程师。

测试工程师的技能需求主要包括:根据自动化测试设计,编写测试脚本;根据测试模拟环境设计,开发测试模拟环境及测试工具;协助OA人员对代码进行规范性检查(按照公司标准文件),并记录检查结果;代码测试及走查;制定测试规程,审查测试员的测试日志及BUG描述,并对测试员的测试工作进行指导;分析测试过程及结果,指出可能出错的原因等。

3)高级测试工程师。

高级测试工程师的技能需求主要包括:制定测试方案;分析软件项目需求,进行测试需求分析;根据软件项目概要设计、详细设计和测试需求,进行测试设计,编写测试用例;进行自动化测试设计,并指导测试工程师编写测试脚本;测试工具及测试模拟环境的设计,并指导测试工程师进行测试工具及测试模拟环境开发;进行测试结果分析,编写测试分析报告;在统计分析的基础上对软件整体质量进行评估,提出软件过程改进建议;改进测试过程、方法、技术和工具等。

4)测试经理。

测试经理的技能需求主要包括:测试项目总体计划的制订;组织测试项目总体计划的评审;测试项目执行过程的跟踪和监控管理,并向软件项目组负责人和质量部测试主管报告测试项目的执行情况;分析测试项目资源(人员、设备等)需求,申请资源并参与相关协调工作;制定测试规范;制定阶段测试计划,分配测试任务;组织测试方案、测试需求、测试设计、测试用例、测试脚本、测试分析报告等的评审;组织测试人员的相关培训;测试项目总结;测试项目组的日常管理工作;测试项目组内部的沟通与协调;测试项目组与开发组之间的沟通与协调;测试项目组内部人员的绩效考核管理;向软件项目组提交测试分析报告等。

3 软件测试课程改革方案

综上可以看出,高校在软件测试人才方面的培养模式已经不能适应我国软件产业发展的现状,不能够提供适合企业需求的软件测试人才。为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需要,实现软件人才培养的跨越式发展,笔者认为高校应该根据企业需要,针对软件测试课程展开深入的教学改革和实践活动,调整培养方案,从而培养出大批合格的软件测试人才。

软件测试属于软件工程专业的一个方向,可以依托软件工程专业,加强软件测试课程建设,加大软件测试方面的师资力量,改进教学方法,加强实践教学环节,培养出具有扎实的软件测试理论基础、掌握测试方法和具有一定测试经验的人才。

3.1 正确引导学生的学习观念,培养学习兴趣

要想培养优秀的、符合企业要求的软件测试人才,必须正确引导学生的学习观念,培养学习兴趣。由于社会上一些错误观念的引导,导致了学生毕业后不愿意从事软件测试工作,从而对软件测试课程的学习兴趣不浓。学生中普遍认为“软件测试工作的技术含量不如软件开发”“软件测试工作是一种简单的、重复性的劳动”“软件测试工作更多的是需要耐心,而不是能力”等,对于这样的错误观念,应加以正确的引导。

首先,应分析这种观念产生的原因。在毕业生就业时,很多企业对软件开发人员开出的薪资比软件测试人员高,这是实际存在的现象。进一步分析这种现象产生的原因主要与企业目前的软件测试工作现状有关,大部分企业所作的测试主要集中在功能测试,甚至是界面测试上,难度相对较小;招聘岗位基本上定位为测试员,所以开出的薪资较低。而对于测试工程师、高级测试工程师等软件测试岗位,企业开出的薪资并不会比软件开发岗位低。

其次,可以将软件测试工作和软件开发工作相比较,目前在企业里的软件开发基本上都是采用成熟的开发框架,开发人员只需要编写少量的代码就可以完成相应的功能模块。同时为了开发效率高,企业基本上会将开发人员定位为某个技术领域,比如界面层开发、业务逻辑层开发、数据处理层开发等,不会让开发人员随意变更技术领域。每个领域的开发都是有“前辈”积累的代码或成熟的框架和组件,开发人员的开发难度相对较低,在不同项目中重复性很高,“技术面狭窄、无法深入”已经成为开发人员的明显特征。反观软件测试工作,虽然测试员的工作相对简单,但是对于测试工程师和高级测试工程师来说,其工作涉及需求分析、设计和编码等范围,在项目中要涵盖每一个领域。比如功能测试要涉及业务的全面理解,性能测试要涉及各个知识领域,包括框架、数据库、通信、网络等;从技术来说,软件测试人员比软件开发人员的知识领域和知识理解程度“更宽、更深入”。通过引导,让学生更清楚软件测试工作的现状和未来发展,从而提高其学习兴趣。

3.2 基于完整项目的实践教学

软件测试的目的是“尽可能地发现软件中的缺陷”,要达到这个目的就必须要了解软件,了解软件的开发过程,了解软件开发人员的思维方式。目前很多高校软件测试课程的实践教学都采用小组的形式完成一个测试任务,编写《测试计划》《测试用例》《测试总结报告》等文档,但是这样的实践教学模式过于形式化。学生基本上都是“为了测试而测试”,生搬硬套文档模板,是因为并不了解软件及开发流程,无法从本质上寻找问题,测试流于表面。

要想更好地提高测试技能,必须改变实践教学模式,不能将测试与开发相脱离,而应该让学生投入一个完整的项目实践课题,从中体会测试与开发的关系。项目实践课题可以关注以下几个方面。

(1)课题内容以学生学习和生活中所熟悉的软件系统为对象,如《学生宿舍管理系统》《图书馆管理系统》《校园邮件收发管理系统》等,这样可以更好地引起学生的兴趣。

(2)课题的组织采用小组的形式,3~5人为一个小组,自由组合,并推选一位项目负责人来管理项目。

(3)课题的目标是完成一个软件系统的开发及测试。考虑到与企业里的真实工作流程相结合,项目采用“交叉测试”形式,即每个小组完成本组软件系统的开发任务,然后将软件(包括文档)提交给另外一组进行测试,这就符合“第三方测试”的要求。

(4)课题的考核采用小组答辩的形式。每个小组将自己的开发成果、测试成果进行展示,其他组的同学和老师可以有针对性地提出问题,并对每个小组进行打分,然后根据权重值产生每组的最终成绩。

通过这样的项目实践,可以让学生了解软件项目的开发和测试整体流程。在开发时考虑可能会出现的问题;在测试时进行反思,并深入挖掘,以自身的开发实践来促进测试,对测试的技术难度和复杂度有更深切的体会,从而提高软件测试技能。

3.3 加强校企合作,提高师资水平,建设课程实践环境

企业需要人才,高校为企业培养人才,这无疑为校企合作提供了可行性。高校目前在软件测试课程教学上存在着一定的困难,一方面是师资问题,缺乏具有实际软件测试经验的教师;另一方面是课程实践环境问题,缺乏真实的软件测试环境。这些问题都可以通过校企合作来寻求解决。

(1)高校将教师送到专门的培训机构学习软件测试技能;还可以与企业合作,将教师送入企业参与实际的软件项目,与测试人员一起工作,在实践中学习。这样就可以培养出一批具有实际测试经验和技能的专业教师团队。

(2)高校和企业合作建立软件测试模拟环境,可以参照企业来建立自己的测试模拟环境,也可以和企业共享。这样既节约了成本,又能使得测试环境更加专业,满足学生课程实践的需要。

(3)聘请企业中的资深高级软件测试工程师和软件开发工程师到学校担任助教或顾问,与学生面对面交流,对学生的学习和实践进行指导,从而开拓学生的视野。

(4)在教学中引入企业的实际项目作为案例,结合实际项目中所用到的测试方法和测试技能;也可以请实践项目的开发人员和测试人员现身说法,与学生共享实际经验,让学生真切体会实际项目和理论教学之间的差别,从而达到理论和实践相结合的目的。

(5)聘请企业中资深的软件测试人员带领学生进行课程实训,实训的题目可以是虚拟的也可以是企业中的实际项目;或者让学生到企业进行实训,参与实际的软件项目,让他们真正了解实际的软件测试流程及方法,在实践中提高测试技能。

通过与企业合作,不仅能够培养一支具有实际经验的师资队伍,也能让学生从企业的项目中学习到实际的技能。同样,企业也可以在与高校的合作中引进自己所需要的人才,这对于双方来说都是非常有价值的。

3.4 走教学产业化发展道路

虽然高校并非是盈利机构,主要以培养人才和科学研究为主,但是“巧妇难为无米之炊”,培养人才和科学研究必须要有相应的资源。如果单纯依靠国家的投入,无疑是“杯水车薪”,所以,需要考虑依靠自身的力量和优势来获得资源。教学产业化是一条可以尝试的发展道路。

在软件测试的课程建设中,可以考虑通过国家投入和企业合作的方式,建立一个完整的软件测评环境以及一支由高校教师和企业资深的软件测试工程师共同组成的软件测评队伍,这样的测评环境和测评队伍可以在满足高校实践教学的基础上面向社会,与一些具有资质的测评中心合作,共同承担企业的软件测评任务。这反过来能够促进测评环境和测试队伍的建设和发展,不仅满足了教学要求,又寻找到了一条产业化的发展道路,无疑会对高校其他学科的建设和发展提供借鉴。

4 结语

笔者正是从企业用人的实际需求出发,提出加强校企合作的如上思路,提出面向企业的软件测试课程教学改革方法,让企业能够真正引进优秀人才,让高校走上产业化促进教学发展的道路。

参考文献:

[1]杨鹏,贺平.高职软件测试专业的构建与探索[J].计算机教育,2008(2):63-66.

[2]王福良,任传荣,杨彩萍.关于普通高校教学课程体系改革的思考与实践[J].天津工业大学学报,2002,21(3):26-28.

软件测试课程总结范文6

关键词:思维导图;“软件工程”;教学应用

1思维导图的构成以及相关特征

思维导图最早是由英国学者创立的,是一种新型的笔记方法,主要以放射性思考为重点,最大限度地调动人类的逻辑思维能力,运用条例、文字、数字、图像、颜色等将一些抽象的内容整合在一起,以达到开发人类大脑潜能并激发人类逻辑思维能力的目的。思维导图主要有3大组成部分,即节点、连线以及连接词。连接各个节点之间的线段主要是表示某两种甚至多种概念之间存在一定的联系,包括相同点、不同点。需要注意的是,线段没有方向性可言,可依据知识点之间的关系进行选择,例如单向、双向或者非方向,也可相互交叉,但不能重叠[1]。连接词指的是连接节点的线段上的文字,关键词的概念和线段可通过节点以及连接词形成简单的命题,清楚地表达知识点的内容。在教学过程中,通俗地说,思维导图是运用图像和文字相互结合的技巧,运用相互隶属和有关层级图将教材内容上的联系呈现出来,通过关键词和图像将教材内容中的重点、难点和知识点之间的相互联系罗列成一个较为清晰、明了的结构图,帮助学生梳理相关知识点,并理清教师的教学思路。

2思维导图在软件工程教学中的具体应用

2.1利用思维导图做课前引导

现如今,高校对教师的授课要求更注重质量,教师应抓住教学重点,无需将教材中的内容笼统讲解,理应依据学生的听课状态以及该课程的教学要求进行教授,确保学生抓住课程重点、理清教学内容,而这一环节就可通过利用思维导图做课前引导[2]。首先,教师在授课前,应该切实地掌握每一节课的重点以及难点内容,包括关键词、特殊概念、重点理论等。其次,通过提问题的方式将部分重点和难点内容罗列在黑板上,利用发散性的线条由浅至深逐步引入,并选用颜色笔进行标注。最后,理清这些重点内容之间的联系。这3个环节完成后,课前思维引导图就形成了。该思维引导图会跟着教师的教学安排逐渐清晰、明了,知识点之间的连通性极强,便于学生理清教学思路,组织教学内容的前后关系,学生也可顺着思维引导图的方向,切实掌握教学重点,提高学习效率。在讲授“软件工程”中的概要设计时,教师先制作这节内容的课前引导,概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案,然后进行结构设计,最终确定软件结构。教师可根据“软件工程”概要设计的具体步骤制作思维导图,让学生清楚概要设计的过程,并明确每一个设计环节之间的联系,继而引导学生预习课本,通过浏览教材内容来寻找有关概要设计关键词的具体概念以及应用原理,有助于学生熟悉教授内容,加深学生的记忆力。紧接着,教师需要在思维导图中明确这节内容的重点,并给学生合理设计问题,让学生带着疑问接受授课内容,学生在听课过程中,会高度集中注意力来寻求答案,最终达到教学效果。

2.2利用思维引导图做章节归纳

“软件工程”课程的特点是概念多、教材内容相对较多,但知识点较为分散、整体性和逻辑性不强[3]。大学课堂不似初、高中需要教师适应学生的学习进度,而是学生适应教师的授课进度,教师一节课可能会讲授十几页或者几十页的教材内容,学生很难瞬时消化,学习任务十分繁重,课后复习显得尤为重要。知识只有经过不断地巩固,才能发挥最大效用,因此,教师需要做好章节归纳环节,帮助学生回顾课程知识点并合理地串通章节内容,优化知识点的细节。教师要善于利用思维引导图,做好“软件工程”课程的相关章节总结,引导学生掌握章节内的知识点,尤其是一些重点和难点问题[4]。在章节归纳过程中,思维引导图的内容要突出重点,对于一些容易理解或者重点性不强的知识点可适当省略,便于学生梳理章节知识点。教师还可依据思维引导图来检验学生的学习效果,提出一些关键词,并询问学生有关该关键词的概念以及原理等,最大限度地调动学生的学习积极性并帮助学生记忆相关知识点。在学习完“软件工程”中的软件管理这一章节时,教师要利用思维导图进行章节小结。软件管理主要分为软件工程管理、软件项目管理、软件质量管理、软件配置管理、软件能力成熟度集成模型(CapabilityMaturityModelIntegration,CMMI)这5大内容,教师要通过思维导图的方式将其逐一罗列出来,并带领学生回顾每个管理关节的知识点。同时,该章节中较为重点且难以理解的就是软件工程管理中“进度安排的图表—甘特图、工程网络图”的学习,教师可运用不同颜色的粉笔标明重点,在引导学生学习的同时,通过提问的方式检验学生的掌握程度,确保学生都能攻克这一难点问题,提高学生的学习质量。

2.3利用思维引导图做课程总结

课程总结对“软件工程”来讲尤为重要,教师在讲授完“软件工程”课程后,要通过科学、合理的思维导图来引导学生做好课程总结和复习工作。利用思维导图做课程总结时,教师要站在全局的角度上,系统地串联教材中包含的知识点,通过思维导图将整本教材的体系结构展现在学生眼前,直观、形象地将一些重要教学部分整理出来[5]。科学证明,课程总结工作可一定程度地节省学生的学习时间,提高学生的学习效率。学生可依据思维引导图快速掌握“软件工程”课程的教学方向、授课重点以及各个知识点之间的密切联系,有助于建立起良好的认知结构,培养逻辑思维能力,加深对相关知识点的理解,激发对该课程的学习兴趣。就软件工程教学中软件测试内容而言,教师在利用思维引导图做课程总结时,可先将课程分为4个结构,分别为软件测试的目的与原则、调试的步骤、软件测试的方法、软件测试的步骤与策略。紧接着将4大结构逐一细分,比如软件测试的方法又可具体为静态测试与动态测试、黑盒测试与白盒测试,测试用例的设计;再例如软件测试的策略包括单元测试、组装测试、确认测试、系统测试。需要明确的是,这些测试之间存在一定的相同点和不同点,教师运用思维导图清晰、明了地向学生介绍软件测试课程涵盖的具体内容,并依据思维导图向学生发问,比如,软件测试策略中的4大测试方法各自具有哪些优点和缺点,帮助学生回忆所学知识,并进一步完善思维导图。在教师和学生的相互配合下,思维导图涵盖的内容会更加形象、具体,学生对课程的理解也逐步加深,最终熟练掌握所有课程知识点。

3结语

软件测试课程总结范文7

关键词:软件测试;分阶段教学;案例驱动教学;双证教育;校企合作

中图分类号: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.

[5]邵谨荣.高职院校《软件测试》课程的案例教学探讨[J].职教论坛,2011(4):53-54.

软件测试课程总结范文8

摘 要:软件维护在现实的软件开发过程中占有十分重要的地位,本文介绍了我院的软件维护实践教学的教学方案以及具体实施情况。

关键词:软件工程;软件开发;实验;实践教学;软件维护

中图分类号:G642

文献标识码:B

1 软件维护在软件工程实践教学中的意义

软件工程是一门理论与实践并重的基础课程,教学内容紧密围绕软件开发过程中的各种工程化方法、技术和思想[1]。在现实的软件开发过程中,软件维护占有很重要的地位,许多报告都指出软件维护成本已经占到总体成本的40%~70%以上。软件维护关注于“变化”,包括纠错性(corrective)、适应性(adaptive)、完善性(perfective)、预防性(preventative)等维护类型[2]。当前的软件工程教学中一般都已经包括了软件维护相关理论和方法相关的内容,例如软件维护及可维护性的概念、软件维护的类型和过程、变更管理以及软件再工程等。但软件工程实践教学仍然以瀑布式的正向开发过程为主,主要体现需求分析、设计、实现和测试等基本开发活动,缺少软件维护的实践训练。

由于软件维护在软件开发中的重要性,许多国内外学者都呼吁在软件工程教学中引入软件维护实践(如文献[3])。在软件工程实践教学中引入软件维护内容主要基于以下这些考虑。

首先,软件维护在软件开发中占有十分重要的地位,典型的软件工程开发中花在软件维护上的时间往往比软件开发还要多[3]。而且,大部分毕业生进入软件开发机构后都是从维护性的开发任务开始的。

其次,软件维护实践还能使学生更直观地体会和理解软件工程方法和原则的重要性。软件工程教学中系统地讲授了许多重要的软件工程方法和原则,包括软件文档规范、设计原则(如层次化、高内聚低耦合等)以及编码习惯(如标识符命名、注释和排版等)等,其中大部分都与软件的可维护性相关。通过对文档不全、设计混乱和编码习惯不好的软件系统进行维护,可以对这些方法和原则获得直观、深入的认识和理解。例如,对标识符命名不规范、缺少注释、排版混乱的代码进行阅读和理解,可以深刻认识到好的编码习惯对于维护工作的重要性。

此外,软件维护实践能使学生更好地认识软件开发的现实困难。缺陷报告、需求变更、软硬件平台的变化等导致软件演化的因素在现实的软件开发中总是存在的。通过在实践教学中设置阶段性的需求变更,可以让学生对于现实的软件开发有更加真实的体验,从而提高对迭代、增量式开发等实用的软件开发方法和技术的认知。

2 软件维护实践教学方案

软件维护主要包括纠错性、适应性、完善性和预防性维护四种类型[2]:纠错性维护是针对所发现的错误或缺陷而对软件进行的修改;适应性维护是为了适应外部环境(如硬件、操作系统、外部规则等)的变化而对软件进行的修改;完善性维护是由于功能扩展而进行的软件修改;预防性维护是面向未来的维护需要,为了提高软件的适应性和可维护性等而进行的系统优化和改进。软件维护实践教学应以循序渐进的方式覆盖这四个方面的软件维护任务,同时穿插并突出相关软件工程方法和原则的体验和熏陶。

根据这一总体目标,相应的软件维护实践教学将在给定的作为维护对象的遗留系统基础上,分三个阶段进行,如图1所示。遗留系统分析评估阶段的主要目的是在理解遗留系统需求的基础上对系统的外部和内部质量进行初步的了解和评价。系统改进维护阶段的目标是以当前系统需求为基础,对遗留系统的缺陷和错误进行修改,对系统内部的设计、实现以及文档质量进行改进。系统需求演化维护阶段通过若干次迭代的需求和系统环境变更,进行系统的完善性和适应性维护。针对新需求和系统环境设置的修改将通过系统测试确认,测试结果反馈给系统改进维护阶段,从而进行相应的纠错性维护活动。此外,系统修改过程中发现的内部质量问题(例如可扩展性上的不足等)同样也会反馈给系统改进维护阶段,从而进行相应的预防性维护活动。这种反馈关系以及需求和系统环境变更的迭代进行使得后两个阶段将反复迭代进行。

(1) 遗留系统分析评估阶段

与传统的基于分析、设计和实现的软件工程实践教学不同,软件维护实践教学以已经开发完成的遗留软件系统作为起点。每个小组分配到的遗留系统都是由其他人开发的,犹如在软件开发中接手其他小组的维护工作。因此,首先要求他们在理解项目当前需求的基础上,对所分配的系统进行分析和评估,从而为后续的维护活动打下基础。这阶段的主要实践任务包括:

图1 软件维护实践教学过程

1) 理解遗留系统需求。与正向软件开发一样,软件维护实践也要从了解系统需求开始。需求是评价当前系统质量,进而规划并实施各种纠错性、适应性、完善性和预防性维护活动的基础。

2) 系统测试及外部质量评价。外部质量因素是那些用户能轻易观察到的软件特性,例如功能正确性、性能、可靠性、可用性等[2]。通过系统测试,可以针对用户需求得到遗留系统的外部质量总体评价,以及待纠正的错误和缺陷列表,从而为纠错性维护打下基础。

3) 系统理解及内部质量评价。内部质量是指与系统内部设计和实现相关的质量特性,例如可理解性、可维护性、可扩展性等,它们对于软件工程师而言是十分重要的[2]。通过阅读遗留系统文档(可能残缺不全或质量不高)以及系统代码,同时借助于相关辅助理解工具的支持,获得对系统设计(如体系结构和模块结构等)和代码的初步理解,在此基础上对系统的设计和实现质量进行评价,从而为预防性维护打下基础。

这一阶段首先强化了对于软件测试的实践。在以往的教学实践中,我们发现学生在正向开发阶段往往不太重视测试(对于自己开发的系统进行测试往往会觉得没有必要或比较敷衍了事),且常与调试混淆。而在软件维护实践中,测试对象是他人开发的系统(实践中常常发现学生对于测试、评价其他人开发的系统比较有兴趣),而且测试结果直接决定了对遗留系统的外部质量评价和纠错性改进方案,因此学生往往会认真对待。系统理解能力也非常重要。在教学实践中,可以鼓励学生充分运用相关辅助理解工具进行系统理解,例如Eclipse相关插件所提供的代码UML视图、类语法树、调用关系图、度量信息等辅助理解功能。

除此之外,系统理解及内部质量评价还强化了对于软件工程设计和实现原则的认识。通过阅读遗留系统文档和代码,学生们可以深切体会到好的系统设计、编码风格以及文档规范对于软件开发的重要性。实践中,他们经常会抱怨遗留系统文档不全或不一致、设计混乱、编码风格不好,而这些其实也正是他们自己在正向开发阶段很容易出现的问题。

(2) 系统改进维护阶段

系统改进维护阶段将在遗留系统分析和评估基础上,进行纠错性和预防性维护。针对用户需求以及一般的软件设计和实现质量准则,从外部质量和内部质量两个方面对遗留系统进行改进。这阶段的主要实践任务包括:

1) 纠错性维护实施。针对系统测试过程中发现的问题,进行纠错性维护,包括消除系统意外出错、纠正与功能需求不一致的地方、改进系统性能、可靠性等非功能质量方面的不足。

2) 回归测试及总结。纠错性维护结束后,通过回归测试验证纠错性维护的效果,并进行总结。

3) 预防性维护方案制定及实施。针对系统内部质量评价中发现的问题以及纠错性维护中遇到的困难(例如难以扩展的系统结构等),制定并实施对系统的预防性维护方案,包括对系统设计和编码质量的改进,以及对开发文档的补充和完善等。

4) 系统评审及总结。预防性维护结束后,对系统的设计、代码及文档进行评审,总结改进情况以及所获得的体会和经验。

这一阶段首先涵盖了纠错性维护和预防性维护实践。其次,预防性维护实践通过系统设计、开发文档、编码风格等方面的改进,强化了相关软件工程方法和原则的训练。

(3) 系统需求演化维护阶段

前两个阶段的软件维护实践都还停留在原有系统基础上,系统需求演化阶段将通过用户需求和系统环境的变化,引导学生进行完善性和适应性维护实践。由于现实中的软件开发一般都包含多次迭代和增量,因此这阶段的维护实践也将迭代进行多次。这阶段的主要实践任务包括:

1) 需求和系统环境变更分析。在原有系统需求基础上,提出若干新的扩展功能要求和系统环境变更(例如改变原有的数据库管理系统),要求学生通过与助教的沟通和交流明确需求和系统环境变更要求。

2) 系统修改方案制定及实施。根据变更要求和对系统设计、实现的理解确定系统修改方案并加以实施。

3) 系统测试。针对需求或系统环境变更进行系统测试,对系统修改进行确认,所发现的错误和缺陷将反馈给纠错性维护活动。

4) 系统内部质量反馈。针对需求或系统环境变更的修改活动可以对系统的内部设计和实现质量进行检验,暴露设计、实现及文档等方面的问题,这些问题将反馈给预防性维护活动。

系统需求演化维护阶段除了涵盖完善性和适应性维护实践外,还具有以下几个方面的作用:使学生体验到真实软件开发中多次迭代的增量式开发过程;通过需求变更直观体会到可维护性、可扩展性等内部设计和实现质量的重要性;验证改进维护阶段对于改进系统内部质量的效果,加深对于良好的软件设计、编码和文档习惯的认识。

3 教学方案实施

软件工程课程实验可以按照由浅入深的顺序分为认知性导入实验、方法性实验和综合实践三个部分,其中前两部分穿插在一个学期的软件工程课程中进行,而综合实践则可以在后续的软件实践类课程中安排[1]。在教学实践中,软件维护实践应该作为综合实践安排,此时学生已经有了软件工程课程教学和一些正向开发实践(主要包括需求分析、设计和实现)基础。软件维护实践以3~5人的小组为单位,每个人可以分别担任需求分析、设计、实现和测试等不同实践任务。

在实践项目选择上,我们从此前的软件工程课程实践、数据库课程实践(数据库应用系统)等实践项目中选取一些具有典型性的系统实现(包括文档和代码等)作为软件维护实践候选对象。这些项目一般已经基本实现了原有的用户需求,但在外部质量和内部设计和实现上还存在许多不足。选取这类项目的好处是由类似背景的学生完成,能够反映许多典型的软件实践问题,同时相关项目学生已经有所接触,也较为熟悉。

在软件实践教学中,我们选取书店管理系统等多个在以往软件工程和数据库等相关课程的课程实践项目作为软件维护实践的对象。这些项目都是以数据库为核心的信息管理系统,这类系统较为典型且本身的需求较容易发生变化。

(1) 遗留系统分析评估阶段

此阶段学生将首先借助于原始需求说明以及与客户(由助教扮演)的交互明确系统需求。在此基础上通过测试和文档、代码分析进行外部质量和内部质量评价。遗留系统外部质量上存在的主要问题包括某些功能与需求不符、运行不稳定、用户使用不方便等。而内部质量方面的普遍问题包括类结构设计混乱、文档缺乏或不规范、编码质量差(命名不规范、缺少注释)等。

本阶段安排约4周时间,其中第1周用于了解遗留系统原始需求,第2周用于系统测试,后2周用于系统理解和分析。本阶段要求提交系统测试报告、系统总体评价报告(包括外部质量和内部质量)。

(2) 系统改进维护阶段

此阶段的系统改进针对系统测试报告中所发现的错误和缺陷进行纠错性维护,针对系统总体评价报告中指出的设计、编码和文档上的不足进行改进。初次的系统改进后,本阶段的维护活动还可能在系统需求演化维护阶段的反馈作用下反复多次进行(见图1)。

本阶段在每次迭代中安排约2周时间,要求提交回归测试报告、纠错性维护总结以及预防性维护总结。

(3) 系统需求演化维护阶段

此阶段的维护活动由需求或系统环境变更发起。以书店管理系统为例,遗留系统实现的基本功能包括图书查询、选购、订单生成、付款(现金方式)及简单的库存管理等。需求变更可以包括增加信用卡支付功能(通过虚拟的银行支付接口)、增加邮购和网上订购功能、增加会员制折扣功能等。系统环境变更可以包括改变所用数据库管理系统(如由Access改为MySQL)、改变国内地区标准编码(用于标识供应商及顾客的地区)等。相应的维护活动除了满足这些新需求及系统环境外,还可以引导学生进一步改进系统的设计和实现等。例如,为了更好的容纳信用卡支付这一新的付款方式,可以从现金支付和信用卡支付中抽取出公共的支付方式类,从而改进系统的设计结构。

本阶段在每次迭代中安排约2周时间,要求提交系统修改方案、测试报告和系统内部质量改进反馈报告。

这样,在一学期的软件实践课程中,系统改进维护阶段和系统需求演化维护阶段一起可以安排3次左右的迭代,每次完成1~2项需求或系统环境变更。

我们在复旦大学计算机科学与技术学院的软件工程本科教学实践中利用软件实践课程开展软件维护实践教学。软件实践课程安排在软件工程课程(第六学期)之后的第七学期,此时学生已经系统的学习过软件工程、数据库、操作系统等课程,初步具备了开展综合性软件开发实践的基础。

4 总结

软件开发实践是软件工程教学的重要组成部分。传统的软件开发实践教学主要以瀑布式的正向开发实践为主,忽略了软件维护实践的训练。软件维护实践的意义不仅在于软件维护在现实软件开发中的重要地位,而且可以使学生更加直观、深刻地体会和理解相关的软件工程方法和原则。通过遗留系统分析评估以及多次迭代的系统改进维护和需求演化维护,不仅培养了系统理解、修改等软件维护实践能力,还强化了软件设计准则、编码和文档习惯以及软件测试能力的培养。

参考文献

[1] 彭鑫,赵文耘,钱乐秋.软件工程实验教学研究与实践[J].计算机教育,2007,(20).

软件测试课程总结范文9

关键词:软件测试;企业需求;教学方法

中图分类号:TP311.53—4 文献标识码:A 文章编号:1007—9599 (2012) 14—0000—02

随着软件产业迅速发展,软件产品的质量成为人们共同关注的焦点,软件测试的作用和地位越来越显得突出,它是软件产品质量控制的具体实现环节及其根本保证[1],社会对软件测试人才的需求量剧增,对软件测试人员的综合素质要求也越来越高。

但由于我国的软件测试技术起步比较晚,并由于主客观方面的种种原因,在大学计算机教育中,软件测试教育存在很多问题,无法达到《软件测试》课程教学的目的和要求,也无法满足业界对软件测试人才的需求。

一、教学现状

在目前的教学环境中,虽然《软件测试》是一门理论性和实践性都很强的专业课,但大多数院校在教学过程中,仍会忽视强调测试理论和相关基础的重要性。在理论教学过程中,不重视测试的基础教学,在培养过程中更多地停留在知识传授,忽视软件测试职业素质的培养,实际上,一个合格的测试人员除了具备测试专业知识外,严谨的工作习惯、良好的沟通能力和团队合作精神也是软件测试人员所必需的[2]。在实验教学过程中,一味依赖教材的理论内容,忽略思考的智力技能培养,所设计的实验内容不符合现实需求,软件测试的实践教学存在同社会脱节。在教学方法方面,传统教学方法形式单一,学生学习兴趣很低,自主学习能力较低。本文针对教学过程中理论教学、实践教学、教学方法三个方面,对软件测试人才的培养总结一些思考和心得。

二、思考和实践

(一)重视并渗透理论教学

重视软件测试课程的理论教学,基础的扎实与否直接影响了能力的可持续发展性。在制定课程大纲时,加大理论课时的分配,使学生从根本上认识到理论在课程学习中的重要性,不再简单的认为软件测试只是简单的“点击”等操作,而是一门对思考和逻辑要求很高的课程。好的软件测试人员拥有高敏感能力,高发散能力,高分析能力,而这些都是以扎实的理论基础为前提的。并在教学过程中,不仅仅以教材为理论传授基准,应结合项目中的实际测试场景和案例,加深对各个理论点的理解和运用,以树型结构串联零散的知识点,注重知识的内部体系结构,使学生系统的掌握测试的理论知识,锻炼思维发散和思考能力,从而引导学生对知识和技能进行举一反三、触类旁通的迁移。

将软件测试的思想深入广泛地渗透到所有的专业课程中。例如在各类程序设计语言基础课程中引入单元测试的思想,在软件工程课程中,强调软件测试的重要性,增强软件质量管理意识,在面向对象的分析和设计课程中,强调测试和开发并行并重的思想[3]。

(二)以企业需求作为实验教学的目标

1.以企业项目为教学内容

在传统教学中,软件测试实验的内容通常只单纯的利用教材上介绍的不同测试方法来“设计”实验,所设计的实验内容泛泛化,不仅不符合企业的需求,而且不符合项目测试中的完整性和规范化。在实际工作中,一个项目中所涉及到的测试技术和方法,以及这些技术的重难点,都很难在现有的实验教材中得以体现。而以项目为实验教学的方法,是以企业的需求和实践流程为出发点,在实验的教学过程中以项目为主线展开,以测试的流程由浅入深,把相关知识点融入到项目的各个环节中去,将项目完整的进行剖析,循序渐进[3]。

2.重视文档和流程

在企业的实际测试工作中,文档是非常重要的。我们以一个符合现实性的完整B/S模式的“图书管理系统”作为测试案例,该项目涵盖课程的主要知识要点和基本技能,项目大小和难易适中,提供给学生系统的代码、需求分析、概要设计书、详细设计书等必须文档[4],只有具备以上资料,才可真实的模拟实际工作模式。通过文档,使得学生明白所测软件提供什么功能?是否符合用户的需求,设计是否合理,结果与设计是否一致,通过文档,使得学生一边熟悉系统一边思考软件研发者在设计过程中的遗漏点。文档,不仅是测试人员与开发人员之间沟通的直接桥梁,而且这种彼此的不断沟通以及思考,直接影响了软件测试的最终质量。同时,除了以项目为教学的基本单位,并强调文档在项目中的重要性,还要严格按照工作中的实际情况,将学生分成若干个项目组。项目组分别设置测试经理、测试负责人、测试组员等角色,各尽其责。这种强调文档,各尽其责的项目教学方式,更加符合企业的实际需求,并有效锻炼了学生的团队合作能力。

软件测试课程总结范文10

关键词: 项目化教学 软件测试 职业素质 工作过程

一、 现阶段软件测试课程教学存在的弊端

1. 纯理论化的教学。

在传统的软件测试教学中,“一支粉笔,一本教材,一块黑板”是普遍的教学方式。这种方式容易使教者感觉枯燥,上课内容平淡无味,学生在学习的时候也容易厌倦,觉得老师都是纸上谈兵,从而失去学习兴趣。

2. 授课内容与企业需求相脱节。

现阶段软件测试课程在内容设置上依然处于闭门造车阶段,并未从企业调查入手,不了解企业的需求是什么,导致学不能致用。

3. 忽视学生动手能力的培养。

理论化的教学,仅仅是从知识层面对学生进行填鸭式的灌输,从而使学生仅仅知道“是什么”,而不知“怎么做”,而如今企业在招聘人才时更加注重学生的动手实践能力,要求把知识应用到实际工作中去。

二、 项目化教学法的实现途径

以典型工作过程依据项目化教学理念分析为基础,采用项目化的思想建设软件测试课程,是进行软件测试教学改革的唯一途径,是提高软件专业教学质量的重要途径, 是加快高技能型软件测试人才培养的基础。

在采用项目化过程对软件测试教学方法进行改革的过程中,对授课过程中的项目进行了级别划分,依据涵盖范围的不同,把项目划分成四个等级,对教学过程中设计的项目进行分层次应用,调整教学内容,改革实践教学方法,培养满足当代社会需求的新层次人才。

通过项目教学,可落实教学的循序渐进原则、系统化原则、目标性原则、整体优化原则及规范化原则。项目教学使教学内容的构建紧密围绕课程总体目标展开,项目组成具有针对性强,目标具体明确、步骤清晰的特点,它按照组成技能学内容及相互间的内在联系,使各部分内容有所侧重,互相衔接。

项目教学法在软件测试课程中的引入,是对传统的软件测试课程方式的一次有意义的改革, 通过整合课程资源,建立具体的教学评价, 将整个教学课程项目化,结合实际的企业需求, 并在过程教学中不断完善和更新,相信这种课程建设将更贴近实际,更有利于缩短学生知识学习和企业实践之间的距离。

三、 项目化教学的创新点

1. 项目化驱动。

软件测试是一项技术性较强的工作,规范的实施也是以工程的方式开展或进行。因此,最好的课程内容及教学设计是通过项目的活动及过程来呈现问题,运用相关理论知识解析问题,以及通过工程过程解决问题,通过项目阐明技术方法与策略的运用。项目的复杂性通过分解得到局部的单一性和简单化。项目包含了由易到难、由简单到复杂、由单一到综合、逐步实现的内容和过程。软件测试本身就是理论与实践紧密结合的一门技术学科或工程体现,贯彻项目教学法是该课程理论教学与实践教学“一体化”的最好形式。

2. 项目等级化。

根据软件测试课程的培养目标,对整个课程进行四级项目划分:

一级:综合项目,符合本专业主要核心课程和能力要求的综合项目,1个;

二级:课程项目,为增强该门课程能力目标的实现而社的课程项目,2个;

三级:单元组项目,结合2个单元或以上的能力要求,为强化课程能力目标而设的单元组项目,5个;

四级:单元项目:基于某一个单元(模块)内,以增强能力培养而设计的单元项目,8个;

通过这四级项目全面提高学生的实践能力,积累职业经验,提高就业竞争力。

3. 校企合作共同开发课程资源。

在课程资源和项目资源的开发过程中,和企业共同参与,制定出符合企业实际的项目需求、项目环境、项目验收标准等,让学生更贴近专业领域中的实际应用,增强学生的学习热情。另外,课程中的部分章节由企业兼职教师来完成。

4. 创新的过程评价模式。

采用边学习边评价的模式,通过学生在学习过程中的一个个项目完成情况,评价他们的学习能力、动手能力、团队协作能力等职业能力。

四、 项目化教学的预期目标与成效

1. 创建“仿真式”项目案例库。

创建一个“仿真式”的项目案例库,案例来源于企业曾经做过的项目,同时确保每一个级别的项目中都有一到两个真实完整的案例,用于学生在仿企业管理的实验室中分阶段完成项目。

2. 与企业建立多方位、深层次的合作。

与软件企业合作开发软件测试课程的理论及实训教材,并邀请企业资深的工程师到校担任兼职教师,该企业为《软件测试》课程提供一部分的项目资源,选拔学生到企业实习,签订学生订单。

3. 提高学生的职业能力,培养新型人才。

项目教学法在软件测试课程中的引入,确定以项目作为载体的项目设计思路, 实际项目设计既有在企业中应用的普遍性和典型性,又能最为有效地促进学生职业能力的发展,达到本课程的目的。这是对传统的软件测试课程方式的一次有意义的改革, 通过整合课程资源,建立具体的教学评价, 将整个教学课程项目化,结合实际的企业需求, 并在过程教学中不断完善和更新,相信这种课程建设将更贴近实际,更有利于缩短学生知识学习和企业实践之间的距离。

五、 结语

对软件测试课程进行项目化教学的改革,有利于教与学的改进,使授课内容与授课方式更加人性化、工作化,同时也有利于学生职业素质和职业能力的培养。项目化教学改革的探索在实际教学过程中已获得了明显的效果,激发了学生的学习兴趣,端正了学生的学习态度,提高了教学效率。

参考文献:

[1]温艳冬,石冬凌.软件测试课程三级项目教学实践[J]. 计算机教育, 2010-11-25.

[2]袁立,李晓理.基于CDIO的"模式识别"课程教学改革研究探索[J].中国电力教育, 2013.4.

[3]郭娟.项目驱动教学法在《软件测试》课程中的应用[J].中国科技信息,2012/21.

软件测试课程总结范文11

摘 要:文章以如何培养满足企业要求的软件技术人才为出发点,详细论述广州大学华软软件学院培养软件技术人才的实践教学体系及实践教师队伍建设和实践教学质量评价。

关键词:独立学院;软件技术人才;实践教学体系

软件产业正成为信息产业和国民经济发展新的增长点,然而国内的软件企业一再强调软件人才的不足,原因何在呢?软件人才教育的相对落后是影响人才短缺的一个重要因素,学生在学校学到的知识不能直接应用到企业的软件开发或测试上[1]。软件企业要加大与高校及培训机构的合作,开展“订单式”人才培养,学校在教学过程中,更加注重实践教学。广州大学华软软件学院成立于2002年,是全国300多家独立学院中唯一的一所软件学院,学院在软件技术人才培养方面的探索和实践已取得一定的成效,其中实践教学发挥了重要的作用。本文着重介绍学院软件技术人才实践教学体系的相关内容。

1 软件工程专业简介

软件技术人才的培养主要立足于软件工程专业(专业方向包括软件开发、移动互联网络应用及软件测试技术)和计算机科学与技术专业(笔者所在系的专业方向为企业级数据库应用与开发)。软件工程专业重视基础理论、工程训练、职业发展及外语能力的培养,实践课程注重软件系统分析与设计、软件开发与测试、软件质量控制与项目管理等方面能力的培养,要求本专业学生在掌握计算机软件领域基本理论知识的前提下,通过与IBM、Microsoft、SUN等业内大型企业合作,及时了解业界最新的软件开发与设计和软件项目管理技术,并能熟练使用软件工业界主

作者简介:吴爱华,男,讲师,研究方向为数据库技术、软件开发方法及软件测试技术等。

流的开发工具以及开源软件技术开发有一定质量的软件系统[2]。

1.1 专业方向

软件工程专业包括三个专业方向:软件开发、软件测试及移动互联网软件应用与开发。软件开发方向侧重邮件交换技术、短信平台应用及网络应用编程,要求学生能搭建B/S动态交互网站,熟悉软件开发方法,对软件工程有一定的了解,能胜任应用软件系统的设计、开发、测试、维护等工作。软件测试方向要求学生具备一定的软件开发能力,掌握软件测试理论与技术,侧重于单元测试用例编写,熟练应用软件自动化测试工具,搭建不同的测试环境并在不同环境下进行软件测试,了解测试管理的内容并能编写规范的测试报告。移动互联网应用与软件开发方向侧重移动通信及移动互联网基本理论知识,移动终端系统应用开发、维护及单元测试,移动互联网通信开发技术及移动互联网WAP平台搭建和移动搜索引擎开发[2]。

1.2 软件工程专业课程体系

软件工程专业三个方向的课程包括共同的专业必修课和各自的必修课。共同的必修课主要有计算机科学导论、离散数学、C++程序设计、SQL Server数据库、软件工程概论、数据结构与算法、操作系统、编译原理、Web编程。表1列举出三个专业方向相关的必修课程。

表1 各专业方向专业必修课程一览

2 实践教学体系

软件工程专业的专业课均是理论与实践并重的课程,理论课和实践课各占一半学时,通过实践教学巩固所学理论知识,培养学生解决实际问题的能力。在实践教学过程中,启发学生积极思维,利用所学理论确定实验课题的解决方案,掌握解决实际问题的方法和思路,同时也是培养创新型应用人才的有效手段。

2.1 实验课

软件工程专业的实验课分为基础性实验、综合性实验、设计性实验三种形式。基础性实验是指围绕课程某一章节的教学内容所开展的实验,是一种演示性或验证性实验。综合性实验是指实验内容涉及本课程的综合知识或与本课程相关课程知识的实验,一般以课程设计的形式进行。设计性实验是指给定实验目的、要求和实验条件,学生自己设计实验方案,并加以实现的实验,一般以项目实训(包括毕业设计)的方式进行[3]。专业基础课程以基础性实验为主,各专业方向的专业必修课涵盖基础性实验和综合性实验,毕业项目实训和毕业实习为设计性实验项目。

课程采用大小课相结合的方式,实行课程负责人负责制,课程负责人和课程组其他教师共同承担该课程大小课的教学任务,大课即理论课,小课即实验课,根据修读的学生人数分配大小课的班级,大课教室一般是容纳90至300人不等的多媒体教室,小课教室一般都是配备64台电脑的机房。

2.2 项目实训

项目实训在软件工程专业教学中占有重要的地位,主要包括两种形式:三年级学生暑期的集中式项目实训和大四第一学期的项目实训课程。

项目实训模拟软件生产流程,结合一个模拟的软件项目,让学生体验项目启动、需求获取、架构设计、详细设计与实现、测试、质量管理等完整过程,是对专业学习的一次集中总结和实践,教师通过实训项目管理平台对集中式的项目实训进行有效的管理。集中式项目实训邀请IBM、Microsoft、Parasoft等国际知名软件企业的专家指导,在实训项目中整合三个专业方向,软件开发与软件测试方向组队,移动互联网应用与软件开发与软件测试组队,目的是模拟软件企业的生产模式,使学生在未进入企业之前就对企业的生产方式有所了解,旨在培养学生软件设计、开发及测试的能力以及沟通能力和团队合作精神。

2.3 毕业设计

毕业设计是在专业课程的教学完成之后进行的一个重要环节,着重培养学生综合分析和解决问题的能力,通过综合训练深化、拓宽、运用所学知识,是学生从学校学习到岗位工作的过渡环节,同时也是衡量高等教育质量和办学效益的重要评价内容。教师结合业界新技术、新业务拟题,提供具有创新性的毕业设计课题以提高学生的创新能力,指导过程中启发学生逐步解决问题的能力。

2.4 精英班

学院设有Java精英班和.NET精英班,由软件研究所与软件工程系共同承担,成立专门的教研室负责日常管理和教学工作,通过有效的方式甄选出一批有志于从事软件开发、学习能力较强的学生,精英班加大实践教学力度,重点是项目实训,并与企业有对接项目,学历教育以外还增加了一系列专业课程,使优秀的学生接触到更多的专业知识,获得更多的实践机会,表2列举的是Java精英班的主要专业课程,表3列举的是.NET精英班的相关课程。

表2 Java精英班主要课程

(The Main Courses of Java Elite Class)

表3 .NET精英班主要课程

(The Main Courses of .NET Elite Class)

2.5 软件设计竞赛

我们组织学生参加各级专业竞赛以促进实践教学,扩大学生自主学习的时间和空间,调动学生学习的主观能动性,培养学习兴趣和创造性思维能力。学院提供开放式实验室供参与竞赛的学生使用,吸引学生在此进行实验、实训、技能训练,历年来我校学生在各级竞赛中获得较好的成绩。

1)“高校杯”软件设计大赛由广东省计算机学会主办,是省内在校大学生软件设计专项比赛的最高赛事,比赛每年举办一次,目前已成功举办20届。2006年我校成功承办第16届“高校杯”软件设计大赛,该项赛事首次由独立学院承办。本届大赛全省19所高校的25件作品进入决赛,本院学生开发的“无线远程终端”夺得大赛第一名和“创新奖”双料大奖,另一个参赛作品“Soker搜索引擎”则获得二等奖。

2)“国信蓝点杯”全国软件专业人才设计与开发大赛由教育部、工业和信息化部主办。首届比赛我校获得Java组2个一等奖,5个二等奖,4个三等奖,C语言组获得2个二等奖,4个三等奖,7个优秀奖;2011年第二届我院共有53名选手参赛,其中获得一等奖6名,二等奖10名,三等奖21名,优秀奖8名,同时我院还获得优胜学校奖和优秀组织奖。

3)“微软校园之星大赛”由微软教育培训合作伙伴ATA公司举办,旨在提高学生软件开发的创新能力,选拔优秀人才,是“微软实习生计划”的一部分。2009年软件工程系第一次组织2006级学生参加了第三届“微软之星大赛”,两个学生组队入围决赛,最终获得全国三等奖,2010年组织2007级学生参赛,三个学生组队闯入决赛,最终获得全国一等奖。

4) 广东大学生科技学术节由共青团广东省委员会、广东省教育厅、广东省科技厅、广东省学生联合会联合举办,以“营造学术氛围、提升科技素质、培养创新人才”为主题。我院软件工程系4支代表队分别闯入2011年第五届广东大学生科技学术节之首届“创新杯”粤港澳大学生计算机软件应用大赛总决赛,并最终获得两个二等奖和两个三等奖。

2.6 实训基地建设

学院的软件研究所主要负责学校信息系统的开发和维护,同时也是学生的校内实训基地,每年都会选派大三学生到研究所实习,表现优秀的留校或者推荐就业。学院自成立之初就着手与企业合作建立校外实训基地,目前为止实训基地数目达到30家,其中包括IBM、南天电脑系统有限公司、神州数码、电讯盈科、华南资讯等。

3 实践教师队伍建设

作为教学活动的直接承担及实施者,教师自身的科研实践能力直接影响实践教学的质量,现阶段独立学院教师的科研实践正是其薄弱环节,究其原因有以下几点:1)独立学院乃民办学校,缺乏吸引高端人才之优势;2)教师的来源一是退休的公办学校的教师(教授或副教授),未必有足够的精力再投入科研实践,二是刚刚毕业的大学生(本科生和硕士生),三是来自企

业,有一定的业务和工程经验,但缺乏科研能力。

加强实践课程教师队伍建设,提高教师的科研实践能力,首先要合理使用资深教师的科研资源,指导青年教师积极开展科研实践,申报各级课题;其次青年教师要紧跟理论和应用领域前沿,结合自己的专业方向努力钻研,再则学校为教师提供宽松的科研环境,并予以积极支持,可考虑与科研院所建立合作关系,选拔青年教师去培训或进修。教师在进行科研实践时,选拔学有余力的学生参与,对学生的实践和创新能力的培养是大有裨益的。

4 实践教学质量评价

为提高实践课程的教学质量,应该制定合理的质量评价指标。结合教育部的评估要求与独立学院的具体情况,主要从以下几个方面进行评价:1)实践课程的内容是否符合专业特色;2)实践课题能否培养学生的动手及创新能力;3)实践课程的考核方式是否合理有效;4)教学督导的评价及学生的反馈意见。

5 结语

以上从6个方面介绍了我院软件技术人才的实践教学体系,实践教师队伍建设。实践证明,遵循此教学体系培养出来的学生越来越多地受到企业的青睐。

参考文献:

[1] 高素梅.当前我国软件产业发展状况及趋势[N].中国电子报,2008-6-2(10).

[2] 广州大学华软软件学院软件工程专业介绍[EB/OL]. [2011-05-01]. /major01.aspx

[3] 广州大学华软软件学院. 广州大学华软软件学院实践性课程建设实施办法[S]. 广大华软[2011]10号文.

Practical Teaching System for Independent Colleges’ Talent of Software Technology

WU Aihua

(Department of Software Engineering, South China Institute, Software Engineering Guangzhou University,Guangzhou 510990, China)

软件测试课程总结范文12

【关键词】测控技术与仪器 计算机 课程体系 试点班

【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2011)11-0009-02

目前,我国高等学校教学内容、课程体系改革的各项工作正在如火如荼地开展,其中学科内部及学科之间课程体系的优化整合是本科专业建设和改革最为关键的工作。[1~3]考虑到专业特点和应用型人才培养规格的要求,结合计算机课程平台教学的实际特点,我们对测控技术与仪器专业计算机系列课程进行了大幅度改革,并对特色专业建设的应用型人才培养试点班实施。本文从测控技术与仪器专业对计算机科学与技术知识的基本要求、计算机课程体系改革的具体方案及实施效果三个方面介绍了试点班的改革与实践经验。

一、测控技术与仪器专业对计算机技术的基本要求

测控技术与仪器本科专业是一个多学科交叉的专业,涉及机械工程、光学工程、电力电子学、计算机科学、信息科学、控制工程、仪器科学与技术等一级学科,其中计算机系列课程的教学主线大体为:信息的获取、传输、处理、反馈控制,主要内容包括:在硬件方面,要求掌握计算机的基本组成,包括主流CPU结构与原理(有取舍、有侧重地学习X86、单片机、PLC、嵌入式、DSP、FPGA中的一到两种),存储器组织,总线结构,读写时序,常用基本接口电路,常用输入输出设备等。在此基础上能够完成常用的信号输入输出通道的硬件电路设计。在软件方面,要求掌握基本汇编语言、C语言、数据结构的基本知识、操作系统的基本原理。在底层,要求能够编写驱动程序完成数据输入输出与数据传输,应用层要求能够完成数据的简单计算处理。在达到软硬件基本要求的基础上,学生可以进一步了解各种流行的数据传输总线、协议及链路,能完成数据的传输、显示、打印的硬件通道设计;可进一步掌握面向对象的编程、可视化编程、网络化编程方面的软件程序编写,实现仪器的虚拟化、智能化、网络化。

改革与实践的总体思路归纳如下:以学生最终能够应用乃至设计完整的计算机测控系统(包括硬件电路与软件程序)为教学目标,从简到繁、从易到难、从基础到应用,分阶段、分步骤,硬件电路与软件设计相结合,课堂教学与实践锻炼相结合,多个学期连续不断线教育与短期集训相结合,课内教育与课余兴趣小组活动相结合,由多个任课教师分成小组,分工配合地实施课堂教学与实践教学。

二、计算机课程体系改革具体方案

测控技术与仪器专业计算机系列课程的优化整合方案为:从修订教学计划入手,着力于对学生的知识、能力、素质结构进行调整,注重基础,强化学生综合实践能力和创新意识的训练,有效克服当前教学工作中存在的教学内容分散陈旧、教学方法过死、教学环节不连贯等问题,解决长期以来自然形成的课程科目与实践环节过多与总学时有限的冲突、知识面广而不精等问题。

1.教学内容的整合原则

在原有课程体系中,软硬件方面的课程设置均存在一定的弊端。软件程序方面,必修课只有《C语言程序设计》一门,开课时间设置在第一学期,与后续课程脱节,导致学生到第五、第六学期的实践环节用到时已基本遗忘。另外,教学内容不充分,没有覆盖操作系统、数据结构等方面的基本知识。硬件方面,必修课中《微机原理与接口技术》与《单片机原理及应用》同属硬件类课程,内容重复,讲授的内容不尽合理,如没有目前常用的PC机板卡资源、嵌入式技术等。此外,选修课多而杂,教学主线不明确,与专业培养目标配合不紧密。

具体来讲,对教学内容进行优化整合的几个原则如下:①综合性:课程设置改变传统的自成一体的单个课程范畴,进行优化整合,提高课程的综合化程度,达到以软硬件基础知识为主体,以计算机测控应用技术为主线,拓宽知识面,改善知识结构;②先进性:将传统的测控技术与当代最新的计算机技术相结合,使原来单一模式的分析方法转变为生动丰富的多方案优化,加深了对现代测控手段的理解和掌握;③实用性:找准应用型人才的培养定位,教学内容的安排上注重夯实软硬件基础、拓展系统综合应用能力,避免传统教学中理论教学的单调性和复杂冗长化。

2.教学内容的深度凝练

经优化整合后,3门必修课的主要教学内容归纳如下:

(1)《程序设计基础》是本专业计算机系列课程体系中的核心课程之一,综合了《操作系统》、《C语言程序设计》与《计算机软件基础》等课程的内容,并通过实验巩固所学知识,为后续计算机测控技术方面的专业课程打下坚实的基础。

(2)《计算机硬件基础》旨在让学生掌握微型计算机硬件的基本组成、体系结构和工作模式,着重使学生掌握微型计算机中存储器、I/O接口、总线、中断、人机交互等概念、原理和应用技术,同时通过实验,初步形成计算机硬件方面的工程设计与应用能力。

(3)《计算机测控技术》旨在通过本课程的学习,使学生学会设计基于微型计算机的测控系统,解决工程实际问题,要求学生掌握基于微处理器的计算机测控系统的基本体系结构、常用输入输出通道的设计、常用人机接口的设计、常用数据传输电路的设计、简单数据处理算法以及计算机测控技术的若干新进展,形成工程设计与应用能力。

改革后,上述3门必修课程的教学内容由多门课程优化整合而成,注重学生综合素质和独立工作能力的培养,在计算机系列课程体系中所占比重大大增强,见图1。在保证课程基本教学内容的基础上,突出实践教学环节,注重教给学生科学的思维方法,训练其逻辑思维及理工科思维能力。

3.独立实践环节的合理设置

我校测控技术与仪器实验室下设精密机械与测试技术、传感技术、光信息技术、现代电子技术、信号处理等多个功能实验室,可开展全方位的独立实践教学活动,有效提高学生对于光机电一体化测控系统的设计与应用能力,促使学生从课程分类学习向工程实际综合应用的转化。

(1)作为实践教学必修课,《计算机测控实践》安排在计算机系列理论课程全部结束之后进行,集中设计时间为两周,相比改革前其教学力度加强。其教学目的在于使学生巩固计算机方面的基础理论知识,同时训练学生运用计算机软、硬件知识解决具体工程问题的能力。通过多人共同完成一项设计任务使学生认识到团队协作的重要性及协作技巧,并通过设计使学生掌握设计说明书的撰写方法及基本技能,培养工程师的素质。

(2)《测控专业综合实践》环节安排在第7学期,学时为3周,题目均来源于教师的科研成果,打破了传统的演示性、验证性和单一性实验模式,建立起了新的设计型、创新型、综合型的实践环节体系。要求学生独立完成一个实际的小型光机电一体化测控系统(或大系统的一部分)的设计与调试,根据学生具体情况因材施教,有针对性、分群体加强学生在某个具体技术领域的技能培养,做到学以致用。

三、实践探索及初步成效

以上计算机系列课程设置方案,是北京信息科技大学测控技术与仪器专业在多年的教学实践与改革探索过程中逐步形成并实施的。具体地,首先,在测控08级尝试独立的实践环节《计算机测控实践》,在第六学期初由教师集中讲解,布置课程设计任务,提出设计要求。学生根据任务与要求,结合自己的特长与兴趣查阅资料、制订设计与调试方案。随后,学生根据自己的时间灵活安排,分散在相关实验室进行系统分模块设计和调试,教师分组指导与答疑。最后两周学生在实验室进行系统联合调试,撰写课程设计说明书,完成课程设计验收与答辩。

其次,针对测控09级,有意识地对计算机系列课程的教学内容进行了局部调整与取舍,注重教学环节的搭配与教学内容衔接。同时,花大力气建设了计算机系列课程实验系统。针对《微机原理及接口技术》与《单片机原理及应用》,专门设计、制作了模块化的实验系统,该系统让学生采用搭积木的思路来设计、调试、验证简单的计算机测控系统及其应用,如温湿度测量、处理、输出显示等系统。

最后,根据前期积累的改革实践经验和教训,形成了2010级专业培养计划和教学大纲等指导性教学文件,在测控2010级特色专业建设试点班中推广实施。实施新培养计划与教学大纲的测控1001班(试点班)学风突出,在大一全年的各次考试中单科与总体成绩均名列前茅,为后续几年的专业课学习打下了坚实的基础。

四、结束语

根据测控技术与仪器专业多学科交叉的特点,并结合我校该专业应用型人才的培养目标,在总结经验与摸索创新的基础上,我系对该专业的计算机系列课程的设置与教学环节进行适应性改革,构建了合理有效、因材施教的人才培养模式,形成了“专业口径宽、实践能力强”的专业特色,并对应用型人才培养的特色专业建设试点班进行实践,取得了初步成效。

参考文献

1 唐鸿儒、郑洁、黄亚忠.测控技术与仪器专业教学研究与实践[J].高教论坛,2009(5):71~74