软件测试实习工作计划(精选5篇)

  • 软件测试实习工作计划(精选5篇)已关闭评论
  • A+
所属分类:文学
摘要

软件工程课程是高职软件专业类学生的专业核心课,是理论和实践紧密结合的典型课程,主要培养学生软件开发能力和项目管理能力。但在实际教学过程中,因为缺乏明确工作任务并涵盖课程理论知识的综合项目,学生对软件工程理论感到十分抽象,对实践操作也只是囫…

软件测试实习工作计划(精选5篇)

软件测试实习工作计划范文第1篇

[论文关键词]任务驱动 项目导向 案例教学 多元整合

一、引言

软件工程课程是高职软件专业类学生的专业核心课,是理论和实践紧密结合的典型课程,主要培养学生软件开发能力和项目管理能力。但在实际教学过程中,因为缺乏明确工作任务并涵盖课程理论知识的综合项目,学生对软件工程理论感到十分抽象,对实践操作也只是囫囵吞枣,根本体会不到软件工程在企业项目开发中的宝贵作用。

针对软件工程课程,国内职业教育课程在借鉴外来职业教育课程开发理论的基础上,也有自己的创新。有一部分学校已经在这方面进行了改革和探索,但大多是单一的、松散地进行,这一状况的形成,一部分是因为现实客观条件的制约,另一部分还在于职业教育课程理论研究的不全面、不深入所致,因此重视和加强高等职业教育课程多元整合是提高高职职教课程开发质量的一个中心环节。

本文将以高职软件工程课程为例,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念引领教学过程,强调动手能力,将工作过程的职业环境融入学习过程中,将学生对知识、职业能力的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中。

二、多元整合创新教学理念

软件工程课程涉及软件项目计划、软件需求分析、软件设计、软件测试、软件配置管理、软件项目管理等软件开发过程中的各种问题。浙江商业职业技术学院(以下简称“我院”)所在浙江省高新中小企业众多,发展主要依靠技术进步以及科技来推动,对人才的需求也明显高移。经调查发现,目前浙江省软件行业在软件设计、软件测试和软件维护方面的人才缺口大,供不应求。因此,我们将教学重点放在了软件设计、软件测试和软件维护方面。以一个典型、完整、实用的项目“学生选课管理系统”为载体,将软件工程项目开发中用到的各项工作技能按照工作过程分布阶段任务,将项目分解成一个个案例,以任务驱动的方式完成技能的案例教学,同时也体现了工作过程的完整性,将“任务驱动、项目导向、案例教学”多元整合的创新教学理念贯穿于教学过程。

(一)明确工作岗位,分析工作任务,任务驱动学习

任务驱动学习是让学生完成教师精心设计的培养职业能力的工作任务,构建真正属于自己的知识和技能,提高分析和解决问题的能力。如何确定软件工程课程的工作岗位和工作任务是进行任务驱动学习首先要解决的课题。

为此,我们邀请软件行业专家、专业教师参照国家相关职业标准一起分析、论证软件工程工作岗位的工作过程和技能要求。在进行分析论证过程中,根据我院所在浙江省高新中小企业发展实际,结合高职学生学习特点,将软件工程课程培养的人才方向定位在软件设计、软件测试和软件维护三个岗位。我们明确了这三个岗位的典型工作过程,并详细分析了典型工作过程中的典型工作任务。

1 软件设计岗位的典型工作过程主要包括软件项目计划、软件需求分析、软件设计阶段。这些工作过程的典型工作任务有:(1)软件项目计划包括:软件项目计划内容的描述;度量项目的成本、规模、工作量和开发周期;确定项目开发过程模型;制订软件项目计划;(2)软件需求分析包括:定义需求工程过程模型;采用UML获取项目需求;采用UML分析项目需求;编写项目需求规格说明书;(3)软件设计阶段包括:策划项目的设计阶段;应用设计模式,执行系统的架构设计。

2 软件测试岗位的典型工作过程主要是软件测试阶段。其典型工作任务包括:软件项目单元测试用例设计;执行软件项目单元测试;软件项目功能测试用例设计;执行软件项目功能测试;软件项目性能测试用例设计;执行软件项目性能测试;软件项目压力测试用例设计;执行软件项目压力测试。

