首页 > 文章中心 > 软件测试心得体会

软件测试心得体会

前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件测试心得体会范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

软件测试心得体会

软件测试心得体会范文第1篇

关键词:测试用例;复用;软件测试;测试用例库

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)14-3308-03

软件应用的广泛、功能的强大导致软件越来越复杂,对测试工程师的素质要求也越来越高,各种测试方法和技术也应运而生,测试用例作为测试工作的重中之重,选择合适的测试用例对软件测试的成败作用重大,测试用例质量的高低直接影响了软件测试的质量。

随着软件测试的长期实施,一般都会积累丰富的高质量的测试用例,如果能够在以后的软件测试工作中利用现有的资源,那么会减少测试用例设计的时间,提高软件测试过程中发现软件缺陷的效率,缩短软件测试的时间及成本,保证软件产品的质量,给软件产品的按时带来极大的可能。

在实际工作过程中,测试用例在设计过程中过分依赖于被测软件,只能在软件升级及改进的时候可以加以利用;测试用例之间一般都会存在或多或少的联系,如有些测试用例的运行取决于其它测试用例的运行结果;每个测试工程师在设计测试用例的时候都有自己的喜好,对测试用例的格式和结构也没有一个统一的定义,并且对测试用例没有统一进行管理,描述也不太充分,这些都为测试用例的复用带来了很大的困难。

1 研究现状

随着人们对软件产品质量的重视程度的加强,软件测试在软件开发中的重要性也越来越突出,在软件开发中所占的成本也逐渐提高,对于一些安全性较高的软件,如银行系统等,软件测试费用会所占的比重会更高。

测试用例的设计作为软件测试过程的核心,它的优劣直接影响了软件测试的效率,而测试用例的设计在很大程度上取决于测试人员的经验等,如何利用已有的资源对测试用例进行重用避免软件测试过程中的重复工作,提高软件质量,就显的很有必要了,很多学者对测试用例的复用进行了研究。

文献[1]提出了通过抽取测试用例操作步骤的关键词,将其提炼为可复用的测试项集合的方法来实现对测试用例的复用,此方法降低了测试用例复用与被测功能的相关性,但是只是对测试用例的输入域进行复用,对测试用例设计的思想,设计步骤没有办法复用。文献[2]从测试用例的分类着手,针对其具有的共性以及面向对象语言的特点,将面向对象系统中的测试用例依据设计方法分为状态检查测试用例和状态比较测试用例,进而提出了一个统一的测试用例生成、执行模式,使测试用例能够独立于被测对象,在理论上讨论了通过使用统一的调用模式,以达到测试用例复用的目的。文献[3] 针对第三方测试机构的特点给出了一种测试用例复用过程模型,对测试用例进行统一建模组织,并进行有效管理的思路。文献[4]提出了一种测试复用机制,通过对测试用例进行可复用描述,得到可复用的测试用例,并利用刻面树作为逻辑结构,生成测试用例库,通过用例库的各种功能实现用例的复用。文献[5]给出了基于形式规格说明的测试用例库,增强测试用例库中用例的复用程度。文献[6]针对航天测控软件的特点,介绍了面向复用的测试用例的结构、组织方式,用例复用的流程等技术,实现了测试用例的管理和复用。

以上文献对测试用例可复用性的研究,都把测试用例的描述作为研究重点,分析测试用例可复用特征,通过不同的测试用例复用策略,生成不同程度的可复用测试用例库,该文在上述研究的基础上,对可复用测试用例的概念、设计思想进行详细分析,给出了可复用测试用例库的模型,对提高测试用例的复用程度有很好的效果。

2 测试用例复用

2.1 测试用例复用的概念

软件复用是指利用已开发成功的值得借鉴的成果、经验来开发新的软件产品的过程,整个软件开发中的一切优秀成果都可以进行复用,包含软件测试过程,软件测试复用主要是重复利用测试过程中产生的测试理论、测试思想、测试策略、测试用例及测试文档等等。其中对软件测试的核心——测试用例的复用将会提高测试的效率。

测试用例的复用就是在软件测试过程中利用已经存在的测试用例的过程,根据测试用例被复用的程度,可以分为直接复用和改进复用,如果搜索出来的测试用例与需求完全一致,则直接复用现有测试用例, 一般情况下,直接复用测试用例的情况很少,如果搜索出来的测试用例与需求近似,则对现有的测试用例进行修改和继承,得到一个新的测试用例之后再复用,即改进复用。

2.2 测试用例复用的类型

按照测试用例的复用[5]类型,可分为以下几种:

1)同一软件在不同测试阶段的测试用例复用

在项目开发过程中,底层测试对象的测试用例可能部分地复用到高层对象的测试中,例如单元测试的测试用例可以用到集成测试中。

2)同一软件在不同时间测试下的测试用例复用

在项目开发过程中,随着应用的推广,新的需求会被提出来,那么就会出现这种产品的多个版本,在对一个软件多个版本的测试中,如果软件在上一次测试过程中产生的大量测试用例被保存下来,在新的一次测试中,可以查询找到相关的测试用例,进行测试用例的复用,缩短了软件产品的升级时间及提高了后续版本的质量。

3)类似软件之间的测试用例复用

同类软件的测试用例在设计思想、测试策略、测试数据、及测试步骤等都有类似之处,通过借鉴原有的测试用例对发现被测软件的缺陷,测试效率的提高有很大的帮助。

2.3 可复用测试用例的设计思想

