软件测试培训总结范文

导语:如何才能写好一篇软件测试培训总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

该书与国内常见的软件测试实践教材重点讲授某个或某几个商用软件测试工具的方法不同,它是以现代IT企业软件测试需求为背景,以主流的软件测试技术和方法为基础,以当前的软件测试应用为实例,全面介绍了支持各种软件测试类型的开源软件测试工具的主要功能、应用流程及实际案例。特别突出了软件测试工具在实际测试项目中的使用能够有效地巩固所学软件测试知识,掌握软件测试方法和技术以及提高软件测试实战能力。

该书分为管理、静态分析、单元测试、GUI测试、性能测试以及软件综合评测等6大部分,共有12章。主要内容包括:软件缺陷管理、软件测试管理、程序理解、代码静态分析、xUnit单元测试框架、单元覆盖测试、JavaGUI基础类库应用测试、Web页面测试、Gtk+用户界面测试、单元性能测试、Web应用性能测试以及软件综合评测工具等。在该书中,较大篇幅地介绍了如何使用主流开源软件测试工具建立测试环境,如何将它们用于实际软件项目的测试。这种举一反三、抛砖引玉的内容设计,对高校软件测试实践类课程的开设、培训机构软件测试的实战培训以及开发人员和测试人员自学是非常有现实意义的。该书在最后一章特别强调了软件综合评测的意义,并以南京大学研制的Eastt工具为实例,全面介绍了软件评测的思想和过程,有助于学生全面掌握软件评测的方法和技术,提高实际的软件评测能力。

关键词:软件测试;测试成熟度模型(TMM);模型框架;成熟度等级结构

Abstract:Modelingsoftwaretestingcangreatlyimprovethequalityandefficiencyofsoftwaretesting,andCMMIandotherpopularmodels,thereisnodetaileddescriptionoftheprocessforsoftwaretesting,softwaretestingisnolevelofmaturityoftheevaluationandmeasurement,Thereisalackofsoftwaretestingprocessimprovementgoalsandguidance.Basedonthissituation,thisarticleTestMaturityModel(TMM)hasbeenproposedbyDr.BurnsteinformaldescriptiongivenmaturitylevelstructureTMMmodelelaboratedfivetestlevelofmaturitygoalsandsub-goals,,TMMandimplementationmethodsaredescribed,aswellastheauthorsummarizesandReflectionontheTMMmodel.

Keywords:softwaretesting;TestMaturityModel(TMM);modelingframework;maturitylevelstructure

1背景

随着信息时代的快速发展,软件产业也逐步进入高速增长态势,软件过程的研究已经发展为软件测试行业的基础工作之一。要加强软件组织的开发能力、提高软件产品的质量,就必须不断地对软件过程的能力进行改进。因此,软件能力成熟度模型即CMM在1987年美国CarnegieMellon大学软件工程研究所应运而生CMM逐渐成为了评估软件开发过程的管理以及工程能力的标准。目前,已经形成了以个体软件过程、团队软件过程以及过程成熟度集成模型CMMI等为主导的软件开发过程改进体系[1]。但是,传统CMM的着眼点在于软件组织的开发过程和软件过程能力,并没有关于软件测试成熟度的概念,也没有研究改进软件测试过程的方法,因此,随着软件测试在软件生命周期中的地位越来越突出,软件测试成熟度得到了业内人士的高度重视,并且在传统的软件过程成熟度基础上继续进行模型改进,其中,比较具有代表性的是由IleneBurnstein博士等人提出的软件测试成熟度模型(TMM),该模型是对CMMI模型的补充,是对CMMI模型的存在问题的修正,同时也对改进软件测试过程及提高软件测试能力做出了思想和方法上的指导。

2TMM模型框架简介