3 软件维护岗位的典型工作过程主要包括软件配置阶段和软件项目管理阶段。这些工作过程的典型工作任务有:(1)软件配置阶段包括:创建软件项目配置管理计划;对软件项目实施版本控制;(2)软件项目管理阶段包括:对软件项目进行项目估算;对软件项目进行风险管理;对软件项目进行质量管理。

(二)设计教学项目,培养职业能力,项目导向教学

项目导向教学是指通过一项完整的项目工作而进行教学活动的教学方法,它以项目导向、任务驱动,引领教学过程,强调实训环节,将工作过程的职业环境融入学习过程中,将学生对知识的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中,使学生在学习过程中培养工作岗位职业能力。

我院软件工程课程定位的软件设计、软件测试和软件维护三个岗位有不同的职业能力要求,通过与专家分析论证,我们明确了三个岗位要培养的职业能力:

1 软件设计岗位。要求要培养的职业能力有:理解、实施软件项目计划的能力,编写、制定软件项目计划文档的能力;获取、分析软件项目需求的能力,编写软件项目需求分析文档的能力:理解项目数据模型、项目的架构设计的能力;编写软件项目设计规格说明书的能力。

2 软件测试岗位。要求要培养的职业能力有:设计和实施单元测试用例、功能测试用例、性能测试用例、压力测试用例的能力;撰写测试计划、报告的能力。

3 软件维护岗位。要求要培养的职业能力有:实施软件项目配置计划、管理的能力;实施软件版本控制的能力;估算项目成本、规模、进度的能力;预测、监控、计划、管理软件风险,实施软件质量保证计划的能力。

为了与岗位工作过程相适应,能够在项目教学过程中培养学生的职业能力,在设计教学项目的选择上我们从以下几个方面进行了探索:第一,项目必须包含上述岗位的基本工作过程,能够培养学生职业技能;第二,项目难度适中,符合高职学生的知识、技能结构特点;第三,项目开发周期相对较短,能够在教学时间内完成;第四,项目内容容易理解,贴近学生经验,以便学生集中精力完成软件工程工作过程的学习。

为此,我们精心设计了“学生选课管理系统”来进行项目教学,引入企业真实项目“网上书城”系统来进行模拟训练。这两个项目背景高职学生易理解、掌握和操作,并且包含了上述三个工作岗位职业能力。通过几个学年的教学实践发现,学生基本能掌握三个工作岗位的职业能力,并根据自己的兴趣有所侧重,完全达到了我们项目导向教学的目的。

(三)分解教学项目,激发学习兴趣,典型案例教学

案例教学实际上是一种“做中学”的形式,在经验和活动中获取知识和技能,增进才干。软件工程案例教学的实践反映出,案例选择是否合适、案例运用是否科学将直接影响到案例教学作用的发挥。

对于软件工程这样一门理论和实践都比较注重的课程来说,案例教学就显得特别重要。我们在案例教学中进行了以下探索和实践:第一,案例贴近学生生活,删繁就简,能适应课程教学时限要求;第二,案例有代表性和针对性,能基本涵盖基本的工作任务;第三,案例能让学生参与并易于模仿实践。如讲解软件项目计划时,针对学生选课管理系统这个项目,由老师描述项目计划应该要确定的内容,并引导学生分组讨论确定项目中角色一人员责任矩阵,利用甘特图等工具制订初步软件项目计划。这样学生不仅仅是去强记那些固定的原理、规则。学生通过案例更深刻地理解了工作过程中需要掌握的技能。

三、多元整合教学的探索与实践

任务驱动、项目导向、案例教学的教学方法各有特色,如何将这些教学方法整合在一个具体的教学项目中并让各种教学方法发挥其优点是我们要重点解决的问题。按照软件工程项目开发中典型的工作过程,我们将“学生选课管理系统”项目分解成一个个的小项目,每一个小项目对应着一个具体工作过程。对每一个小项目我们分成六个步骤进行项目教学:

第一步,确定每一个小项目的工作任务。不同的小项目对应的工作任务不同,有的工作任务比较独立、花费时间少,可以在—个教学单元中完成,我们称之为小任务;有的工作任务需要多个教学单元的综合实践才能完成,我们称之为大任务;在教学过程中,对大任务我们又将其分为若干小任务,并在各个小任务完成后进行分析总结,以便学生系统全面地掌握相应的职业能力。

第二步,教师进行案例场景描述,并通过典型案例演示项目中的具体任务。教师先对案例进行场景描述,让学生明白真实工作过程中这个小项目要做什么。然后通过典型案例的演示让学生体会到这个小项目要怎么做。