要实现软件测试过程中对测试用例的复用,必须满足以下条件:首先应该存在用于复用的软件测试用例,如果没有测试用例可供选择,对测试用例的复用将无从谈起;其次可复用的测试用例是有效的,能够为将来的软件测试提供服务,测试用例的描述应该完整,并与被测软件的相关性降低到最小,这样的测试用例才能满足将来的软件测试需求;最后软件测试工程师了解可复用测试用例的使用方法,才能更好的实施测试用例的复用。在实际操作过程中,需要对测试用例的结构有一个良好的定义,这样才能在测试环境发生改变的时候,测试用例能够继续利用,那么在设计可复用的测试用例的时候要遵循的指导原则如下:

1)测试用例之间的相关性尽量降低到最低;

2)测试用例对被测软件的依赖尽量减弱;

3)测试用例的描述要规范化;

4)测试用例尽量不包含常量,输入值用变量代替;

5)测试用例的内容要完整,结构要统一;

6)测试用例的分类要合理。

3 基于复用的测试用例库模型

实现软件测试用例复用的有效途径就是建立一个测试用例库,并按照适合领域、类型等进行多级合理的分类、组织、存储,以便进行查找和利用现有测试用例。

软件测试的目的是尽可能的发现软件的缺陷,发现缺陷越高的测试用例,越有复用的必要,在测试用例库的设计中添加测试用例发现的缺陷描述,这样在复用测试用例的时候,优先选择易于发现软件错误的优质测试用例;对于优质的测试用例,被复用的测试也会越来越多,那么,在以后的测试用例的选取上,也尽量选择复用次数较高的测试用例;对于复用效果好的测试用例,或者对于测试用例复用的时候的一些心得体会也很重要,可以指导后面的测试用例的选取,在测试用例的结构中添加复用人的评论也至关重要。

随着测试用例库中的用例逐渐增加, 测试用例库逐渐庞大起来,为了提高测试用例的搜索效率,对于部分复用次数较少的测试用例, 或随着技术的不断改进, 对于不再具备实际运行的条件而成为过时的测试用例, 可将其删除或者移动到历史用例库。

在测试用例库中对测试用例发现的缺陷进行排序,可以对相似类的软件系统所出现的缺陷有一定的预测作用。在复用测试用例的时候,优先选择易于发现缺陷的测试用例和数据。

4 总结

软件测试对于软件产品质量的高低起着至关重要的作用,如何提高软件测试的效率已经越来越影响软件产品是否能够按时,作为软件测试的核心——测试用例的设计将变得更为重要。为了缩短软件测试的时间,就需要重复利用以往的先进经验成果,即复用测试用例。测试用例的复用程度,取决于测试用例设计的独立程度及是否规范,并且有一个有效的对测试用例进行规范管理的测试用例库。该文对可复用测试用例的设计思想进行详细分析,提出了可复用测试用例库的模型,对测试用例的复用有很好的效果。

参考文献:

[1] 胡珊,杨丰玉,张晔,等. 基于测试项抽取的测试用例复用方法[J]. 微电子学与计算机,2010(1).

[2] 徐仁佐,陈斌,陈波,等.构造面向对象软件可复用测试用例的模式研究[J]. 武汉大学学报:理学版,2003(5).

[3] 卜国峰,孙志刚,丁小良.软件测试用例的复用研究[J].四川兵工学报,2009(5).

[4] 肖寒,顾春华.一种基于Z规格说明的测试用例复用机制[J].计算机应用与软件,2009(12).

软件测试心得体会范文第2篇

关键词:五年制高职软件技术专业;职业能力;毕业设计

1概述

目前,许多五年制高职院校对毕业设计这一环节越来越重视。学校按照自身的人才培养方案,对毕业设计的要求也是各不相同。有的学校采用实习结束后,提交相关的毕业论文作为毕业设计;有的学校要求学生结合实习岗位,针对企业在生产和管理需要解决的问题开发软件,并辅以文字介绍软件的设计思想、流程和使用方法作为毕业设计;有的学校则在毕业实习之前,通过毕业设计题库,让学生自由选择设计。不论哪种方案,其宗旨都是以就业为导向,培养学生岗位职业能力。毕业设计是衔接学校教育与企业岗位工作的重要环节,只有了解企业对学生职业能力的要求,设计相应的毕业设计流程,才能在毕业设计中培养学生的职业能力。本文结合我校软件技术专业的特点,探索基于学生职业能力培养的毕业设计方法。

2五年制高职软件技术专业基于职业能力的课程体系

2.1五年制高职

所谓五年制高职,也称五年制大专,通过招收初中毕业生,实施五年一贯制培养模式、融中等职业教育和高等职业教育于一体的职业教育。五年制高职的前3年为中等职业教育阶段,后2年为高等职业教育阶段,围绕学生所需的知识、能力和素质,整体设计统筹安排中、高等职业教育的课程体系,达到培养高技术应用型人才的目标。

2.2软件技术专业基于职业能力的课程体系

职业能力是指从事某个职业的多种能力的综合,即将所学的知识、技能和态度在职业活动进行类化迁移整合,形成完成一定职业任务的能力。职业能力又分为基本能力(即社会能力)、专业能力及综合能力也称核心能力。通过构建职业素质课程、专业基础课程和方向核心课程三个模块,凸显“三个能力”,基于职业能力的课程体系如图1,职业素质课程模块主要培养学生具备必要的人文、身心、道德、职业等素质,培养学生与人交流、合作的社会能力;专业基础课程模块主要培养学生具备基本编程基础、网页设计图像处理能力及计算机维护能力等专业性的基本职业能力培养;方向核心课程模块主要培养学生具备使用当前主流开发技术完成软件开发的职业核心能力。