TMM模型为了改进软件测试与评价过程,对CMM模型进行了较大程度的改进与补充。TMM模型在CMM模型的原有基础将软件测试过程划分为初始级、定义级、集成级、管理与度量级和优化级5个等级[2]`。处于初始级的软件测试,是一个混乱的过程,测试过程在编码之后,与调试未加区分;阶段定义级的测试过程,很大程度上凸显出测试过程与调试的区分,但是其被定义为编码之后进行的的独立阶段,显然不符合软件工程的要求;前两个阶段的存在的问题在集成级得到改善,集成级将软件测试融入到整个软件生命周期中,从需求分析开始,测试人员将伴随这个开发过程制定相应的测试计划、测试目标等;从管理和度量级开始,整个测试过程就已经由定性描述进入可度量化的过程。在此过程中,除进行测试之外,还有对软件生命周期各个环节的管理与审查;优化级是以前四级为基础,优化并预防缺陷、质量控制、监控测试成本与效率,为整个测试过程指引方向。

而每个等级(除等级1)都有自己的成熟度目标、子目标以及活动、任务和职责。TMM的模型框架如图1所示。

3TMM的等级结构

在TMM等级描述中,详细阐述了测试过程的特点以及为达到规定级别所需要完成的目标和子目标。

1)第一等级为初始级。软件测试的终极目标是为了查找程序中的错误,在这一阶段,由于相应的编码任务还没有完成,缺乏一定的测试资源,因此软件测试没有相对清晰的目标,测试任务也可有可无。

2)第二等级为定义级。在这一阶段,软件测试的目标是为了验证软件是否符合相应的需求,因此会启动一些相应的软件测试计划过程,并对采用的软件测试方法制度化,在定义级,由于在进行软件测试之前要把所有的编码工作完成,导致的结果就是在需求分析阶段与设计阶段产生的一些软件缺陷会一直遗留到编码阶段才能被发现。

3)第三等级是集成级。在这一阶段,会有相应的、相对独立的测试部门出现,测试工作不需要在完成编码后才能进行,而是在满足用户需求的目标上进行测试工作。并集成到软件生命周期的各个阶段中。在第三等级,需组建一个软件测试组织用于负责测试规划、测试缺陷跟踪等测试技术工作。同时在测试过程中需要有相应的测试工具对测试工作进行辅助。同时,软件测试小组成员要和质量保证专家一起,与客户进行沟通,从软件需求分析阶段制定软件测试计划,并根据需求分析表格制定相应的软件测试目标。该阶段的缺点为没有行之有效的评审制度以及没有一套质量控制与度量的标准等。

4)第四等级为管理与度量级。在这一阶段,软件测试是可以进行度量与质量控制的过程,应保证进行可靠性、可用性与可维护性等方面的测试。软件测试活动既包括程序语言,还把评审与审查作为软件测试活动的补充,用于发现及消除软件产品缺陷。为了测试过程的完备性,建立了缺陷管理系统并将缺陷的等级进行划分。同时测试人员采用数据库记录和管理相应的测试数据以及测试用例。但在管理与度量级,由于没有相应的缺陷预防系统,不能自动的进行收集与分析软件测试中生成的相应数据。

5)第五等级为优化级。在这一阶段,改进了第四等级的缺陷,已经具有相应的缺陷预防能力和软件质量控制能力,能够保证之前发现的缺陷不会在后期继续产生。在这一级,自动化测试工具是整个测试过程的重要组成部分。可以进行自动的收集与分析测试中产生的数据。并建立了测试流程与测试的规章制度。由于优化级的测试活动是可重复性、已定义、已管理和已测量,所以软件组织可以对测试过程进行不断的优化改进和调整。

根据上面描述的TMM的5个等级,给出相应的成熟度等级目标和子目标,如表1所示。

②为软件测试活动定义相应的目标、任务、活动和工具等\&

启动测试计划过程\&①制定软件测试计划模版并进行任务分配

②获取用户需求

③准备软件测试活动所需的工具\&将基本的测试技术和方法制度化\&①在软件组织中实施基本的测试技术与方法,例如黑盒测试、白盒测试策略等。

②制定相应的管理制度,明确规定基本的测试技术和方法何时、怎样实施,以及基本的测试工具等。\&集成级\&

②为每个测试小组成员进行职责分配

③与客户进行讨论,获取用户需求\&

制定技术培训计划\&①为测试人员制定技术培训计划

②将测试策划集成到生命周期的各阶段

③打通渠道,提高用户参与度\&控制与监督测试过程\&①监督和控制过程可视化,为测试过程提供依据

②随时与测试策划对比,及时调整测试进展

管理和测量级\&

建立组织范围内的评审程序\&①拟定正式的评审程序

②将评审定义为测试活动,在生命周期中实施通行评审

③识别、记录、清除软件产品和测试工作的缺陷\&

拟制测试度量程序\&①拟定一套关于测试过程质量与能力的度量程序

②准确识别测试数据,对测试数据进行详细处理分析

③根据测试结果,不断修正测试计划\&

软件质量评价\&①根据测试过程充分性,定义可度量的质量属性和目标

②测试过程完成后,需要保证软件产品可靠、可用、稳定、安全\&

优化级\&

②记录缺陷、分析缺陷,找出缺陷根源

实施质量控制度量\&①根据所定义质量属性,进行测试

②通过统计抽样、等级度量促进测试过程

③融入开发团队,减少缺陷,提高软件质量

④运用模型工具,加强测试充分性\&

优化测试过程\&①根据测试进展,量化测试过程,对测试过程不断优化调整

②建立组织结构标准,支撑成熟度的不断提高\&]

4TMM实施

为了指导软件工程人员进行正确的软件过程评估,采用TMM等级提供支持。在软件组织中实施TMM时,可遵循以下步骤:

1)准备活动

这个步骤中要建立评估小组,选择与培训小组成员,确定组长,选择测评项目,并制定评估计划,准备参加评估的组织部门。根据客户需求制定评估问题表。

2)实施评估

3)分析评估结果

评估人员根据评估输出的TMM等级及相应的记录分析当前软件组织存在的缺陷,并指出该软件组织需要提高的领域以及要达到的下一个目标的优先级。量化的改进目标,制定出相应的行动计划。

4)活动计划

为了使软件组织能够达到TMM的高等级,评估小组应根据高优先级的改进目标开发活动计划,通过该计划描述相应的活动和资源,并改进现有的实践内容和进度。

5结束语

软件产品的开发过程是一项长期的工程,需要不断研究和实践。本文针对传统软件成熟度模型的不足,将TMM模型进行了详细的阐述。TMM模型补充了CMMI模型的不足,能够充分的覆盖软件测试的一系列问题,并且软件组织可以根据TMM的要求,评估当前软件测试能力的状态,并对测试目标和测试过程进行不断修正,极大提高软件测试人员的工作效率。利用TMM模型不断优化测试过程和目标,将会给软件开发和测试组织带来质量和经济上的双丰收。

参考文献:

[1]朱少民.软件测试方法和技术[M].北京:清华大学出版社,2010:71-74.

[2]王峰,谷天阳,佟金荣.软件测评能力成熟度模型研究[J].计算机工程与科学,2011(9):174-178.

关键词:高职;软件测试;专业建设

软件测试是软件开发中的一个重要环节,国内软件开发与测试人员的比例严重失调,市场对软件测试人员的需求量很大。同时,软件测试作为新兴行业,发展前景好、空间大,薪酬待遇好;工作地点以北京、上海、广州等IT产业发达、环境好的一线城市为主。目前市场上急缺的就是初、中级软件测试工程师,这正是高职院校的人才培养目标。

兰州石化职业技术学院于2011年开办软件测试专业,目前第一批毕业生已经走向社会,进行顶岗实习,接受社会的检验。在专业建设的不断实践和探索中,如何做好、做强软件测试专业是我们一直思考的问题。

1专业建设依托区域经济发展

高职院校每个专业的建设都应充分依托区域经济发展,体现行业特色。甘肃省“十二五”规划明确指出:“十二五”期间,将以兰州、天水、平凉为核心,聚集优势资源,进一步扩大集成电路、新型元器件、软件等电子信息产品和产业规模,建设天水电子科技产业园、兰州软件产业园、西北云计算中心等园区,支持兰州市创建国家级软件和信息技术服务业示范基地,争创中国软件名城[1]。面临巨大的市场机遇和挑战,软件测试专业如何进一步把握市场需求,明确专业定位,确定人才培养模式,细化人才培养方案,构建专业课程体系,进一步开发课程资源,落实教学团队和实训基地建设,是我们重点要解决的问题。

2专业建设内容

1)专业定位更加准确,人才培养目标具体化。进一步加强专业建设与社会需求的紧密接轨,深入企业调研,加强市场分析,按照软件测试工作过程所需的典型工作岗位提炼专业人才培养目标,将学生知识学习、技能提升、能力培养和素养形成融入整个教学过程,实现从学习者到工作者的角色转换,努力培养适应软件测试岗位的职业技能强、综合素质高、具有可持续发展能力的高素质技能型人才。

3)充分开发课程资源。在建立完备的课程体系基础上,根据具体情况开发校本教材,丰富教材形态(包括课程标准、教材、教案、电子课件、在线学习课件、企事业案例、毕业实习案例、习题集、参考书等),建立具有明显职业教育特色的课程和教材体系。要打破传统的按照技术学科进行教材编写的模式,开发和推广与软件测试行业密切联系的综合性和案例式课程和教材。

4)加强软件测试专业实训基地建设。在充分发挥现有实训基地效能的基础上,深入其他同类院校和软件企业内部考察,了解市场用量最广的软件测试方法和新型的测试工具软件,学习其先进、高效的实训基地管理办法,与企业专家共同讨论符合高职学生特点的典型测试案例,探索校企互惠双赢、长效合作共建校内外实训基地的新思路。

5)优化软件测试专业人才培养方案。邀请企业专家、校内专家、项目组成员和学生代表共同讨论现有人才培养方案中存在的问题和不足,将前期的调研工作结果汇总、分析、提炼、筛选,结合新形式下的人才培养思路和学生特点,进一步优化专业人才培养方案中的各个环节,重新制定课程标准,探讨项目案例,细化教学过程,保证每一门课程开设的有效性和针对性。

3专业建设思路

1)突出专业建设的开放性。软件测试专业本着“高职教育、源于岗位、工学结合、融入企业”的理念,按照“专业知识+岗位技能+资格证书+职业素质”的培养标准,积极开展“产学结合”的办学模式,注重行业、企业参与专业人才培养方案的研讨和修订。把企业搬进校区,把课堂搬上工作岗位,把教和练更加紧密的结合在一起,变学生被动学习为主动学习,将专业知识理论教学和实践教学有机融合,将专业知识学习,岗位技能学习,资格证书培训,职业素质教育连成一体,形成“工学交替,双螺旋上升”的人才培养模式[3]。

2)注重课程体系的完整性。通过与行业企业合作,针对毕业生可能面向的不同的潜在的就业岗位,如软件测试员、缺陷分析员、测试组长等,按照“分解岗位工作任务确定工作能力设置课程体系开发教学资源”的专业建设思路,构建“基于软件测试工作过程”的专业课程体系。

3)凸显课程设置的针对性。根据“倒推”理论,据岗设课,按照“岗位决定能力,能力决定课程”的主导思想,首先筛选软件测试行业的岗位和岗位群,以及社会认可度较高的职业资格证书;接下来获取每个职业岗位的能力要求、专业知识结构要求和职业素养要求;然后根据获取的岗位能力要求,设置岗位能力课程;根据专业知识结构要求,设置专业知识课程;根据职业素质要求,设置职业素质课程;根据职业技能取证要求,对应取证课程;最后,根据高技能测试人才的成长规律组合课程,并考虑各课程之间的衔接关系及专业教学资源的配置与均衡,我们对同一阶段的课程进行排序,形成软件测试专业课程体系的“倒推”链,即确定岗位及岗位群获取岗位能力据岗设课组合和序化课程形成专业课程体系[4]。

4思考与总结

兰州石化职业技术学院地处西部欠发达地区,通过不断与沿海发达地区的软件企业深度合作,不断交流专业技术,聘请IT培训机构名师亲临指导,目前学院的软件测试专业已经成功探索出了一条适合自己发展的专业建设之路。但在IT市场新技术不断更新、飞速发展的严峻形势下,我们还需进一步解放思想,开拓创新,迎接新的挑战。

[2]任泰明,宋贤钧.“专业+公司”的高职软件技术专业教学改革[J].计算机教育,2011(12):45-46.

【关键词】软件测试教学改革软件测试工程师

【基金项目】2015年中央高校基本科研业务费专项资金项目“C程序代码级内存缺陷的充分性检测技术研究”(15CX02050A)。

一、引言

随着软件产业的迅猛发展,软件的复杂性也日益增加,导致对软件的质量提出了更高的要求,这也使得软件测试工程师成为每个软件企业都不可或缺的技术人才。“软件测试”就是一门培养软件测试工程师的专业课[1],本课程较为系统的介绍了软件测试的基本理论、测试方法、测试过程以及常用测试工具等内容。本课程知识的掌握将为学生系统的掌握软件工程知识体系以及毕业后从事软件测试、软件开发等职位打下良好的基础。

如何扎实有效的培养软件工程学生在软件测试领域既具有理论基础、又具有工程实战能力,目前许多软件工程专业教育者进行了积极的探索[2-4]。我校软件工程专业已入选山东省卓越工程师培养计划[5],为了执行国家对软件工程专业卓越工程师培养的精神,融合学校的“三三三”培养体系[6]的顶层设计,以贯彻培养理论扎实、具备工程实践能力、创新能力强、适应经济社会发展需要的高质量软件工程师为目标,我们也在软件测试课程的培养方案、课程结构、教学方法和考评体系等方面进行了一系列的改革和探索[7,8]。其中最为重要的改革是借鉴CDIO(Conceive-Design-Implement-Operate)工程教育理念,落实了“基于项目的教学”方法,增开了大量的课程设计和综合实践环节,在理论教学的同时注重了工程实践能力得培养。

二、“软件测试”教学面临的问题

“软件测试”课程的已有的教学改革改善了教学效果,但是由于传统的教学方法依然影响着教学,所以目前的软件测试课程教学过程中依然面临一系列问题。

(一)教学内容抽象,学生学习兴趣不高

软件测试是软件工程知识体系的九个知识域中理论性最强的一个知识域,必然造成软件测试教材与教学内容较抽象。目前,软件测试课程教学中普遍存在着理论教学偏重的特点,扎实的理论素养是卓越工程师的必备基础,但是即便对于软件工程专业的本科学生,也欠缺软件项目的实际开发经验,所以课程内容的抽象性增加了学生对课程内容的理解难度。为促进学生对理论知识的理解与应用,必须结合软件测试的课程特点,将抽象的内容分化到软件测试过程的不同阶段中,并采用相应的测试工具体现测试的方法,再应用于教学案例,才能促进学生对抽象的测试理论知识的理解与应用。

(二)教学内容碎片化,学生没有完善的测试知识体系

按照软件开发过程的要求,软件测试是贯穿于整个开发过程的一项活动。而在教学中,软件测试的理论出现了割裂,各知识点呈现碎片化,理论内容与实际的软件测试流程不同步。将不同的测试理论与方法进行了分割,这样利于教材内容的安排以及教学内容的组织,但这也必然造成教学内容碎片化,学生形成不了一个统一的测试理论框架,难以把握所学的理论与方法在软件开发与测试的过程中如何应用。为促进教学效果,有必要基于软件测试过程,定位软件测试的介入点,在不同的介入点进行理论知识的分配,形成一个以软件测试过程为主线、各理论知识在介入点进行分配的鱼骨图式的软件测试理论知识体系。

(三)轻视测试工具应用,培养的学生与企业需求难以衔接

因为软件测试方法众多,这也造成有大量可选的软件测试工具。虽然工具的培训是培养卓越工程师的一个必备环节,然而卓越工程师的培养毕竟不等同于职业教育,不能只是简单的掌握一个测试工具,而应该了解测试工具所体现的测试理论、所适用的测试阶段以及所应用的场景。在进行测试工具培训锻炼的同时,必须结合所讲授的测试理论,以及该工具适用的测试过程与测试场景。为了全面的掌握各种具有代表性的测试工具,需要搭建一个测试工具箱。

(四)教学案例简单,学生没有完整的测试思路

因为理论知识碎片化的讲授,也造成目前教学中只能采用简单的案例,简单的案例虽然有助于学生对具体测试方法的理解,但是难以融会贯通的掌握对一个完整项目的测试。为此,需要基于鱼骨图的软件测试理论知识体系,精心设计能够贯穿整个测试流程的案例,并有必要设计不同类型的案例,形成一个分层次、分类别的测试案例库,以保证对各种测试方法的掌握。

(五)学生对软件测试存在认识偏差,缺乏从事软件测试职业的意愿

目前国内软件行业依然蔓延着“重开发、轻测试”的观点,这种观点也延伸到软件工程专业的教学中,导致部分学生对软件测试这个职业存在认识偏差。这就要求软件测试课程需要从原来偏重理论讲解、学生欠缺软件测试训练的教学中摆脱出来,应该与软件测试工程师要求的能力培养集合起来,注重理论培养的同时,加强与软件测试职业的衔接,增设对软件测试工具的训练,加大基于案例与项目的实战训练,通过工程能力的培养以加深学生对软件测试的正确认识。

三、总结

为了执行我校软件工程专业的卓越工程师培养计划,解决“软件测试”教学中存在的上述问题,我们计划在已有的教学改革基础上,提出“方法为基、过程引导、工具跟进、案例贯穿”的“方法-过程-工具-案例”四位一体的教学方法,以解决目前“软件测试”课程中存在的诸多问题。

本文分析了“软件测试”这门课程随着卓越工程师培养、研究型教学的要求下在理论培养与工程能力训练等方面逐渐显露出的各种亟待解决问题,只有充分认识到这些问题,才有可能针对问题进行教学改革,进而培养理论与功能能力具备的软件测试人才。

[1]吴春雷,刚旭,张俊三.基于“卓越计划”的软件测试类课程改革[J].计算机教育,2014,11:88-91.

[2]李月龙.高校软件测试课程教学改革研究[J].计算机教育,2014,7:16-18.

[3]邓松.递进式软件测试创新人才培养模式研究[J].计算机教育,2014,7:5-7.

[4]周雪妍,林泽鸿,罗秋滨,路雯靖,刘玉利.软件测试技术四面体培养模式的探索与研究[J].教学研究,2013,5:56-58.

[5]张国平等.软件工程卓越培养计划的研究与设计[C].软件工程2011年会,2011,10.

[6]刘华东.构建“三三三”培养体系推进本科教育迈向更高目标[J].中国高等教育,2012,18:34-36.

[7]吴春雷.面向应用型软件人才教学模式的探索与实践[J].中国成人教育,2014.04:124-126.

[8]张国平,吴春雷.软件工程专业核心课程案例化教材的规划与设计[J].高等理科教育,2013.10:85-87.

随着软件产业的快速发展,软件质量越来越被重视。作为软件质量重要保障之一的软件测试也越来越普遍被认可。为了满足用户对第三方测试的需求和填补开发方对资源缺口,将软件测试工作外包给专业的测试团队进行测试是软件发展的必然趋势。为确保规范化的软件测试外包管理过程,企业可依据CMMI模型中的软件外包管理规定对软件外包过程进行管理。本文基于CMMI提出了一种软件测试外包的方式,实践应用证明其能有效地提高组织的软件产品质量和软件工程化水平。

【关键词】软件产品软件测试软件外包CMMI软件质量

软件定义一切这一新兴概念的提出,昭示着软件界的竞争将越来越激烈,软件技术的发展将越来越快。与此同时,软件质量也得到软件行业的重视。而确保软件质量的方法有多种,如:在软件开发过程中进行规范化管理,可以避免开发过程中的不规范、不安全的设计习惯;进行软件测试则能发现软件潜在的质量问题和验证软件使用中的可靠性等。

软件对测试的需求,使从事软件测试行业的人员快速增多。软件测试技术的发展和用户对第三方测试的需求,促进了软件测试外包行业的发展和兴起。另一方面,软件测试外包还可以在一定程度上填补战略目标所需的资源和企业自身资源之间存在的缺口。在多方面因素的共同作用下,越来越多的专业化测试团队快速成长起来,软件测试外包也越来越普遍。

为加强软件测试外包的规范化管理,本文提出一种基于CMMI的软件测试外包管理方法。该方法的实施可以有效地提高软件工程化水平,使软件测试外包活动可以更有效地进行,从而达到不断提高软件质量的目的。

1软件测试外包管理架构设计

1.1基于CMMI的管理过程改进

CMMI是由卡内基梅隆大学软件工程研究室开发的软件成熟度模型,是一种集成过程改进模型。但是,CMMI模型只是规定了每个过程域应该“做什么”,并没有指明每个过程域具体“怎么做”。

为了具体解决“怎么做”的问题,本文提出一种新的软件过程管理架构。本文将软件管理活动规范成进入准则、输入、活动步骤及要求、输出和完成准则等五个部分,如图1所示。

其中,输入是来自以前活动的工作产品;进入准则是判断是否可以进入本次活动的依据;活动步骤及要求是本次活动的具体内容;完成准则是判断本次活动是否完结的依据;输出是通过本次活动创建的工作产品。

1.2软件测试外包管理过程架构

软件测试外包是指甲方公司将项目完全交给乙方公司,由乙方公司出人力物力,完成软件的测试工作,并按照客户需求,提供测试计划制定、测试用例编写等一系列测试技术服务。本文提出的软件测试外包管理过程由三个部分组成,分别是签订软件测试外包合同、软件测试外包活动的执行与管理、验收软件测试外包活动,如图2所示。其中三个活动的具体执行分别遵循2.1节中提出的管理过程。

1.3软件测试外包人员角色

为加强软件测试外包管理过程,需要定义的人员角色包括软件技术负责人、软件合同负责人、分包方代表、客户代表、软件质量师、软件配置管理员。各人员分工主要为:

软件合同负责人:负责软件测试外包合同的起草、活动的管理和验收。

客户代表:负责参加软件测试外包合同和验收外包合同的评审。

软件质量师:监督整个软件测试外包活动的过程符合性和产品符合性。

软件配置管理员:对软件测试外包活动产生的工作产品进行配置管理。

2软件测试外包管理具体实现

2.1签订软件测试外包合同

根据对软件测试外包项目的技术特征和非技术特征所作的综合评估,选择合适的供方,与供方签订软件测试外包合同。

2.2进入准则

本活动的进入准则包括:

根据不同的外包测试级别,所需要准备的文档也不相同,如对于软件单元测试和软件部件测试需要提供的文档是《软件设计说明》,对于软件配置项测试需要提供的文档是《软件需求规格说明》,对于软件系统测试需要提供的文档是《系统/子系统需求规格说明》。

2.2.1输入

本活动的输入包括:《合格供方名录》。

2.2.2活动步骤及要求

(1)软件技术负责人和软件合同负责人根据项目需要,确定需要由外部提供软件测试的产品和服务。a)在项目策划或制定技术方案时,软件技术负责人应组织确定需要由外部提供的软件测试产品和服务,软件合同负责人负责审核软件技术负责人提出的测试产品和服务的完整性和合理性。b)软件技术负责人将软件测试外包的产品和服务列表,形成项目软件测试外包清单。c)该软件测试外包清单应纳入软件测试外包合同或《软件开发计划》。d)软件合同负责人选择供方。①由软件合同负责人组织供方评价,实施测试供方的选择工作。优先从本组织的《合格供方名录》中选取资质完整性好的供方。必须选择经过评审,能满足要求的分包方;在无客户或法定管理机构指定的分包方时,优先选择符合CNAS-CL01《检测和校准实验室能力认可准则》、CNAS-CL45《检测和校准实验室能力认可准则在软件检测领域的应用说明》及DILAC/AC01《检测实验室和校准实验室能力认可准则》要求并获得认可的实验室。外包项目,供方必须具有同级的保密资质,并按本组织保密管理规定执行。

②如果申请的供方在《合格供方名录》中,软件测试外包协议直接由软件技术负责人签署意见,主管领导审批;如果申请的供方不在《合格供方名录》中,应按照本组织的合格供方评定程序进行正式选择。将候选供方的资质调查情况按照合格供方评定程序执行,同时将其提供的相应的质量、保密等资质证明文件作为附件。

2.2.3输出

本活动的输出包括:软件测试外包合同及其附件。

2.2.4完成准则

本活动的完成准则包括:软件测试外包合同已经签订。

2.3软件测试外包活动的执行与管理

软件合同负责人和供方共同执行软件测试外包合同,监督供方协议的执行。

2.3.1进入准则

本活动的进入准则包括:软件测试外包合同已经签订。

2.3.2输入

本活动的输入包括:软件测试外包合同及其附件。

2.3.3活动步骤及要求

(1)软件合同负责人将外包项目的具体实施要求(文档编写要求、技术规范)及时传递给供方。

(2)依据合同中监控计划的规定对供方进行监督,具体包括:a)按照供方合同/技术协议规定的里程碑,召开项目协调会或由供方提供跟踪报告,跟踪项目的进展情况、供方投入(人力、物力、财力)的充分性、项目风险情况等,并对供方提出改进意见和要求。b)软件合同负责人应测量供方项目的进展、测试质量的情况,记录合同执行过程中发现的偏差。

(3)软件合同负责人参加里程碑监控、联合评审,填写里程碑评审报告,并保存评审报告/会议纪要/跟踪报告的复制件。

(4)软件合同负责人应协调和处理合同中出现的问题,包括:a)当供方进度或测试质量达不到要求时,软件合同负责人应协调供方,分析原因并采取相应的措施,以确保产品符合要求。b)软件合同负责人正式评审和监督活动中发现测试项目执行情况与项目计划的偏差大于20%时,软件合同负责人应与供方进行交流找出问题的原因,提出解决措施。

2.3.4输出

2.3.5完成准则

2.4验收软件测试外包活动

2.4.1进入准则

本活动的进入准则包括:供方已经完成合同规定的软件测试产品和服务。

2.4.2输入

本活动的输入包括:

(1)软件测试外包合同及其附件。

(2)供方提供的软件测试产品。

2.4.3活动步骤及要求

(1)软件合同负责人评价并验收供方提交的软件测试产品。

制定验收大纲;在验收前与供方一起,按照本组织软件评审规程的要求评审验收大纲;依据验收大纲,组织召开供方产品验收会,执行验收评审,记录在验收中发现的问题,提交验收报告,验收结论设为:通过:实施交付。有条件通过:实施交付,并形成会议纪要,提出解决问题的措施和确认计划。未通过:不能交付。形成会议纪要,提出解决问题措施、确定再次交付/验收的日期。软件合同负责人测量供方提供的软件测试产品的规模和验收中发现的问题。软件质量师跟踪发现的问题,直至问题解决。

(2)软件技术负责人组织软件外包测试产品的移交和纳入本组织的受控库,在移交过程中应遵守合同。移交后,软件合同负责人依据供方交付产品的情况,评价供方性能,并填写供方监督记录。

2.4.4输出

本活动的输出包括:验收报告。

2.4.5完成准则

本活动的完成准则包括:供方提交的软件测试外包产品已经移交完成。

3总结

参考文献

[1]张卫.关于计算机软件发展的研究[J].生物技术世界,2003.

[2]巨振乐,赵明辉.正在兴起的软件测试外包.时代经贸,2009(120).

[3]CMMIProductTeam.CMMIforDevelopment,Version1.2.CarnegieMellonUniversitySoftwareEngineeringInstitute,August2006.

关键词:CDIO;软件测试;教学改革;分组教学

1概述

CDIO模式作为近年来国际工程教育改革的最新成果,它是“做中学”和“基于项目教育和学习”的集中概括和抽象表达,它以工程项目从研发到运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程[1-2]。无锡商业职业技术学院软件技术专业结合自身的实际情况,对基于CDIO模式的高职软件技术人才培养方案进行了初步探索。软件测试技术作为软件技术专业的专业核心课程之一,在CDIO工程教育模式的指导下进行一系列的教学实践应用,取得了很好的效果。

2传统教学模式存在的问题

现代IT企业需要具有较高专业技能、职业素质和团队协作能力的实用复合型人才[3],但

(1)实践教学死板化。各个院校的软件技术专业在人才培养方案的制定中,都明确规定了课程的实践教学环节,体现了对实践教学的重视。以作者所在专业为例,规定专业课程的实践课时比例至少达到50%。但是在实际教学中,实践教学一般都是教师通过案例先讲解演示,学生再模仿训练,总体还是采用填鸭式的教学方式,因此造成学生一开始还表现强烈的新奇感,对课程学习充满着动力和信心,但是由于无法真正调动学生的主观能动性,随着教学的推进,学生逐渐失去学习兴趣,后面的实践训练只能是敷衍了事。并且,由于课堂教学课时的限制,实训机制死板、不健全,使得学生的真正动手机会还是很少。

识点之间的系统联系和实际应用,使得学生一知半解,不知道学习这些知识点的用处,也不知道如何把所学内容运用到实际项目当中。在这种情况下,学生的工程管理、项目规范、项目文档编制、团队协作和沟通能力没有得到有效提升,因此难以满足企业对综合素质人才的要求。

3CDIO模式在软件测试技术课程中的应用

在软件测试技术课程中,我们把CDIO模式贯穿于教学过程的每个环节,从如下几个方面对课程进行了教学改革和实践应用:

3.1教学目标和内容

在CDIO模式下,软件测试技术的教学目标为“掌握软件测试的理论知识,掌握主流的测试技术和方法;具备测试计划的制定能力、测试用例的设计能力、测试代码及文档的编写能力;具有良好的分析问题和解决问题的能力以及沟通和团队协作能力;具备自主学习和可持续发展能力”。

在课程内容方面,我们基于CDIO的构思、设计、实现、运作的思想,贯穿“做中学”和“基于项目教育和学习”的方式,以工程项目从研发到运行的生命周期为载体,把软件测试技术课程的内容分成五个项目任务。并且在课程中,选取校外实训系统和洗衣管理系统的测试作为贯穿于整个课程的任务。在这两个项目的引领下,实施课程教学。课程的五个项目任务如下表所示:

3.2教学组织

3.3教学手段

3.4考核方式

根据CDIO培养大纲,将学生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面[7],再使用传统的考核方式已经不能满足要求。软件测试技术课程打破了单一的考核方式,从学生的专业能力、社会能力培养的要求出发,建立基于教学全过程、以学生能力提升为导向的学习评价体系。具体包括过程性考核、综合素质评价和终结性考核。其中过程性考核占30%,综合素质评价占20%,终结性考核占50%。

过程性考核:对学生完成实践类项目的情况进行综合评定,考查项目包括课堂学习、小组学习、创新能力、课堂实践和实践报告等方面,每一个项目的考核都制定严格的评分标准。

综合素质评价:对学生在平时学习和实践中表现出来的职业素养进行综合评定,主要包括团队协作能力、沟通交流能力、分析和解决问题的能力、自学能力、工作态度等方面,并对这些方面制定出严格的评分标准。

终结性考核:建立试题库,实施考教分,在期末对学生进行包括笔试和上机考试的综合测试。其中笔试考查学生软件测试的基础理论知识以及对测试理论的应用能力,该部分占终结性考核的60%;上机考试通过对实际测试项目的工作过程进行检查和考核,对任务完成情况进行考核,还包括对测试工具运用的考核,该部分占终结性考核的40%。

4结束语

通过在CDIO模式指导下进行软件测试技术课程的教学,解决了传统教学模式存在的主要问题,为达到学生的知识能力与测试技能要求之间的无缝对接奠定了良好的基础。下一步的工作是进一步完善CDIO模式在软件测试技术课程中的应用,并把这些经验总结应用到软件专业其它课程的教学过程当中。

[1]顾配华.以设计为导向的EIP-CDIO创新型工程人才培养模式[J].中国高等教育,2009(3).

[2]查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008(3).

[3]单光磊,韦良福.高职教育教学改革借鉴CDIO模式解析[J].山东水利职业学院院刊,2011(1).

[4]唐宝燕,冯娜.CDIO模式在高职软件技术专业教学改革中的应用[J].电脑知识与技术,2012(2).

[5]陈翔,鞠小林.卓越计划驱动下的软件测试技术课程教学改革[J].计算机教育,2013(13).

1.软件测试的目的是尽可能多的找出软件的缺陷。(Y)

2.Beta测试是验收测试的一种。(Y)

Acceptancetesting

验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

3.验收测试是由最终用户来实施的。(N)

是由测试人员来实施的

4.项目立项前测试人员不需要提交任何工件。(Y)工件:加工过程中生产对象

5.单元测试能发现约80%的软件缺陷。(Y)

6.代码评审是检查源代码是否达到模块设计的要求。(N)

代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。

7.自底向上集成需要测试员编写驱动程序。(Y)

自顶向下综合测试的具体步骤为:

1以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代;

2依据所选的集成策略(深度优先或广度优先),每次只替代一个桩模块;

3每集成一个模块立即测试一遍;

4只有每组测试完成后,才着手替换下一个桩模块;

5为避免引入新错误,须不断地进行回归测试(即全部或部分地重复已做过的测试)。

自底向上综合测试的步骤分为:

1把低层模块组织成实现某个子功能的模块群(cluster);

2开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;

3对每个模块群进行测试;

4删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。

8.负载测试是验证要检验的系统的能力最高能达到什么程度。(N)

9.测试人员要坚持原则,缺陷未修复完坚决不予通过。(N)

10.代码评审员一般由测试员担任。(N)

11.我们可以人为的使得软件不存在配置问题。(N)

是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。

12.集成测试计划在需求分析阶段末提交。(N)

执行阶段

2)输入需求规格说明书概要设计集成测试计划集成高度设计集成测试例集成测试规程集成测试代码(如果有)集成测试脚本集成测试工具详细设计代码单元测试报告

3)入口条件单元测试阶段已经通过基线化评审

4)活动步骤执行集成测试用例回归集成测试用例撰写集成测试报告

5)输出集成测试报告

6)出口条件集成测试报告通过集成测试阶段基线评审

二、选择题

1.软件验收测试的合格通过准则是:(ABCD)

A.软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

B.所有测试项没有残余一级、二级和三级错误。

C.立项审批表、需求分析文档、设计文档和编码实现一致。

D.验收测试工件齐全。

2.软件测试计划评审会需要哪些人员参加(ABCD)

A.项目经理

B.SQA负责人

软件质量保证(SQA)是建立一套有计划

目标1:软件质量保证工作是有计划进行的。

目标2:客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。

目标4:高级管理层接触到在项目内部不能解决的不符合类问题。

C.配置负责人

D.测试组

3.下列关于alpha测试的描述中正确的是:(AD)

A.alpha测试需要用户代表参加

B.alpha测试不需要用户代表参加

C.alpha测试是系统测试的一种

D.alpha测试是验收测试的一种

4.测试设计员的职责有:(BC)

A.制定测试计划

B.设计测试用例

C.设计测试过程、脚本

D.评估测试活动

5.软件实施活动的进入准则是:(ABC)

A.需求工件已经被基线化

工件加工过程中的生产对象。

基线化一个文档如果经过讨论被通过了,被固定了,就可以说这个文档被“基线化”了,然后所有人就可以在这个“基线”的基础上工作。

B.详细设计工件已经被基线化

C.构架工件已经被基线化

D.项目阶段成果已经被基线化

三、添空

1.软件验收测试包括:_正式验收测试,alpha测试,beta测试。

2.系统测试的策略有:功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试

(有的可以合在一起,分开写只要写出15就满分哦)

3.设计系统测试计划需要参考的项目文挡有:_软件测试计划,软件需求工件和迭代计划。

4.对

面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

5.通过画因果图来写测试用例的步骤为:

(1)根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。

(2)将得到的因果图转换为判定表。

(3)为判定表中每一列所表示的情况设计一个测试用例。

四、简答

1.区别阶段评审的与同行评审

答:

同行评审目的:发现小规模工作产品的错误,只要是找错误;

阶段评审目的:评审模块阶段作品的正确性可行性及完整性

同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

阶段评审人数:5人左右评审人必须是专家具有系统评审资格

同行评审内容:内容小一般文档<40页,代码<500行

阶段评审内容:内容多,主要看重点

2.什么是软件测试

答:测试是为发现错误而执行程序的过程

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

3简述集成测试的过程

答:系统集成测试主要包括以下过程:

1.构建的确认过程。

2.补丁的确认过程。

3.系统集成测试测试组提交过程。

4.测试用例设计过程。

5.测试代码编写过程。

6.Bug的报告过程。

7.每周/每两周的构建过程。

8.点对点的测试过程。

9.组内培训过程。

5白盒测试有几种方法

答:总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

6系统测试计划是否需要同行审批,为什么

答:需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7Alpha测试与beta的区别

Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。

Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。

答:Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

8比较负载测试,容量测试和强度测试的区别

9测试结束的标准是什么

答:用例全部测试。

覆盖率达到标准。

缺陷率达到标准。

其他指标达到质量标准。

10描述软件测试活动的生命周期

测试周期分为计划、设计、实现、执行、总结。其中:

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;

设计:完成测试方案,从技术层面上对测试进行规划;

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

总结:记录测试结果,进行测试分析,完成测试报告。

11软件的缺陷等级应如何划分

A类—严重错误,包括以下各种错误:

1.由于程序所引起的死机,非法退出

2.死循环

3.数据库发生死锁

4.因错误操作导致的程序中断

5.功能错误

6.与数据库连接错误

7.数据通讯错误

B类—较严重错误,包括以下各种错误:

1.程序错误

2.程序接口错误

3.数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误:

1.操作界面错误(包括数据窗口内列名定义、含义是否一致)

2.打印内容、格式错误

3.简单的输入限制未放在前台进行控制

4.删除操作未给出提示

5.数据库表中有过多的空字段

D类—较小错误,包括以下各种错误:

1.界面不规范

2.辅助说明描述不清楚

3.输入输出不

规范

4.长操作未给用户提示

5.提示窗口文字未采用行业术语

6.可输入区域和只读区域没有明显的区分标志

E类—测试建议

4怎么做好文档测试

仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。

检查文档的编写是否满足文档编写的目的

内容是否齐全,正确

[关键词]软件工程;案例库;教学模式;可扩展实践平台

[前言]我校软件工程课程群包括“软件工程”“软件系统分析与设计”“高级软件工程”“面向对象设计方法”“软件测试与质量控制”等多门课程,面向本科生、硕士研究生、博士研究生和任职培训等多个层次,课程门数多、内容交错、衔接紧密,培训要求差别较大。为使软件工程系列课程更好地服务于提升学生工程实践能力和协作创新能力的培养目标,我们积极开展实践平台和案例库建设,进行教学方法改革等。通过设计不同粒度、不同类别的案例,构建软件开发全过程案例库,以适应多层次多类型教学任务;在教学过程中融合基于案例的情景体验教学、基于项目牵引的工程实践教学、基于角色扮演和团队协作的项目研讨式教学等多种教学模式,使得每个学员都能参与到项目开发过程中,保证了软件工程实践的规范化;同时建立基于框架的可扩展实践平台,学生自主设计开发软件程序,提高了学生的学习兴趣和实践动手能力。

一、对实际工程项目进行提炼,构建软件开发全过程案例库

(一)案例的选取和设计

案例的设计应针对软件工程课程群各模块知识点的所处阶段、应用场景和授课目标的差异,既要有覆盖具体知识点的基本案例,又要有体现全生命周期工程化要求的系统案例和综合应用案例。案例内容包括软件过程中的工程案例、管理案例,贯穿全软件生命周期各阶段。

案例的选取应以全生命周期软件项目为主,从实际工程项目中挑选一批具有代表性的、能突出授课要求的素材,在此基础上进行加工提炼和补充开发,最终构建满足教学要求的系列案例。如从自主研制的“软件过程管理平台”中选取典型模块作为测试对象,针对不同测试类型的教学实验需求,对软件代码进行有针对性的变异和缺陷注入,编写对应的测试需求、测试计划、测试设计和测试报告,形成功能测试、性能测试、单元测试等测试案例。

软件工程课程要强调软件设计和软件测试的重要性,对软件设计和软件测试方法进行讲解时,除了要有设计合适的案例,还可以通过当前主流工具(如软件设计的RationalRose建模工具、单元测试的JUINT工具、功能测试的QTP工具等)的演示,使学员加强对软件设计和软件测试过程的可操作性的理解,并将其运用于实践项目中。

(二)案例库规范化设计

软件工程课程群的多门课程需要多样化的案例,适用于不同的场景,映射出不同的知识点。为了规范这些案例,需提取其公共要素,定义案例库规范化设计的基本元素。

案例库规范化设计基本元素中的“案例表现形式”可将案例设置为文档、代码框架、原型系统等。如在本科生的软件系统分析与设计课程中,案例是为学生搭建的一个OpenFrame框架,即一个半成品的代码框架,学生可从半成品框架中学习相应开发技术,然后自己完善半成品的代码框架,将学习与实践过程融入案例中。

例如,在“软件测试”中,通过判定三角形的例子来让学生理解等价类划分法,这是一个基本案例,穿插在知识点讲授过程中。在三角形实例中补充边界值法、错误猜测法等测试用例,形成黑盒测试案例,这就是一个模块案例。而系统案例内容多、设计比较复杂,例如功能测试案例的设计,要包含测试计划、测试策略、测试设计的方法、测试用例的生成、测试用例的执行、自动化脚本的设计、测试运行结果分析以及测试报告等内容。

二、融合多种教学形式,紧密衔接理论和实践教学

传统的课堂教学教员在课堂上讲授软件工程方法、技术等理论知识,但由于这些理论较抽象难懂,课堂教学效果往往不理想。传统的实践教学主要是采用分组模式进行项目开发,但由于没有过程监督控制,通常是由一个能力稍微突出的学员完成所有过程,缺乏讨论、协作,最后往往把精力放在代码实现中,提交一套漏洞百出的代码。针对软件工程课程的特点,笔者结合本校人才培养目标和先进教学理念,对传统教学方法和手段进行改革,在教学过程中融合、应用基于案例的情景体验教学、基于项目牵引的工程实践教学、基于角色扮演和团队协作的研讨式教学等多种教学模式,加强了理论教学和实践教学的耦合度,培养学生工程化理念和团队协作意识,提高了学生探索问题、分析问题和解决问题的综合能力。

(一)基于案例的情景体验教学模式

(二)基于项目牵引的工程实践教学模式

基于项目牵引的工程实践教学,将工程项目与软件工程知识体系有机融合,以工程项目为牵引,让学生在学习理论知识的同时,同步开展生命周期相应阶段的各项任务实践,实现了创新实践与工程认知导引相结合的教学模式。首次上课要求学员分组,各组自主选择感兴趣的项目,后续根据授课进度按阶段完成该项目的整个开发过程。为了提高学生的实践兴趣和做足需求分析,选取项目时,应尽量选择贴近学生生活、需求场景熟悉的项目,如公差勤务系统、图书馆座位管理系统等。如果是从零开始的项目,需要多方面多手段进行软件需求分析,并重点做好软件体系结构设计。另外,选做的项目也可以是已有软件,因为大部分软件开发工作是在老版本的软件基础上进行改进的,已有软件可以是网上开源软件或往届学生留下的作业,要引导学生分析其功能上的缺陷后对其进行改进。通过项目牵引,可使学生在动手实践过程中深刻理解软件工程基本理论知识。

(三)基于角色扮演和团队协作的项目研讨式教学模式

学生以团队协作方式进行项目开发,通过扮演团队中客户、软件需求人员、软件设计人员、编码人员、软件测试人员等不同角色,完成特定任务,并在项目实施过程中及时对项目开发进程和工作产品进行研讨和评审,真正体验一种有序、可控和协作的软件开发过程。描述了软件过程中角色职能及软件开发各阶段的工作产品,并将项目开发活动和项目管理过程映射到课程各知识点,使学员在动态角色参与的项目演练过程中加强对理论知识的理解。

三、针对实践能力培养需求,构建基于框架的可扩展实践平台

四、基于项目过程的考核评价方式

考核评价是教学过程中必不可少的环节,针对软件工程课程考核存在着实践考核不足、学习效果测试不及时、考核评价机制不完善等问题,可采用多元考核和评价方式,弱化期末考试成绩,加强过程考核,着重考核项目开发过程中学员思考解决问题的能力。考核包括期末考试和实践项目两部分,期末考试成绩占30%,采用开卷笔试方式,实践项目成绩占70%,采用阶段评审方式对各小组阶段产出的工作产品进行评审,通过学员互评和教师评价相结合的方法确定团队成绩(40%)和个人成绩(30%)。学员分组进行讲解、答辩、成果演示,学员和教师分别对各组进行整体评价,获得团队成绩,个人成绩由组长根据组员在项目开发中的表现以及对项目的贡献大小获得。

五、结语

通过梳理软件工程课程群理论知识点,构建软件开发全过程案例库,并在案例库基础上,对实践教学方法进行研究,融合、应用基于案例的情景体验教学、基于项目牵引的工程实践教学、基于角色扮演和团队协作的研讨式教学等多种教学模式,加强了理论教学和实践教学的耦合度,并构建了基于框架的可扩展实践平台,通过项目牵引和角色扮演使学员将学到的理论直接应用于实际项目开发,培养了学员的工程化理念和团队协作意识,提高了学员探索问题、分析问题和解决问题的综合能力。

[软件工程硕士论文参考文献]

[1]邹红,王健,苏丹.以能力培养为导向的软件工程专业核心课程群建设研究与实践[J].高教学刊,2018(12).

[2]张爱玲,周世生.新工科背景下软件工程人才培养的研究与实践[J].计算机教育,2018(6).

[3]伍春香,刘斌,李小红.基于能力培养的软件工程教学实践[J].计算机教育,2017(8).

关键词:企业;信息系统;软件外包;关键因素

1引言

随着现代信息技术的发展与应用,国内各行业的信息化建设全面展开。信息化建设离不开各种信息系统的支持,如办公自动化系统、管理信息系统、电子商务系统、决策支持系统等。企业在开发信息系统时,有些需要外包给软件开发商来完成,企业只有把握好外包中的几项关键因素,才能成功实施软件系统的外包。

2企业信息系统软件外包成功实施的关键因素

烟草行业卷烟生产经营决策管理系统(即“一号工程”)是2003年国家烟草专卖局根据行业宏观调控和科学决策信息化建设发展的需要建设的信息化系统。系统建立了行业数据交换体系,通过打扫码、数据库联机方式自动采集行业生产经营基础数据,构建行业业务指标体系和数据分析模型,建立国家局数据中心,实现国家局分析展现应用的界面集成和业务集成。“一号工程”是烟草行业软件外包的一个典型的成功案例[1]。

(1)选择技术实力强、口碑好的软件外包企业

企业在选择软件外包商时,可采取公开招投标方式,对投标单位从技术能力、人员能力及软件过程能力进行综合评估,选择员工作风好、保密观念强、政治觉悟高的企业作为接包方,确保系统数据安全,并与接包方签订《保密责任协议书》,建立安全保密分级管理制度。

如“一号工程”于2003年通过公开招投标,确定由中国计算机软件与技术服务总公司(即中软总公司)作为项目总集成商,中软总公司委托其下属的中软国际承接项目建设工作。中软总公司是国家规划布局内重点软件企业,实力雄厚;中软国际是国内领先的应用软件和解决方案供应商,在国内IT行业享有较高的声誉。

(2)充分调研与沟通,作好项目需求分析工作

企业在软件外包时必须做好项目需求分析工作。业务部门提出用户需求后,通过与技术部门、软件开发人员多次交流沟通,提出系统的综合要求及标准。开发人员通过分析系统需求,了解用户工作流程并对其进行正确分类,确定系统的可接受性、可实施性、可测试性;在形成需求报告之前,对后期发现的不明确、不一致的地方要进行修改或补充;最后项目经理应邀请客户代表共同评审需求文档的正确性、完整性和清晰性,使需求文档正确无误地反映用户需求。

(3)明确各部门职责,选派专人参与开发过程,保证项目进度及安全

企业应明确参与部门(如归口管理部门、牵头部门、协作部门等)的具体职责,避免在软件开发出现问题时由于没有建立合理的分工、反馈和跟踪制度出现多方推诿现象;企业还应选派技术人员全程参与开发过程并建立项目进展情况表。企业参与软件开发,不仅可以培养自己的技术力量,还可以及时协调、解决出现的问题,为项目进度提供保障,还能对项目涉及的保密数据进行脱密处理,进而保证项目安全。

例如,“一号工程”在建设过程中成立了项目领导小组,国家局局长姜成康亲自主抓,副局长李克明任组长,信息中心主任高锦任副组长,各单位负责人是领导小组成员。成立了项目实施办公室,做到了分工明确,各司其责。从公开招投标到各阶段的项目建设,每个方案都经过了专家会议的若干次讨论,每一阶段国家局都召开了专门的会议进行部署。李克明副局长亲自参与布置各个阶段的工作,协调各方关系,为项目建设提供了保障。

(4)做好软件测试工作,进一步提高软件产品质量

从技术角度看,各种信息系统开发的最终目的就是得到高质量的软件产品。企业为保证软件产品质量和可靠性,必须做好软件测试工作。通过制定软件测试计划,做好测试准备工作;组建测试团队,包括测试项目负责人、测试分析员、测试设计员、测试程序员、测试员、测试系统管理员、配置管理员;选择合适的测试方法,静态测试或者动态测试,白盒测试或者黑盒测试,重点要进行可靠性及安全性测试;选择测试工具,如Parasoft、Compuware、Xunit等白盒测试工具,LoadRunner、WinRunner、AstraQuicktest等黑盒测试工具;重点做好测试中Bug和需求变更的跟踪和管理,做好Bug分类、缺陷记录、版本控制等工作。

(5)严格做好软件验收工作

软件项目的验收非常重要。企业在接到验收申请后,要认真审查软件系统的运行、文档资料、培训工作等现状,对于符合验收条件的项目,要严格按照验收标准和流程来验收。验收的主要依据是软件需求规格说明书。验收程序分技术测试和文档检查。技术测试由专家组负责。文档检查主要检查招投标书、合同、用户使用报告、信息安全测评报告、系统使用手册等。验收测试范围包括功能项测试、业务流程测试、容错测试、安全性测试、性能测试、易用性测试、适应性测试、文档测试等。

(6)做好商业秘密、核心技术等知识产权保护工作

企业在软件外包开发中,要做好知识产权保护工作。首先,要和接包方签订严格的保密协议,要求他们指定专人负责对核心技术的使用控制;其次,企业要通过技术分析及数据过滤提供尽可能少的核心机密;第三,尽量在发包方本地进行后期的数据装入,以减少商业秘密泄漏的可能。

对于产生的其他知识产权,根据我国《计算机软件保护条例》的规定:“接受他人委托开发的软件,其着作权的归属由委托人与受托人签订书面合同约定;无书面合同或者合同未作明确约定的,其着作权由受托人享有。”对此,企业要与接包方签订书面合同,明确以下3点归属问题:(1)软件作为一个整体的知识产权归属;(2)软件中的代码归属及重用性约束等具体规定;(3)因知识产权归属的法律适用及发生侵权纠纷的具体解决方式,包括责任的承担、损失的追偿等。

3结语

软件外包对于企业来说,可以提高开发效率、降低成本。充分做好以上几项工作,才能减少外包风险,保证软件产品质量,为企业带来更好的经济和社会效益。同时,企业还要针对软件项目特点,运用适合自身的项目管理模式来加强软件外包项目管理,尤其要规范项目实施过程,才能迅速适应业务需求的变化,提高软件系统的运行效率,提升企业的核心竞争力。

[1]袁博.“一号工程”奏完第一乐章[J].中国烟草,2006,(09):23-25.

陈国卫,魏汝祥,吴琴.军用软件外包探讨[J].装备制造技术,2008,(09):14-15.

梁洁.浅谈软件测试工具的选择与使用[J].中国传媒科技,2008,(11):59-60.

2012年暑假在天津**信息系统开发有限公司工作,负责餐饮管理软件测试,完成项目经理布置的测试任务,同时自己学习使用了自动化测试软件,测试后要撰写测试文档。这是我第一次在正规的软件公司工作,有机遇也有挑战,每一天我都会认真的对待。由于每个客户都需要定制产品,所以我就要负责新开发的功能的测试工作,基本采用黑盒测试方法,测试出bug要写到测试文档上,等待开发人员修改后,再次进行相应的验证测试,这其实就是软件开发的瀑布模型。通过做这项工作,认识到了软件测试在整个软件开发的过程中具有重要的作用,它是在交付客户使用前的最后一步,起到产品把关的作用。虽然在这家公司仅工作了1个月,但还是学到了很多的东西,公司每个人都很有激情,大家都很认真的完成着自己的工作,有时还会主动加班,我也是。每周3次的早上例会,大家轮流主持,我也赶上主持了一回,开始有点紧张,讲一会儿就放开了。老总很是和蔼可亲,给我说了公司的发展历程,讲解了公司软件总体开发思路。一个月很快就过去了,我的这次实习也圆满的结束了。

接下来休整了1个多月,又开始寻找第二家公司实习。2012年10月底有幸在一个程序员的qq群里,看到了群主“***”的招聘启事,因为我本身主要做php开发的,而且这家公司是做php电子商务软件的。还有以前在网上也看到过公司老板(也就是“***”)的采访视频,心中很崇拜他,这家公司就是从他1个人做起来的。心中窃喜,这是一个很好的机会啊,于是我马上与他取得了联系。第二天面试顺利的通过了,我可以在这工作了,当时非常高兴,终于可以做php了。这家公司开发电子商务网站程序,提供给客户的针对b-c,c-c模式的商城程序,系统采用php+mysql开发,而且框架结构都是自己研发的。这家公司也已经走过了3年的历程,公司产品日趋成熟,目前主要是给客户做定制开发。

我是和其他几个一同来的,开始一位老员工负责给我们做技术培训。包括开发环境安装,mvc开发模式介绍,公司产品介绍等等。随后他给我们布置了一个作业,采用mvc开发模式,smarty模板引擎,adodb数据库连接引擎,做一个小的论坛程序。接到任务后,我思考了一会儿,马上着手开发了。虽然在开发过程中也遇到了一些问题,但过了3天后,我还是按时的完成了。

到了软件公司,才能感觉到在学校所学到的知识是非常有限的。公司都有着严格的软件开发管理流程,从开发工具,到代码格式,要完全符合公司的编程标准才行,项目组的每个人做出的东西就像是一个人编出的东西一样。老板就是这样,一点一点打拼出来的,从一个人发展到目前为止的30人,确实非常不容易,很崇拜他,觉得那也是我的方向。我也非常希望能和他一样,有一家属于自己的软件公司。

一晃在这家公司做了3个月,快到年了。最后一天,全公司大扫除,结束后老板召集大家开年会。他总结了一下2012年公司的成绩,同时也提出了2012年暴露出的一些问题,我感觉很对,一个公司如果要想得到持续发展,必须得有严格的规章制度才行,俗话说:无规矩不成方圆。最后对实现2012年公司的目标提出了具体的要求。这样在2012年2月12日,我在第二家公司的实习工作也圆满结束了。

到这两家公司的实习工作,对我有很多启迪,以下是我的一些总结:

1、客户至上,必须靠实际行动说话,每个编程人员在开发客户定制时,要时时刻刻为客户着想,不要总是想偷懒,高质量完成客户定制的功能,做到bug少,效率高,只有客户非常满意了,公司才能提高品牌优势。

2、软件需求要做仔细,前期安排专人与客户进行沟通,共同制定需求文档。

3、要完善公司制度,做到用制度管人,比如:上班迟到问题等,无规矩不成方圆,确实是对的。

4、公司每个人要讲求大局,不要为了个人小的利益,丧失公司大的利益。

5、要实行完善的员工奖励机制,充分调动大家工作的积极性。

6、重要的事情开会,其他事情通过网络通信就可以了。

7、公司领导要经常倾听员工内心的想法,多交流,不要总是自己发言。

THE END
1.用户体验至上:9款软件界面设计工具分享软件设计工具即时设计——可实时在线编辑的专业设计工具 https://ad.js.design/online/ui/?source=csdn&plan=xy805即时设计作为一款专业的在线合作UI设计软件,可以实现视觉效果、互动效果、体验效果的一站式成型,为您的目标用户创造流畅的体验。 轻松绘制原型:借助即时设计社区设计资源和原型模板,开始敏捷高效的工作。与产品经理一https://blog.csdn.net/2301_79599164/article/details/140926262
2.十大必备界面设计工具,让你的设计更出彩!Gui Design Studio是一款界面设计工具,适用于界面原型设计员和界面原型开发员使用。它可以帮助用户快速将产品构思文档化,并创建各种原型。该软件支持所有基于Windows平台下的软件,可以快速绘制个性化屏幕、窗口及控件。 除了基本的界面设计功能外,Gui Design Studio还拥有多种高级功能。例如,在画基于web形态的原型时,大多数https://app.zol.com.cn/jiqiao/69907.html
3.用户界面设计原则用户界面是负责管理与用户之间的交互,向用户显示数据,从用户处获得数据,解释由用户操作所引发的事件,并帮助用户查看任务的进度。 (一)软件产品界面设计原则 1.设计原则 (1)用户原则。人机界面设计首先要确立用户类型。划分类型可以从不同的角度,视实际情况而定。确定类型后要针对其特点预测他们对不同界面的反应。这https://www.51cto.com/article/266392.html
4.101种最热门的EdTech工具界面·财经号如果你从事教育工作,你会知道有大量的应用程序app、服务、产品和工具被创建,来服务教育中的多种功能。 教学工具、家长教师沟通app、排课软件、家教网站、复习博客(revision blogs)、特殊的教育信息需求/1对1教学需求、专业发展资格证书等。 然而,有太多的公司在为教育开发新产品,这可能很难跟上——尤其是教师必须做https://m.jiemian.com/article/4838337.html
5.超火的设计神器!大概是东半球最详尽的FramerX深度评测Framer X 是第一款拥有内置设计资源商店的设计软件,不仅可以下载公开的组件,还可以管理和同步团队内部的组件,想象空间非常大。 二、布局(Layout) 1. Frames Frames 是最基础的布局工具,是一种可以包含界面和设计元素的容器,目前 Framer X 和 Figma 都采用了这种方式。Frame 是一个通用的容器,同时也扮演了 Artboardhttps://www.uisdc.com/design-artifact-framer-x-depth-evaluation
6.win10好用吗?深度评测告诉你答案!Windows 10是微软公司推出的一款广受欢迎的操作系统。它集合了Windows 7的经典界面和Windows 8的现代化设计,并加入了许多创新性的功能,如Cortana语音助手、Edge浏览器等。本文将从系统性能、界面设计、功能特性等方面对Windows 10进行深度评测,看看它是否值得升级和使用。 https://chongzhuang.163987.com/windows10/38095.html
7.十大原型设计工具,UI界面设计原型设计软件排行榜2024年原型设计工具十大品牌最新发布,原型设计工具排行榜前十名品牌有Sketch、Figma、Axure RP、Adobe XD、摹客、墨刀、莫高设计、Pixso、Proto.io、即时设计。原型设计工具10大品牌排行榜由品牌研究部门收集整理大数据分析、研究得出,帮助你了解原型设计工具哪个牌子好。https://www.maigoo.com/maigoo/9593yxsjgj_index.html
8.6个软件UI界面图绘图软件推荐,为设计师提供最佳创作工具对于 UI 设计师来说,一款好的 UI 界面图绘图软件必不可少。好的创作工具会贯穿整个项目,成倍提升工作效率。好好好,我舅宠你们吧!今天 6 个软件 UI 界面绘图软件推荐大盘点来报道!它们分别是国产绘图软件即时设计,国外创作工具Sketch、Whimsical、AdobeIllustrator、PS、Justinmind,一定要看到最后哦! https://js.design/special/article/software-ui-interface-drawing-software.html
9.常用的软件设计开发工具有哪些?软件设计工具是指专门用于支持软件设计过程的应用程序或工具,它可以帮助软件开发人员在构造可行软件设计方案时减轻工作负担,并帮助他们提高软件质量。主要的设计工具类型包括建模工具,原型设计工具,图形设计工具,框架设计工具,模式设计工具,组件设计工具,文档设计工具和图形用户界面(GUI)设计工具等。 http://www.apppark.cn/mobile/news_t_42514.html
10.常用生物软件(windows)全面介绍Array Designer 2.00 DNA微矩阵(microarray)软件,批量设计DNA和寡核苷酸引物工具 Beacon Designer 1.01 PCR定量分析分子信标(Molecular beacon )设计软件 NetPrimer 于WEB界面的引物设计程序,1.8M,包括JAVA程序和帮助文件,解压后,可在本地直接使用,不须再连到原始网站使用。 https://www.antpedia.com/html/06/n-2300229.html
11.十六种CAD.CAE.CAM软件介绍但用来构建线框图更为方便,曲线工具可以建立出更为复杂和自由的三维模型;实体工具完全整合基于约束的特征建模和显示几何建模的特性,因此可以自由使用各种特征实体、线框架构等功能;自由曲面工具是架构在融合了实体建模及曲面建模技术基础之上的超强设计工具,能设计出如工业造型设计产品的复杂曲面外形,这个工具也是UG软件中https://www.douban.com/note/272765210/
12.在线设计协作软件,Web/app界面设计工具,免费云端字体MasterGo 是一款专业智能的 UI/UX 设计工具和原型播放,支持专业矢量编辑,智能辅助功能,团队在线协作,设计实时交付,一站式完成高保真产品设计。https://mastergo.com/design
13.MasterGoMasterGo 是一款能替代 Sketch、Figma、AdobeXD 甚至是 PS 的国产免费 UI / UX 矢量设计工具!它提供了产品界面设计、交互原型制作、网页/APP开发设计等功能,且支持团队协作。软件简单易上手,并能搭建“设计系统”,实现设计组件一键复用、一处修改全局同步等功能…… 推荐:Eagle 设计素材收集整理神器 「Sketch / PShttps://www.iplaysoft.com/mastergo.html
14.可视化设计工具可视化工具软件合集数据大屏工具PowerUI Designer(界面设计工具) PowerUI Designer是一款界面可视化开发工具,上海勇进软件研发出品。提供丰富的界面控件和界面控件外观主题,可通过拖拽快速完成界面的设计和搭建工作。目前绝大多数界面拼接模式都是采用自绘、贴图、编写大量代码的方式,对开发人员的要求过高,界面缺乏美感,种种因素成为目前开发的难点。PowerUIhttps://www.uipower.com/news/visualDesignTools.html
15.共有13款界面原型设计工具开源软件菰☆淚共有13款界面原型设计工具开源软件软件过滤:排序:收录时间|浏览数界面原型图绘制工具PencilPencil 是一款开源的原型图绘制工具,手绘风格的,就像自己在纸上画的那样。Pencil 还可以用来绘制各种架构图和流程图,同时还提供 Firefox 的插件(点击这里安装)。更多Pencil信https://www.cnblogs.com/xly1208/p/3464666.html
16.SkinBuilder软件界面(皮肤)设计工具(DUIBuilder)皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程 皮肤控件 skin++ skincrafter SkinFeature IrisSkin 我共享的都是本人实际验证过的精品,有文档,破解后的库文件,皮肤设计工具使用教程, 1 软件界面 每个软件都要有自己的软件界面,对于软件开发来说,软件界面不一定是最重要的,但是也是相当重要的。一款软件要是可https://www.iteye.com/resource/lovehong123-4041377
17.评测介绍(附下载地址及安装教程)系统工具软件教程不想承认也得承认,中华地区内无论使用者本身还是字体,整体质素并不及邻国日本。这除了源于三地设计教育多年来的流弊外,字体厂商一直没能够提供质素高、又可以完全满足设计要求的字体产品有关,既欠缺理论也欠缺实践工具下,难免有今天的结果。 然而思源黑体推出后,设计师手上便拥有好用、可靠的设计工具。像在网站设计https://www.jb51.net/softjc/194348.html
18.设计师常用的9款界面设计工具,你都用过哪些?无论你设计的重点是放在用户体验设计上还是用户界面设计上,你都需要一款高效的界面计工具来帮助你完成设计项目。基于设计的界面功能不同,适合的UI界面设计工具也会有所不同。本篇文章汇总了市面上9款热门的界面设计软件,每一款界面计工具都有各自的优缺点,赶紧来看哪一款才是你的UI界面设计工具最佳选择吧。 https://pixso.cn/designskills/jiemianshejigongjv/
19.XD软件XD软件-UI界面设计软件 Adobe XD 2022 Win/Mac 中文/英文破解版下载 Adobe XD 是一款设计精美且功能强大的界面设计软件。通过软件的重叠筛选功能,可以帮助用户完成各种元素https://vfxzy.com/445.html?order=views
20.Sketch101.6破解版最佳Mac原型UI界面产品设计工具产品设计矢量绘图设计软件Mac图形和设计 Sketch 101.6 破解版支持最新的macOS 15 Sequoia系统。针对macOSSequoia设计了全新的界面,Sketch推出了更适合新macOS设计语言的UI设计。仍然是您熟悉和喜爱的Sketch,但是重新考虑了每个细节-从全高的侧边栏到更新的Inspector,以及整个全新的sketch图标。 最大变化是工具栏,为了为Bighttps://www.macapp.so/sketch3/