第三步,学生分组讨论,明确项目分工。软件的开发过程是一个团队合作的过程,将学生从成绩、性格、表达能力等方面进行分组,让不同的学生组合成一个团队进行项目的开发,既培养学生团队合作的精神,又让学生能发挥各自特长,调动学生积极性。在此步骤中,教师可以根据实际教学班组从整体上对团队的组合进行优化调整,对于一些比较难分工的项目,教师可以对团队进行指导,帮助团队进行分工。

第四步,学生根据不同分工完成典型案例的工作任务。通过项目分工,团队中每个学生有了明确的任务,可以根据教师典型案例的演示进行工作任务的模拟练习。通过这一步,让学生对工作过程和工作任务有真正的感性认识,有利于培养学生的职业能力。

软件测试实习工作计划范文第2篇

关键词: 程序设计教学 教学方法 极限编程

在中等专业学校计算机专业中,程序设计是重要的专业课程,是每个学生都应具备的最重要的能力之一。由于课程设置和学生本身的原因,程序设计课往往变成某种计算机语言的语法学习课,学生即使学会某一门语言,也不知道怎么开发软件,缺乏软件工程知识。Extreme Programming(极限编程,简称XP)是由Kent Beck于1996年提出的,它是一种以编码为核心任务并且经历过实践考验的轻量级软件开发方法,是敏捷软件开发方法中最著名的一个。这种软件开发的方法开发规模小,流程相对简单,重要的是,极限编程的开发周期是以代码为中心,将其应用在程序设计教学中,更能突出计算机语言的中心地位。学生在提高自身编程能力的同时,更有助于培养软件工程思想。

一、极限编程概述

极限编程是一种有别于传统软件工程的小型软件开发方法。传统的如RUP的开发方法注重整体架构的由上而下逐步细化,而极限编程则强调由软件最简单的基本核心由内向外逐步构建。软件在设计初期规划客户最基本的需求,在与客户交流的过程中逐渐添加和调整功能模块。每个模块的开发粒度小,实现的功能最基本,代码量小,周期短。

二、在程序设计课程中应用极限编程方法

一名优秀的程序设计人员,除了要有过硬的代码编写能力外,还要具备良好的沟通能力。首先,优秀的代码编写能力不仅是指能够写出执行效率高、运行强健、稳定的代码,而且代码风格优美。有的程序员写的代码思路独特,执行效率很高,但是缺乏良好的注释和书写风格,以至于别人很难理解,甚至一段时间后自己也不知道这块是怎么设计的。这对程序员之间的交流和传承及代码的重构是非常不利的。其次,良好的沟通不仅发生在程序员之间,而且发生在程序员和用户之间。极限编程的最佳实践对以上两点都有严格的要求,将其应用在程序设计教学中非常有利。

1.计划会议。

计划会议也叫计划游戏,这是对所开发的软件制定的一份计划。对于软件中远期的、非当前急需开发的功能只是提出一个概要性、轮廓性的计划。而对马上必须实现的功能则是制定详细的、细化到尽可能小的粒度,从而制定具体的工作任务。这项工作是每天都要做的,计划不仅要明确工作任务,而且要明确完成任务的标准。随着每天计划的完成,我们设计的软件越来越明确,越来越向正确的目标靠拢。这种计划会议采用的方式多种多样,但大多需要所有成员参与集体头脑风暴式的讨论,极限编程强调所有程序员对整个软件的整体掌握,有利于锻炼学生的交流沟通能力和对软件整体框架的把握。

2.小型和简单设计。

XP编程方法一贯秉承的是“持续集成、小步快走”的哲学理念。我们希望在计划会议中提出的近期计划目标是一个可以拿出来让用户体验的、可评测的小作品,有利于学生在学习过程中不断获得成就感,从而提高学习兴趣。对于这个小作品,我们的要求是只要实现提出的基本功能,尽量用最简单的方法去设计,不增加计划以外的预设的东西。这种做法可以有效降低学生程序设计的难度,防止学生产生畏难情绪。

3.结对编程。

结对编程是XP的一个重要实践,它要求写代码的时候必须两个程序员在同一台电脑面前进行,一位负责书写代码,一位负责代码的阅读和校验。在结对编程的过程中,两位程序员会进行大量的沟通,自己的思路必须让对方明白,同时也让对方审核。这种做法有利于知识在学生中的传播,对代码质量的提高、良好编码风格的形成、沟通能力的提高都非常有利。