3基于职业能力培养的毕业设计实践

职业能力的培养是学校人才培养的目标所在,在毕业设计实践中有机融合职业能力的培养,可以使学生在毕业后快速适应企业工作并胜任相应的工作岗位,真正实现学校人才培养和企业人才需求之间的零距离对接。

3.1创新毕业设计的组织与管理,保障毕业设计环节

毕业设计的组织与管理是确保毕业设计实践有效开展的关键。首先合理安排毕业设计的时间。毕业设计一般放在学生毕业实习之前的最后一个学期,五年制高职的毕业设计可安排在第9个学期进行,利用第9学期的最后2个月开展,前2个月的时间各科目按原有教学计划进行教学。其次是指导教师确立,参照我校的教学规律,毕业实习之前的专业课教学就是方向核心课程中各项目实战课程的教学,所以指导教师也就是负责这些项目实战课程的教师,教师仍按原课表开展工作,这样指导教师可以实时了解到所带学生的进展。通过这一部署,学生每天在固定时间、固定地点集中,毕业设计的时间、场地有保障,指导老师按课表进行指导,做到对毕业设计全程监管,检查指导及时,学校的教学管理不会紊乱,促进毕业设计实践实施,也可使学生带着完成的毕业设计作品去找实习岗位,更好地展示自己的能力水平。

3.2围绕岗位职业核心能力,设置毕业设计方向

学生的职业能力和从事的岗位息息相关。通过对当地软件企业的考察、调研及人才培养方案的定位,五年制高职软件技术专业学生就业岗位有软件程序员、软件测试员、网页设计员、软件技术支持等岗位。其中,软件程序员是主要就业岗位,程序员又细分为.Net程序员、Java程序员、PHP程序员及移动开发程序员等。不同的岗位,职业能力的要求有所不同,通过主要就业岗位与所需核心职业能力的分析表1可以得出,合理设置毕业设计方向,可以针对性地提升学生在相应岗位上的综合能力,所以在选择设置毕业设计方向时,也是按四个方向来实施。通过专门化的方向设置,提升和强化学生的岗位职业核心能力。

3.3构建毕业设计环节,打造学生的职业能力

结合软件技术专业主要就业岗位的特点,构建“分组与选择方向、选题与开题、项目实施、论文撰写与展板设计,毕业答辩与评价、毕业设计成果展示”这一毕业设计环节,达到充分融合软件技术专业学生的职业能力,升华核心职业能力,具体内容详见表2。(1)方向选择及分组:根据毕业设计具有自主性和选择性的特点,不仅要满足学生对某个方向的兴趣爱好,又要防止学生都集中在某个方向上,可以采用先让学生选择方向,当某个方向满员时老师可以选择学生,将学生进行有效分流,完成毕业设计的第一步。(2)选题:最大限度满足学生自主选题,提高学生兴趣。对于学习基础薄弱的学生可以使用教师提供选题或项目实战课程中未完成或需要护的项目。(3)毕业设计评价:毕业设计评价从整体到量化。毕业设计评价=作品50%+毕业设计文档分25%(论文、项目任务书、毕业设计日志、展板设计图、答辩PPT)+陈述答辩25%。再对作品50%进行细化,主要由指导老师跟踪考评,围绕选题的创新和科学性,作品的可操作性及技术性等分阶段全面量化评分表,这里不再罗列。(4)毕业设计成果展示交流:一方面通过布置展厅展示学生作品,另一方面挑选优秀毕业设计作品,邀请在外实习学生回校向低年级学生开设毕业设计成果汇报,主要内容包括介绍毕业设计作品创作理念、方法和在外实习心得体会等,引导低年级学生主动探究、激发兴趣促进其职业能力的培养。

软件测试心得体会范文第3篇

通过在大唐电信的毕业实习进一步掌握和强化通信专业理论知识的理

解,了解当代通信新技术及运营商实际情况,认识3g无线网络、光传输、epon接入网等商用设备,学习其工作原理及领域。理论联系实践,为实际工作打下良好基础。

2 实习任务及内容

2.1 实习任务

1.做好实习笔记。

2.联系所学专业知识,多思考,多请教。

3.总结实习中所学的知识及心得体会,完成实习报告。

2.2 实习内容

2.2.1 了解通信运营商现网运营的实际状况,学习当代通信及信息行业新技术。 国内三大运营商中国电信、联通、移动。中国电信作为中国主体电信企业和最大的基础网络运营商,提供固定电话网络及cdma网络运营。中国联通是基于gsm和wcdma制式网络的移动通信运营商,同时作为中国主体电信企业和基础网络运营商,覆盖全国城乡,在全国范围内经营电信业务。XX年中国联通分拆双网,其中cdma网络并入中国电信联通停止cdma业务,保留gsm网络与中国网通组成新的联通集团。中国移动是一家基于gsm和td-scdma制式网络的移动通信运营商,其建成了一个覆盖范围广、通信质量高、业务品种丰富、服务水平一流的移动通信网络。现在的通信正向光通信网络转变,其运营商都正在进行光网络的转型中,epon(以太无源光网络)作为一种新型接入网技术的出现,其低成本,带宽高,扩展性强,节省了大量光电转换器,为光网络的建设减少了成本。