4.测试先行。

一般的程序设计方法都是先将功能模块写好,然后再使用一组测试数据进行测试。而极限编程强调,在每写一个模块前,必须书写测试用的代码。这个测试用的代码就已经将我们要书写的模块方向定准了,在模块代码书写的过程中,随时都要通过这个测试,而不是完成之后再测试。这样在中途发现设计偏离轨道可以及时纠正,保证工作高效。现代软件工程中对软件的测试工作要求越来越高,测试代码的书写、测试数据的选择等也是学生学习的重要内容。极限编程尤其强调测试的作用,将其应用于教学,有利于培养学生良好的测试习惯。

5.重构。

极限编程强调的是用最简单的方法而不是最好的方法实现既定目标。只要在测试中通过,就可以被认可。但随着代码的日益完善,对以往执行效率低的代码必须进行重构。所谓重构,就是在不改变原有功能的前提下,对代码进行修正或利用新技术重现。这是提高软件性能的重要手段,但不管如何重构,其代码必须通过原先的测试程序,这体现了先前测试先行原则的重要性。重构有利于学生提高代码的书写能力,促使学生不断挑战自我。

6.编码标准。

极限编程方法是以代码为中心的开发方法,同时要求知识共享、代码同行审核,强调交流与沟通。那么实现这一切的基础就是代码可以被所有成员读懂。在现代软件企业中,不管采用的是大型的RUP方法,还是小型的XP方法,统一编码标准这是一个基本要求。极限编程对编码标准的严格要求有助于学生在校就养成良好的代码书写习惯,以后可以快速地融入新的开发团队。

三、结语

极限编程的优秀实践很多,并不需要全部应用于程序设计课程的教学过程中。但应用在教学实践对于激发学生的学习兴趣、降低学生的学习难度、提高学生的软件整体设计水平、培养学生的交流沟通能力等都非常有益。实际教学中,我们在ASP、VB、Java等课程的实习阶段应用极限编程,取得了良好的效果,学生学习的兴趣和动力有了明显的提高。我们希望在将来的研究中,能够采用更多的XP实践,让教学过程更加逼近真实软件开发过程,让学生更系统地学习软件开发流程,提高专业素质,培养优秀的软件开发人才。

参考文献:

[1]Robert C.Martin.敏捷软件开发——原则、模式与实践[M].北京:清华大学出版社,2003.

软件测试实习工作计划范文第3篇

关键词:软件测试;误区;黑盒测试;测试用例

随着软件产业的发展、软件规模的逐步扩大,软件的质量问题日渐突显,软件测试与软件质量监控也越来越受到软件行业的重视。各类招聘信息中对软件测试类人才的需求猛增,很多人由此而选择了软件测试,但其中不少人始终未能拿到软件测试行业的“入场券”,原因何在?软件测试行业是一个高速发展的新兴行业,尽管当下认知程度不高,但有着广阔的发展前景。如何才能更有效地进入软件测试领域是本文的研究重点所在。

1 软件测试的误区

1.1 误区一:软件开发完成后才开始进行软件测试。 软件从开始计划、编制、测试,一直到公开使用的过程中都可能存在软件缺陷。事实证明,需求规格说明书是导致软件缺陷的最大原因。随着时间的推移,修复软件缺陷的费用呈几何级数增长。

1.2 误区二:软件后如果发现质量问题,那是软件测试人员的错。软件测试只能确认软件存在错误,不能保证软件没有错误。软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程设计出来的。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

1.3 误区三:软件测试要求不高,随便找个人都可以完成这项工作。软件测试涉及很多领域,简单的点点鼠标、按按键盘的工作根本无法达到软件测试的目的,若想立足于软件测试领域必须掌握和学习很多方面的知识。

1.4 误区四:项目进度吃紧时少做些测试,时间富裕时多做测试。缩短测试时间会导致测试不完整,无法达到测试的目的,测试效果也将大打折扣。软件项目过程应该是有计划的、可控制的,若项目过程管理混乱必然会降低软件测试的质量。

2 学习软件测试的过程和方法研究

不同知识基础的人,学习软件测试技术、进入软件测试领域的感受也有所不同,很多人在学习软件测试知识的过程中非常盲目,没有计划、没有方向,学习效率低下。