2.2.2 参观3g无线移动网络、光传输、epon接入网等商用设备,了解其工作原理及应用领域。

3g无线移动网络大大推动了移动互联网的发展,当前,大部分3g运营商已经升级到3g增强型技术,下行传输速率提高到21mbit/s,3g增强型技术所提供的高带宽,使得占用带宽较多,实时交互性较强的互联网业务可以在3g网络上广泛应用,为运营商的业务创新提供了更多的发挥空间。

光传输是在发送方和接收方之间以光信号形态进行传输的技术。现在商用系统sdh系统 155mbps、622mbps、2.5gbps、10gbps。 – dwdm系统 32x10gbps、 40x10gbps。光传输技术包括sdh(同步数字系列)、pdh(准同步数字系列)、波分复用技术、光分插复用、光交叉互连及全光网络。光传送网络技术、光因特网技术、宽带综合光接入技术是光通信发展的动力。

epon(无源光网络)新型的光纤接入网技术,它采用点到多点的结构、无缘光纤传输,在以太网上提供多种业务。它在物理层采用pon技术,在链路层使用以太网协议,利用pon的拓扑结构实现了以太网的接入。它结合了pon技术和以太网技术的优点:低成本;够宽带;扩展性强,灵活快速的服务重组;与现有以太网的兼容性;方便的管理等。在不光纤资源短缺的情况下,采用多级分光且分光功率不等的光分路器,可节约光纤的开支。

2.2.3 学习wcdma网络的硬件组成,进行硬件维护管理、调测开通业务实习。 wcdma(宽带码分多址)是一种基于gsm map核心网,utram(umts陆地无线接入网)为无线接口的第三代移动通信系统,是中国联通采用的3g通讯标准。wcdma的优点是:较高的扩频增益,发展空间较大,全球漫游能力最强,技术成熟性最佳。在硬件维护中,夏季高温天气时,需要定时查看机房温度,做好机房降温工作,定期清理rnc防尘网上的灰尘,并通过网管每天查看rnc板卡温度,在温度超过40度,就需要及时查看防尘网和机房环境温度。调测开通业务时,在开通新站前,需要仔细检查参数的配置,导频正常应该为总功率的10%,修改范围为8-12db。软件测试是使用人工或自动的手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

2.2.4 学习wcdma网络优化技术,掌握网络优化的基础知识,上机体会认知网络优化的技术运用。

网络优化是整个无线网络建设过程中的重要一环,其目的是根据无线网络系统的实际表现和性能,对网络进行合理的调整,逐渐改善网络的性能,达到在现有配置条件下系统性能的最优。整体优化是cdma技术的典型特点。因为频率相同,所以网络优化应当对系统内所有的基站整体同时进行。

对于wcdma系统的优化主要包括下列几个方面:

1 小区布局优化:包括站点位置、拓扑结构、是否使用多层、多频网络、天线方位角、下倾角、高度等工程参数的优化。

2 覆盖优化:优化容量与覆盖之间的关系,根据业务特点优化覆盖指标。

3 容量优化:合理控制负载,结合阻塞率、掉话率等指标调整资源配置。

4 无线资源管理优化:包括小区参数、切换参数、接入参数、功率控制参数和各类定时器等参数的优化。

5 导频污染问题:导频污染问题分析及其解决方案。

6 邻区优化:包括邻集列表优化、控制合理邻区数量以及结合实际情况调整邻区参数等。

2.2.5 学习三网合一技术,了解最新发展技术,进行硬件维护管理、调测开通业务实习。

三网融合是指电信网、广播电视网、互联网在向宽带通信网、数字电视网、下一代互联网演进过程中,三大网络通过技术改造,其技术功能趋于一致,业务范围趋于 相同,网络互联互通、资源共享,能为用户提供语音、数据和广播电视等多种服务。三合并不意味着三大网络的物理合一,而主要是指高层业务应用的融合。三网融合应用广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居等多个领域。光通信技术的发展,为综合传送各种业务信息提供了必要的带宽和传输高质量,成为三网业务的理想平台。统一的tcp/ip协议的普遍采用,将使得各种以ip为基础的业务都能在不同的网上实现互通。具有统一的为三大网都能接受的通信协议,从技术上为三网融合奠定了最坚实的基础。对于终端用户而言,三网融合提供的是一种更多的选择方案和更丰富的交互应用。

3 实习心得与收获

大学生专业实习是大学学习阶段在完成一定的课程后所要进行的最重要的一段实践环节。实习是每一个合格的大学生必须拥有的一段经历,它使我们在实践中增强专业意识和实践意识,在为期两周的北京北京协力超越科技有限公司实习中,对通信专业的基础知识,有了更深的了解,开阔了眼界,增加了见闻,明白了一些通信设备的简单原理,也明白了目前该行业的最新发展,把平时书本的知识应用在实践中,看到了所学知识的不足,在大学中积累的知识只是行业中的冰山一角,况且高校教育与现实工作中的实际情况脱节很大,这需要我更加努力学习,了解更多的相关知识,丰富自己的阅历。 通过实习,我们才有了机会去面对着专业性人员,听着他们对专业性的讲解以及亲自看到了许多的大型通信设备,这些都很有助于我们对知识的理解以及与实际相联系,这些都很益于我们以后的工作。通过实习,让我体会到了通信在国民经济发展中所处的地位和所起的作用,加深对通信工程在生产生活中的感性认识,了解这些企业生产和运营的规律,学习这些企业组织和管理知识,巩固了所学理论,培养了初步的实际工作能力和专业技术能力,增强了我在通信工程方面的学业背景和对本专业的热爱。

(1)真正体验到工作并不是想象中的那样,它不是一件容易的事。

(2)以前觉得书本上很空洞的东西现在清楚明了了许多,我真正的感到了“实践出真知”这句话的内涵,自己亲身实践的东西是自己永生难忘的,这也是人类得以生活得更好的根本原因。

(3)从小的方面来说,不能有丝毫的马虎,没有机会让自己犯错误,每天都要打起精神工作。我切身体会到了做好自己工作的重要性,在做事之前,要周全考虑到做工作的各个方面,特别是我们学理工的,更要有逻辑思维和一丝不苟的态度来对待事情。

(4)深切体会到了学好专业学好知识的重要性,因为我们所学的是通信工程专业,通信工程的地位举足轻重,所以我要好好在实践中学习,为祖国的通信事业奉献光和热。

软件测试心得体会范文第4篇

关键词:软件开发;能力培养;案例教学

当前计算机专业或软件工程专业的学生存在着学用脱节、实际开发能力偏弱等问题。尽管很多高校计算机专业、软件工程专业在软件方面的课程体系上是将整个学科专业的知识按一定顺序和层次分解,使得学生能够循序渐进地学习和掌握知识,这无疑是行之有效的。但掌握了软件开发领域的知识,并不意味着同时具备了软件开发的能力。事实上,学生虽然接受了系统的软件开发专业知识的学习和软件开发技术应用的训练,但软件开发能力低下的情况还相当普遍。要从软件开发的“菜鸟”,成长为软件开发的高手,或者称之为“高级蓝领”,必须通过长期的历练,没有捷径。但好的教学案例和人才培养模式,对促进软件人才的成长和开发能力的提升有很重要的作用[1]。

1软件开发人员能力要求

由于软件开发是一项技术综合性很强的工作,因此,企业对软件开发人员能力的要求也是综合性的[2]。按照教育部对软件学院学生实践能力培养的要求和工程应用型人才培养的定位[3],软件学院的学生在软件开发过程中,既要能将用户的需求映射到良好的软件体系结构,在进行应用软件总体设计时有大思路和大局观,也要能运用现代软件设计方法和编程技术在进行详细设计时关注细节,实现高质量的软件;在考虑软件实际应用时,既要支持国际化及本地化的应用要求,也要支持软件及运行平台升级、操作系统迁

移的应用要求;在技术应用能力上,既要对使用的编程语言和开发环境有很好的把握,也要能综合运用前期所学的操作系统技术、数据库技术、网络编程技术、图形图像处理技术、人机交互技术等专门技术;在软件工程素质上,既要具有软件工程技术和管理方面的知识,还要具备良好的团队合作、交流和文字与口头表达能力。上述这些就是现代IT企业对软件开发人员的能力要求。

2案例实践教学对软件人才培养的意义

案例实践教学对软件人才培养具有以下优势:

1) 学生通过案例学习不仅对理解和掌握计算机软件的抽象概念及原理十分有用,而且对学习先进的软件编程方法、使用先进的软件开发技术、提高自身的软件开发能力大有益处。

2) 学生通过对案例代码的阅读分析,可以使一些一知半解的概念突然变得清晰易懂,使一些久思不解的问题变得豁然开朗。

3) 通过案例学习,学生能够零距离接触到软件高手,深深为他们巧妙的方法、过硬的技术、认真细致的精神、追求完美的态度所折服。

3实践教学案例的设计

案例设计的内容、质量以及案例教学的水平是案例实践教学的基础,是案例学习成功与否的关键。

作者简介:蔡建平,男,教授,研究方向为软件工程、嵌入式软件测试和数字媒体技术。

3.1案例设计要求

设计支持软件开发能力,特别是综合开发能力培养的实践教学案例是许多高校计算机软件类专业教学面临的问题。

首先,这样的案例对于高年级的学生要涉及到他们前期所学的计算机软件开发各个方面的知识和技术,如程序设计、面向对象编程、数据结构与算法、操作系统、数据库、网络通信、图形图像处理、人机交互、软件体系结构,等等;另外,要帮助这些学生在通过案例学习后,建立起软件开发的大思路或大局观,对软件的质量要求(特别是可靠性要求)、维护要求(特别是软件功能扩充及升级要求)有很清晰地了解,并能够反映到软件的设计和实现上。最后,学生学习完案例后,要了解支持软件跨地域、跨平台和跨时间的应用需求,并掌握保证这些需求得以实现的相关技术,如软件的国际化和本地化、软件及平台的升级、平台移植或系统迁移等技术。

在案例设计中最为关键的问题是案例能够在各高校无障碍地推广,不要因为经费、实验环境等问题使案例设计成果没有应用价值。因此,案例设计要求全部使用开源代码或开源技术。事实上,开源软件的使用,不仅有利于通过免费的开源软件大大降低搭建实验环境所需的条件,使学生能够零距离地学习优秀软件,全面提升自身的软件开发能力和软件开发素质,而且学生可以根据专业兴趣或学时安排,有选择地对其中的软件和技术进行更深入的学习和专门的研究,形成自身的技术特长和研究方向。

案例设计中还有一点要特别注意:所选择的案例不要涉及很深的领域专业知识,又是人们感兴趣、经常接触到的东西,这样有利于激发学生的学习兴趣;另一方面,希望案例涉及多种计算机软件开发的主流技术,如面向对象程序设计技术、客户/服务器技术、多线程技术、网络编程技术、数据库技术、图形学、GUI等众多软件技术;最后,希望所设计的案例是综合性的应用软件,以适合学生综合开发能力的训练。