在此,本人对学习软件测试的过程和方法进行总结、研究和探讨,以作交流学习之用。

2.1 学习软件测试的过程

(1) 第一步 明确测试目的。有目的才有动力,有目标才有方向。软件测试就是对软件需求分析、设计规格说明、程序代码以及软件其他相关产品进行测试的过程,是软件质量保证的关键步骤。明确软件测试的目的和目标才能准确的定位测试并更有效的进行测试。

(2) 第二步 结合实际项目,学习掌握测试方法、合理设计测试用例。常用的测试方法有黑盒测试和白盒测试。黑盒测试在完全不考虑程序内部结构和内部特性的情况下,针对软件界面和软件功能等进行测试,是最基本的测试方法。白盒测试允许测试人员利用程序内部的逻辑结构及有关信息设计或选择测试用例进行测试。准确的理解和掌握这些技术及其相互关系是进行软件测试的前提。因此,在学习软件测试的过程中,要准确的把握测试方法并有条理的组织和设计测试用例。

(3) 第三步 熟悉测试步骤。 一个完整的软件测试过程包括测试计划、测试设计、测试开发、测试执行、缺陷跟踪和测试评估。软件测试管理工具可以系统地控制整个测试过程,实现从测试需求、测试设计、测试执行和缺陷跟踪所有操作的全方位跟踪管理,并为这几个部分提供了关联机制,使整个测试管理过程更加简单和有组织。在此,本人建议在学习软件测试技术的过程中,以一个测试管理工具(例:TestDirector)为平台进行测试实践,用心体会一个完整的测试过程。

(4) 第四步 了解测试阶段。软件测试从软件需求阶段就已介入,基本贯穿软件项目开发全程,不同阶段有不同的测试点,需要不同的测试方法和技术。软件测试可以大致分为需求评审、 单元测试、集成测试、系统测试、验收测试( α测试/ β 测试)这几个阶段。明确各个阶段的测试目的和内容才能选择相对合适的方法进行测试。

(5) 第五步 测试技术的提高和升级。软件自动化测试是一项让计算机代替测试人员进行软件测试的技术,通常借助测试工具来执行。自动化测试可以模拟软件实际运行效果,测试效率高、准确度和精确度高、可以持续测试而无须休息,弥补了手工测试的不足。性能被列为系统质量的重要指标,并越来越受到人们的重视。性能测试是对软件性能的表现进行测试,较功能测试更难实现。

2.2 学习软件测试的方法 学习方法的好坏和学习习惯对学习效果的影响非常大,以下是软件测试初学者需要注意的几个地方:

(1) 勤学好问、充分利用各类学习资源。问题积累是学习的拦路虎。时间越久,问题越多,给学习造成了很大的阻力,更甚者会让初学者心生放弃。三人行必有我师,勤学好问,不要滋生“历史”遗留问题。当然,对于一个复杂问题,如果在短时间内无法理解透彻时,可以先简单的了解,然后在之后的学习和实践过程中慢慢体会其含义。由简入繁,勿钻“牛角尖”。

(2) 实践出真知。实践是检验真理的唯一标准。要想真正学会测试,必须进行实际的测试。不要说没有测试环境,想学的话,完全可以自己搭建环境。有了行动才能有收获。

(3) 切莫“闭门造车”。软件测试技术是解决实际软件测试问题的技术,与现实世界密切相关,盲目的学习可能适得其反。因此,应多关注软件测试行业的动态,了解软件测试行业的真正需求,有目的的学习。

(4) 细心、耐心。软件测试是对人技术和意志的一种考验,不细心就有可能与缺陷擦肩而过,没有耐心就无法将枯燥的测试进行到底。只有充分的细心和耐心才能适应和完成软件测试工作。

(5)“怀疑”精神。定性思维往往是发生错误的根源,对于软件测试人员来说,更应该具有“怀疑”精神,要考虑每个细节,不要想当然地接受任何假设。

3 软件测试的常用技巧 软件测试虽然辛苦,但掌握一定技巧后将事半功倍。

3.1 边界测试。边界是最容易出错的地方。在进行软件测试时,应测试临近边界的合法数据(即最后一个可能合法的数据, 以及刚超过边界的非法数据)。