3.2案例详细设计

基于上述的案例设计要求,以及早期项目的研发经历,我们选择股票软件作为软件综合开发实践教学的案例。首先,股票软件不涉及很深的领域专业知识,又是现代社会人们非常关注、感兴趣、且有可能经常接触或身陷其中的事物,学生容易入门和感兴趣;另一方面,这类软件其工作模式主要是客户/服务器的工作模式,涉及到面向对象编程技术、网络通信技术、数据库技术、图形技术、用户界面技术以及数据结构与算法等众多软件技术,其综合性很强,对学生综合开发能力的训练非常合适;最后,我们所选择的股票软件Stock-0.0.9是一个早期的开源股票软件,它是一个股票软件的雏形,易于学生学习和完善,包括做第二次开发。将该软件作为案例进行实践教学可让学生接触和应用如下开源技术:

1)Linux操作系统及虚拟机技术;

2)GCC程序设计技术(包括编译技术、调试技术及集成开发技术等);

3)MySQL数据库应用技术(基于C/C++应用编程接口API的MySQL数据库开发技术);

4) 基于套接字编程的网络通信技术(支持TCP/IP协议的开源liptcp++库的应用);

5) 基于Gtk+的界面设计技术(应用Glade支持界面的设计及应用框架的生成);

6) 股票软件的结构化程序设计及面向对象编程技术等。

在对Stock-0.0.9进行编译生成可执行目标代码并建立其运行环境的过程中,学生能够接触和了解到程序设计的强类型机制、可靠性编程思想、软件构造方法、C/S工作模式实现手段、开发环境及应用环境升级对策、软件国际化及本地化应用要素、操作系统迁移或移植问题等方面的内容,使学生真正掌握基于复杂图形用户界面的大型应用软件开发的方法和技术,理解现代软件开发方法学和现代程序设计思想,增强他们解决实际问题的工程实践能力。

4案例教学实践及成果

4.1实践情况

软件学院针对教育部对软件学院学生实践能力培养的高要求和软件工程硕士复合型工程人才培养的定位,以及学院学生(特别是非在职的工程硕士研究生)综合性实践能力太弱等实际情况,经充分论证,确定了提升学生软件综合开发能力的培养目标,分别于2006年下半年在学院为本科生开设了“界面设计”课程,为软件工程硕士开设了“高级软件编程技术”课程。这两门选用同样案例,讲授了10多次,受益学生达800多人。在这期间,课程的教学案例和实践资源也不断得到补充和完善。

4.2实践成果――教材建设

学院考虑到案例实践教学的效果以及教学案例和实践资源的成熟与完整,决定将案例和课程资源进行总结与提升,出版与之配套的实践教材,推广相关的实践教学经验,让国内高等学校计算机和软件相关专业的实践教学从中受益。学校对此工作提供了经费支持,同时在清华大学出版社的支持下,完成了《软件综合开发案例教程――Linux、GCC、MySQL、Socket、Gtk+与开源软件》的编写工作,该教材已于2011年2月出版发行。

1) 教材的主要内容。

除了有大量篇幅讲述计算机应用的主要开源技术外(如Linux操作系统、GCC编程语言、网络Socket编程通信、MySQL数据库管理、Gtk+界面设计),特别通过实际案例――Stock股票软件将这些技术融会贯通在一起,并站在更高的角度上对软件体系结构、应用软件开发模式、软件的国际化与本地化,软件开发和应用环境升级方法以及平台移植技术等充分地介绍和实例说明,以此达到授人以渔的目的。可以说这是一本集各种主要的计算机开源技术应用于一体的软件综合开发实践教材。

2) 教材的特色。

① 能够满足计算机、软件工程及相近专业高年级学生在前期学习了程序设计、操作系统、数据库、计算机网络等计算机专业基础课程后,急需通过一个案例或一个项目来应用这些专业基础知识和技术进行综合性实验或实践,提高自身计算机技术综合应用能力的需求。

② 除了对主流的计算机开源技术做了详细地介绍和举例分析外,还特别地突出了计算机开源技术在实际股票软件项目中的应用,很好地支持着案例驱动式的实践教学。

③ 教材所涉及到的实验教学资源相当丰富,覆盖面相当广,且全是开源软件或开源工具,保证了国内许多院校在办学条件不足,实验教学经费有限,无法全方位引进商用软件工具的情况下,仍然能够开设出软件综合性开发的实践课程。

总之,该教材作为案例实践教材,自始至终强调和灌输现代软件开发方法学和现代程序设计思想,强调软件综合开发能力的培养。该教材所涵盖的大量技术内容、实操案例及问题解决方案,如果学生能够完全掌握并能实际地用于软件项目的开发,从软件开发能力上说已达到一个高级蓝领的要求了。

5案例实践教学的实施方案

北京工业大学软件学院在学生软件综合开发能力培养上分别针对软件工程本科专业的学生和软件工程专业学位的学生开设了选择同样案例和教材的不同课程――“界面设计”和“高级软件编程技术”。下面我们主要以本科生为例,介绍在“界面设计”课程中案例实践教学的实施方案或课程大纲。

5.1课程设计目的

学院在四年制软件工程专业本科生的教学计划中,为大三的学生在第二学期安排了“界面设计”的课程,60学时,2学分,共15个实验单元(每个单元4学时)。

“界面设计”课程是按照教育部对国家示范性软件学院培养工程化软件实用人才的要求,以界面设计为立足点,对前期所学的主要计算机技术(如软件开发、程序设计、网络编程、数据库应用等)进行综合训练。

要求学生在掌握界面设计的原则、方法和常用技术,掌握当前主流的开源界面开发工具Gtk+和开源界面设计工具Glade进行界面设计及实现等技能的基础上,通过具体的案例――股票行情分析软件,将计算机软件开发所涉及到的相关知识综合在一起,开展实践活动。

通过该实践课程,除了使学生掌握界面设计的全部流程和技术,培养学生界面的设计能力外,可使学生接触和学习基于复杂图形用户界面的大型软件开发的方法和技术,了解Linux操作系统、编程语言、程序设计、编译应用、图形界面、数据库、网络通信、软件体系结构、应用软件开发模式以及平台移植等技术在实际软件开发或应用项目中的具体应用,达到增强他们工程实践能力的目的。

5.2课时安排

该课程设计以《软件综合开发案例教程》为实践教材,其实践教学方案主要是按照15个实验单元并依据教材内容和知识单元组织进行制定的。

第1单元:对课程设计提要求,对Linux操作系统知识点进行讲解,并安排学生进行Linux操作系统的实际应用,学会Linux虚拟机的安装、配置和使用。

第2单元:对应用GCC进行软件开发知识点进行讲解,安排学生进行GCC开发应用实践,学会编写工程文件、用GCC编译C/C++程序、调试程序、建立集成开发环境。

第3单元:对网络通信及Socket编程知识点进行讲解,安排学生进行网络通信的Socket编程实践,学会在libtcp++环境下建立客户/服务器的工作模式。

第4单元:对MySQL数据库应用知识点进行讲解,安排学生进行MySQL应用的相关实践,学会用MySQL C API进行数据库应用的简单开发。

第5单元:对Gtk+用于界面设计的知识点进行讲解,安排学生进行Gtk+的界面设计实践,学会用Gtk+和Glade进行简单界面的开发。

第6单元:介绍股票交易的相关知识、股票软件一般包含的内容和所涉及到的技术,安排学生学习和使用国内主流的股票软件,学会股票软件的使用方法和使用流程。

第7单元:对开源股票软件Stock进行分析讲解,并带领学生将Stock源码编译成可执行的二进制码,要求学生学会处理编译和连接过程中出现的各种问题,特别是强类型问题。

第8单元:对应用软件国际化和本地化相关知识和技术进行讲解,对Stock软件的Gtk+1.2界面实现方法进行分析,并带领学生解决Stock软件中文显示问题,要求学生掌握在Gtk+的界面控件上和绘图区中正确地显示中文、英文及数字方法。

第9单元:对Stock软件的数据库应用编程、网络通信编程等实现方法进行分析,带领学生解决股票数据库的建立、股票数据的导入等问题,要求学生掌握Stock软件中用MySQL C API进行股票数据库应用、用Socket进行网络通信的开发技术。

第10单元:对Gtk+2.0特点进行讲解,带领学生解决Stock软件从Gtk+1.2到Gtk+2.0升级中遇到的各种问题,要求学生掌握确保软件能够升级的软件设计思想和问题解决方法。

第11单元:对在Windows上进行Gtk+应用程序设计的方法进行讲解,带领学生将Stock软件从Linux上移植到Cygwin和MS VC上,并解决移植过程中的问题,要求学生掌握一般软件移植的基本要点和基本方法。

第12单元―第13单元:学生按分工要求开展独立实践活动,并撰写实践报告。

第14单元―第15单元:学生按分工要求进行PPT的实践汇报和实践成果的演示。

5.3课程设计组织

课程设计以课题组形式开展,6人一组,每组必须完成6篇报告(Linux虚拟机使用总结报告、Linux下GCC编程总结报告、MySQL数据库应用总结报告、基于TCP/IP的Socket编程总结报告、用Gtk+设计图形用户界面总结报告以及股票分析软件实现技术总结报告),指定课题组长(完成报告6),课题组其他成员分别完成报告1~5,每人1个,不能重复。

课程设计以实践为主,完成教材中所布置的实验习题。作业以电子方式交付。

5.4课程设计考核

对每位学生,课程设计考核包括四部分:

1) 电子版课程设计报告(40分),对于报告其撰写要求如下:

① 每个报告不少于1万字(不能以图表代文,论述为主);

② 报告的基础是每章的实验习题;

③ 报告可分4~5章(第一章概述,最后一章总结,其他章节自行组织);

④ 报告以教材为样式进行排版;

⑤ 报告不要出现网上拷贝的痕迹,网上摘录的要进行相应处理,严禁聊天用语、博客用语以及混乱的控制符和全角符号;

⑥ 图表要清晰,重要的图表要亲自画或截,不要拷贝。

2) 每位同学要准备总结报告的PPT汇报(10分钟的汇报),汇报成绩20分。

3) 每位同学要进行所选报告的成果演示,演示成绩20分。

4) 考勤成绩20分。考勤10次,每次2分,考勤缺席5次的无成绩。

5.5基于案例的“界面设计”实践教学效果

“界面设计”课程自2006年开设以来,学生普遍反映良好,口碑颇佳,软件开发的综合实践能力得到了明显的提升。