3.2 非法测试。人们在不了解软件功能或使用方法的情况下,经常会不经意地输入一些非法数据或进行一些非法操作而导致软件出现意外情况。因此,在进行软件测试的过程当中,应考虑进行类似的非法测试。例如在输入数字的地方输入字符、输入邮件地址的地方输入非法格式的数据、进行一些不合理的操作等。

3.3 接口测试。程序往往在接口的地方发生错误,在进行相关测试时切勿掉以轻心。

3.4 代码重用测试。在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码的基础上作修改或修改不全面而引发错误。在测试的过程中应更加留意这方面的测试。

3.5 失效恢复测试。当意外(如网络突然中断、系统崩溃等)发生时,用户能否继续使用系统,用户将受到多大的影响也是测试要考虑的问题。

4 结束语

软件测试是一个入门易、深入难的工作。学习软件测试技术没有捷径可言,一点点的努力才是正道。学习过程是指引,学习方法是手段,希望以上的方法和技巧能够给大家以启迪,也希望更多有识之士能够与我们共同徜徉在软件测试这五彩缤纷的世界之中。

参考文献:

[1] 把 冉. 软件测试行业特别调查[J]. 中国经济信息,2008(9):76-77.

[2] (美)Ron Patton. 软件测试[M]. 周予滨,姚静,等译. 北京:机械工业出版社,2008.

[3] 路 璐,王文莉. 浅谈软件测试技术[J]. 郑州铁路职业技术学院学报,2007,19(2):41-42.

软件测试实习工作计划范文第4篇

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

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

一、教学现状

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

二、教学改革探讨

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.

软件测试实习工作计划范文第5篇

关键词:Delphi程序设计;模拟教学法;角色分配

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)22-5260-05

Delphi程序设计是我院软件技术专业三年级学生的选修课程,该课程采用面向对象程序设计方法。程序设计是一门概念复杂、抽象、知识面广的课程。每位学生都想着有一天自己的程序能在指缝间源源不断的敲击出来,自己设计的系统能完美运行。然而在真正学习该课程后,开始编写系统程序时,往往无所下手,没有头绪,没有思路,尽管当时努力学习课程,通过考试,但并没有体会到理论联系实际的乐趣,便逐渐使学生失去了编程的兴趣。

Delphi程序设计的前导课程是VB、C程序设计和数据库系统、软件工程。因此学生们已具备软件工程开发思想,编程能力和数据库基础。该课程进一步提高学生的编程能力、分析解决问题的能力及用软件工程的思想和方法设计开发功能较完整的实际应用系统,并提高学生的分工协作、团队合作、口头表达及文字表述能力方面的能力。

1 模拟教学法

如何提高学生的学习积极性,从传统教学法到任务驱动法的教学过程使学生的学习积极性提升上来了,但并不符合当前企业的岗位实际需要。如何既能保证学生的学习兴趣不减,又能使学生更好地理解软件企业的岗位需要,提高协作能力,课程教学过程中设计了一套模拟教学法,也就是模拟企业在软件开发过程中岗位需求的设置,结合高职院校学生的实际学习情况,将模拟教学法应用到Delphi程序设计课程中。模拟教学法结合案例教学法、项目教学法、角色扮演和探索式教学法。将全体成员分成若干小组,采用小组合作,明确分工,演示汇报的方式完成课程教学。

2 实践及过程

2.1角色扮演及职业生涯规划

课程中最先讲解的是角色扮演。软件工程的思想,是针对不同的难度和规模的项目,会有不同的人员配置方案,学生应充分理解这些角色及职责,为自己的职业生涯进行规划,拉近自己与企业的距离,由于课程中学时有限,只选取了部分角色让学生了解、掌握。

部分角色的职责:

1) 项目经理

・ 组织项目所需的各项资源

・ 设置项目组中的各种角色,并分配好各角色的责任与权限

・ 定制项目组内外的沟通计划。(必要时可配置管理要求写项目策划目录中的《项目沟通计划》

2) 需求分析员

・ 在项目前期根据《需求调研计划》对客户进行需求调研

・ 收集整理客户需求,负责编写《用户需求说明书》

・ 代表项目组与用户沟通与项目需求有关的所有事项。

3) 系统设计工程师

・ 根据需求分析结果及概要设计规范设计、编制概要设计说明。

・ 保证概要设计的科学性、可行性,并与需求分析一致。

・ 协助项目经理制定项目开发计划。

・ 依照开发计划的要求保证设计进度。

・ 参与需求分析、概要设计、详细设计等过程的阶段评审,从是否达到概要设计的角度提出评审意见。

4) 高级软件工程师

・ 根据概要设计结果及详细设计规范设计、编制详细设计文档。

・ 保证详细设计满足概要设计对功能界定、可靠性、用户界面等各方面的要求。

・ 依照开发计划的要求保证设计进度。

・ 参与概要设计、详细设计、软件实现等过程的阶段评审,从是否达到详细设计要求的角度提出评审意见。

5) 编码人员

・ 根据《系统概要设计说明书》编写《系统详细说明书》。

・ 按《系统详细设计说明书》进行代码实现。

・ 控制本模块的开发进度。

6) 测试人员

・ 独立编写测试计划。

・ 独立编写测试用例。

・ 协调测试团队内部的工作以及与开发团队之间的工作。

・ 完成“执行测试”的工作。

7) 美工

・ 负责完成软件设计师安排的功能界面设计。

・ 负责对项目整体色彩的调配。

・ 向系统分析师提出项目美化的建议。

8) 客户经理

・ 在项目实施阶段,跟踪、检查实施人员的工作质量。

・ 负责协助用户进行“用户确认测试”和编写《确认测试报告》。

9) 维护人员

・ 制订具体项目的质量保证计划及执行。

・ 评审的组织。

・ 研发流程的执行监督、反馈、数据收集。

依据上述角色介绍,由学生选择角色并制定自己的职业生涯规划,这样可以锻炼学生的语言表达能力,为后期小组演示汇报预演。让学生胜任角色,成功扮演角色,同时要有教师的适当指导、发挥学生的各自特点,使他们适应角色。以下是小组内选择项目经理角色的职业生涯规划:

1) 项目经理:完成不同阶段的任务。

2) 项目经理具备的素质:认真负责的态度;有扎实的技术;协调各部门的能力;项目总体规划能力。

3) 选择职业的原则:择已所爱,择世所需,择己所长。

4) 项目经理的工作职责:

・ 所管辖的区域客户进行信息跟踪、分析及报告,并定期进行更新。

・ 所管辖的区域客户的产品开发进行项目管理,满足用户需求。

・ 经常与客户进行沟通、与客户保持亲密联系,定期走访、了解产品的质量等情况。

5) 项目经理需要了解你所在企业的软件项目技术特点,了解软件项目的售前过程,招标方案;掌握需求分析――概要设计――详细设计――开发进度控制――风险控制――测试流程――现场实施――验收――售后服务等业务。

6) 努力的方向 :项目经理是一个管理者,因此要锻炼自己的组织管理能力,增强自己的团队精神,技术才是硬道理,努力学好专业知识,熟悉自身的IT业务,做一个洞察力很强的人,培养认真负责的态度,拥有扎实的技术,并协调好各部门的能力提高项目总体规划能力。

2.2需求分析阶段

教学第二步,项目选题应该是对知识的深入学习。使用企业真实案例让各小组分别完成。模拟现实工作环境、真实事件,让学生按照工作流程,在工作过程中扮演接近真实身份的角色,从而理解角色的作用、工作内容等,以达到体验真实工作岗位的目的。学生在扮演角色的过程中充分运用所学知识,发挥自己的才能和想象空间,增强对实际问题的预测和处理能力。Delphi程序设计课程中给出企业的真实开发案例,整个开发设计过程应体现软件工程的思想和方法、运用数据库技术和程序开发技术。

需求分析是软件开发过程中至关重要的环节,本阶段的角色扮演者应充分理解用户的实际需要,并写成书面文字,以备后续环节设计及实现。如果本环节需求获取不准确,后期更正将会付出10倍甚至更多的代价来弥补。鉴于学生们无实际工作经验,不知道此环节的重要性,所以从这一阶段开始,就让学生正式进入角色,完成工作。

如何确定用户?采用指导教师为指定题目中的实际用户,题目为:生产许可证申报系统。先给每个小组一定的准备时间,商量获取需求信息的方法,可以是用户面谈,用户调查,从行业标准和规则中提取需求信息。在与用户沟通交流的过程中,尽量提供给学生真实的工作过程环境。以下是需求分析员的实践结果:

根据与用户谈话、调查及从行业标准和规则中提取的信息,要求生产许可证申报系统实现以下几个主要功能:

1) 申报单位申报数据要从手工完成的过程中解放出来,在这里开发完成企业基本资料录入。

2) 由于申报单位要有自身的经济发展,生产的产品会随着社会的需求而增多,申报产品是一个长期需要,所以系统在完成数据的添加、修改、删除功能。

3) 对于申报企业基本信息的变化的处理,如单位地址变更或者法人信息变更系统,在这里要完成资料变更功能。

4) 用户相关信息录入后,根据实际需要递交评审部门全国生产许可证申请书或地方生产许可证申请书,在这里要完成报表打印功能。

5) 为了减轻评审部门数据录入的工作量,在申报系统中申报单位将录入的数据进行上报的功能开发。

它主要能够实现申报数据录入、生产许可证申请书打印、数据转换、数据上报等内容。生产许可证申报系统在实际运行和使用过程中,性能上应能达到:

1) 容量要求:需要系统处理和存储的数据主要有申报单位基本信息、申报产品基本信息、主要技术人员信息、与产品有关的生产设备、原材料、检测仪器信息等,由于采用了关系型数据库Paradox,因此在数据库容量方面足以满足需要。

2) 数据精确度:要按照严格的数据格式输入,否则系统不给予响应处理并提示警告信息。进行查询时要保证查全率,所有相应域包括查询关键词的记录都应能查到。因为申报的数据的记录量会很大。

3) 设计有效的输入方式,方便用户操作,有效减少重复数据输入的工作量,以提高申报数据录入的工作效率

4) 时间特性方面:一般操作的响应时间控制在1~2秒内,对数据转换和打印机的操作也应控制在用户可接受的时间范围内完成。

5) 适应性方面:生产许可证申报和管理系统应满足申报单位和评审部门使用的需求。

6) 人机交互友好性:在用户界面的使用上,应有全新感觉,操作简便,一目了然,视图友好等特点,并用使用习惯性的菜单界面驱动方式,给具体操作用户极大的便利,能单独支持鼠标和键盘,便于用户操作使用。

7) 硬件接口方面,保证申报数据与存储介质之间的数据传输的完整。

8) 软件接口方面,运行于Windows95及更高版本具有Win32 API的操作系统之上。

9) 系统健壮性,正常使用本系统时不应出现错误,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。

10) 系统安全性:申报数据数据中许多是涉及到企业机密的商业信息,有效防止与系统无关人员窃取企业的商业机密。

11) 系统可靠性:为了提高系统可靠性,减少系统故障,需尽可能采用模块化、结构化设计。

12) 系统通用性:通用化程度高,适用于所有申报单位使用。

2.3设计阶段

该环节软件开发公司与用户接触较少,属于内部设计开发阶段,主要包括数据库的结构设计,实施及应用程序的总体设计、详细设计、编码和调试等。在设计过程中严格控制工作进度。以下是系统设计工程师和高级软件工程师的部分实践结果:

2.4 代码编写及美工过程

代码实现部分,因工作量大,所以需要小组内成员全体参与,编码能力强的同学可以多写几个功能,代码学的不好的同学,分配做报表或者美工。

2.5 测试阶段

就测试而言,用面向对象开发方法的系统测试与其他方法开发的系统测试没有什么不同,在所有开发系统中都是根据规范说明来验证系统设计的正确性。程序验证应尽可能早地开始。程序测试步骤是从最低层开始,从单元测试、综合测试、到系统测试。单元测试是系统构件的分体测试,将测试好的系统构件接起来看它们之间相互作用的正确性称综合测试,最后是整个系统的测试,包括软件系统所在相关环境的测试。通常综合测试是一种“主攻”活动,在系统开发期是非常关键的。这一阶段应随着连接已开发的每一部分,再看它们的实际工作,这种“主攻”活动在面向对象系统中是一种实质性的、渐渐增长的测试策略。测试活动在早期的开发过程中就应开始。当开始开发时,就可做测试计划。测试计划一般在分析期做,而实际的测试通常等到系统构造后进行。事先根据期望的方法和层次建立测试导向图,然后确定是自动测试还是手工测试,测试计划需反复多次。

测试计划如下:

虽然每位同学都有自己要扮演的角色,但在课程中的每个环节每位学生都必须参与,特别是设计及编码阶段,因为系统要实现的功能很多,所以每位学生都要负责一个或几个模块的设计及代码实现。不能说测试人员光管测试,不参与其他工作。

2.6 评价