最近,我们对学生学习该课程的体会和感想进行了调查,学生普遍认为案例内容和实验方案丰富、实用和生动,大大地开拓了他们的眼界。通过基于复杂图形用户界面的大型应用软件开发方法和技术的学习和实践,对现代软件开发方法学和现代程序设计思想有了更进一步地理解,增强了软件综合开发和解决复杂问题的工程实践能力。特别是对软件开发有了大局观,对软件开发中软件设计和高质量代码编写的重要性有了新认识,对优秀开源软件和开源技术有了极大的兴趣。下面是部分学生在课程设计实验报告中对“界面设计”的案例教学谈到的心得体会:

1) 通过这门课的学习,我基本掌握了Linux虚拟机的使用,以及Linux下的GCC编程,应用软件图形用户界面GUI的界面设计,网络数据库应用技术和网络通信技术,并能进行具有图形用户界面程序的开发,提高了应用C/S模式、管理数据库数据等实际应用能力。由于平常主要都是理论课程,实践机会比较少,大家组队进行开发就更少了。通过此次实践,我体验到了团队开发的重要性,学会了如何合作开发,并大大提高了我解决问题的能力,为以后工作学习增加了丰富的经验。

2) 以前学习Linux时仅把它当作一种单纯的操作系统,没有在上面做开发,导致对Linux了解不多。经过半个学期基于Linux的股票案例学习后,我收获颇多。我主动收集和阅读了大量资料,并锻炼了实际动手能力。我学到了如何在Linux环境下搭建开发环境、进行编程和开发,并对MySQL,GCC,Gtk+等开源软件在Linux下的应用有了初步的认识,加深了对Linux下编程整体流程和工作细节的理解,知道了Linux下调试程序的方法,真正了解了程序在Linux下从编译到运行以及排错的全过程。

3) 这次课程设计我们的收获非常多的,首先大家对于一款良好的软件应该具有什么样的功能和性能有了比较清楚的认识,这对于我们以后在软件开发乃至今后的工作都是有益处的。其次,这次复杂的课程设计锻炼了我们各方面的能力,包括团队合作、资料查找、学习、融会贯通以及查错能力,等等。可以说对我们的综合能力是一次极大的考验。在整个工程的过程里,大家接触了很多以前没有触及过的知识并对其有了较为深切的理解。最后,本次课程设计沟通了我们几位同学之间的感情,在辛苦工作的同时,也留下了难忘的回忆。

4) 我觉得这门课对我很有帮助,让我学会了一个我以前不会也没接触过的有用的软件,学会了如何使用Gtk+来进行图形界面的设计。通过这一学期的学习,课上听老师对一些知识的讲解,对Linux更加熟识了,对如何在Linux下安装各种有用的软件更加清楚。在课后我们组成小组,分工明确,每个人认真地负责自己的那部分的工作,查资料,学相关的知识,然后再给小组的每个组员讲,使组内的成员对大家的工作都很熟识,这样合作起来就更加的融洽,而且也可以互相讨论和帮助。在这门课上学到了很多知识,也锻炼了动手能力,最后作报告培养了大家的语言表达能力。总之,我觉得这门课很有意义。

5)Stock股票软件的成功运行让我们对自己的能力充满了信心。从最开始我们兴致勃勃地组成一个小组,憧憬着成功的那一天开始,一路磕绊,直到今天我们看到一个完整的软件,这里的每一个细小的环节都有着我们为之付出的艰辛努力。这与我们小组成员的团结努力是密不可分的,尤其是负责编译、调试和排错的组员。课程设计中遇到的问题,不但没有将我们击垮,而且在问题解决过程中,使得我们对许多知识又有了新的理解。感谢学院给我们提供了这样一门自己动手的课程,它对提高我们的编程能力非常有帮助。

6) 这次课程设计使我建立起一种坚持到底不放弃的精神。之前的我总是缺乏恒心,一旦进展不顺即想放弃。这次强迫我接触很多不会的新东西,而且时间上有限制,令我不得不一次次与失败和不顺打交道。在翻越这一道道“沟壑”的过程中,我觉得自己的毛躁在逐渐退去,变得越来越稳健。我想精神上的成长可能比知识的增多对我来说意义更大。

6结语

我校专家对这种模式的案例实践教学给予了充分肯定,指出计算机学院或软件学院学生的软件开发综合能力培养一直是高等院校软件人才培养的一个“短板”,一直缺少好的实践教学方案、好的实践教学案例和好的实践教学教材。因此,软件开发综合能力培养的案例教学在传统实践教学的基础上做了很有意义的探索和实践,其成果显著、资源完整,具有很好的推广和普及基础。学校为了强化该项成果在软件工程专业学位研究生能力培养上的转化和推广,将研究生的“高级软件编程技术”课程列为学校重点建设的精品课程。因此,我们相信,随着精品课程建设的深入开展,软件开发综合能力培养的案例教学基础将进一步夯实,其成果将会进一步凝练、宣传和推广。

参考文献:

[1] 蔡建平. 软件综合开发案例教程[M]. 北京:清华大学出版社,2011:序

[2] 陈红霞,毛京一,滕月鹏. 计算机蓝领到软件蓝领:高职软件开发人才培养模式探讨[J]. 计算机教育,2010(1):135-137.

[3] 教育部办公厅关于进一步加强示范性软件学院建设工作的通知[S]. 教高厅(2007)4号.

The Comprehensive Ability Training for Software Developments Based on Case Teaching

CAI Jianping

(School of Software Engineering, Beijing University of Technology, Beijing 100124, China)