软件测试培训总结范文

时间:2023-03-15 21:37:41

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

软件测试培训总结

篇1

该书充分考虑了国内大多数院校办学条件不足,实验教学经费有限,无法全方位引进商用软件测试工具,无法开展软件测试实验室建设的实际情况,对国内外主流的开源软件测试工具进行全面分析、研究和优选,并经过北京工业大学软件学院5轮实践教学的检验,来设计该书的实验教学重点和实践能力要求。该书的实验内容之广,涉及的软件测试知识之多,以及开源软件测试工具介绍之全面,无论是对于教师进行实验指导,还是培训机构进行实战训练或者学生进行自学自练,都是不可多得的实验教材。

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

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

篇2

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

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)17-0226-03

Abstract: Modeling software testing can greatly improve the quality and efficiency of software testing, and CMMI and other popular models, there is no detailed description of the process for software testing, software testing is no level of maturity of the evaluation and measurement, There is a lack of software testing process improvement goals and guidance. Based on this situation, this article Test Maturity Model(TMM) has been proposed by Dr. Burnstein formal description given maturity level structure TMM model elaborated five test level of maturity goals and sub-goals,, TMM and implementation methods are described, as well as the author summarizes and Reflection on the TMM model.

Key words: software testing; Test Maturity Model(TMM); modeling framework; maturity level structure

1 背景

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

2 TMM模型框架简介

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

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

由图1可以得出,若要达到某成熟度等级,所必须实现的成熟度目标,即软件测试的改进目标。而成熟度子目标的定义更为具体,定义了该等级的范围、界限和需要完成的事项。通过活动和任务来实现子目标,任务和活动涉及实施和组织调整问题。活动和任务则定义了为了软件组织达到某一等级,进行软件测试改进的行动计划。三组人员各司其职,完成相关任务与活动,达到成熟度子目标[3]。

3 TMM的等级结构

TMM将测试的成熟度分为5个等级,每一级别都是一个测试过程,都有自己的过程域,软件组织要想达到更高的级别,就必须先满足前一个级别的过程域。同时也必须完成所有的被定义的目标。这些目标的定义,需要通过活动、任务和责任进行标记,在进行过程中,需要根据相关人员的特殊需求来不断调整[1]。如图2所示:

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

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

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

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

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

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

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

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

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

② 获取用户需求

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

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

建立软件测试组织\&① 选择和培训相关人员成立测试小组

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

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

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

② 明确具体的培训内容,例如:测试方法、测试标准、测试技术与工具、审查与评审过程等\&将软件测试集成到软件生命周期中\&① 将软件测试计划阶段划分为和生命周期各阶段相关联的各个子阶段

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

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

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

③ 定义和配置测试相关项\&

管理和测量级\&

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

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

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

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

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

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

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

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

优化级\&

应用过程数据预防缺陷\&① 成立预防缺陷相关小组

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

③ 缺陷预防组的相关成员与其他组的成员相互配合制定缺陷预防计划,防止已被识别的缺陷再次产生\&

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

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

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

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

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

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

4 TMM实施

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

1)准备活动

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

2)实施评估

评估过程中,评估小组成员通过和被评估人员进行沟通,获取相关的评估信息,通过查询相关文档与调查表进行信息补充。为保证信息的准确性与客观性,可将信息记入问题表。评估人员根据记录信息,划分软件组织的TMM等级。

3)分析评估结果

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

4)活动计划

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

5 结束语

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

参考文献:

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

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

篇3

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

中图分类号: TP311.1 文献标识码:A 文章编号:1009-3044(2013)24-5462-02

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

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

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

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

2 专业建设内容

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

2)课程体系与岗位及岗位群紧密对接。加强对软件测试企业的岗位调研,紧密跟踪市场对本专业人才结构、规模和质量的需求变化,及时将本专业领域的新知识、新方法、新技术和新思想融入专业人才培养方案,对现有课程体系进行持续改进和优化整合。加大理论实践一体化课程、任务引领型课程在专业学习领域课程中的比重;根据课程特点,整合教学内容,构建“公共学习领域”、“专业学习领域”和“拓展学习领域”三大模块;进一步优化顶岗实习课程的设计,完善相关管理制度和实施办法;加强职业素质课程的针对性与应用性,加强所学知识与生活的联系,提高为专业服务的能力[2]。

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

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

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

3 专业建设思路

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

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

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

4 思考与总结

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

参考文献:

[1] 甘肃新闻网[EB/OL].http://.

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

篇4

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

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

【中图分类号】G64 【文献标识码】A 【文章编号】2095-3089(2015)09-0229-01

一、引言

随着软件产业的迅猛发展,软件的复杂性也日益增加,导致对软件的质量提出了更高的要求,这也使得软件测试工程师成为每个软件企业都不可或缺的技术人才。“软件测试”就是一门培养软件测试工程师的专业课[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.

篇5

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

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

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

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

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

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

1.1 基于CMMI的管理过程改进

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

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

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

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

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

1.3 软件测试外包人员角色

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

软件技术负责人:提供软件测试需要的代码、程序和文档,并负责相关解释。

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

分包方代表:负责参加软件测试外包合同和验收外包合同的评审,组织测试外包活动中的相关评审。

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

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

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

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

2.1 签订软件测试外包合同

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

2.2 进入准则

本活动的进入准则包括:

(1)软件测试外包项目输入已经明确,需要测试的代码、软件、文档保持一致,测试输入通过相关评审并已入库。

(2)相关人员已经过选择供方、洽谈协议的有关技能的培训。

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

2.2.1 输入

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

2.2.2 活动步骤及要求

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

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

(2)建立并评审软件测试外包合同。a)所有由外部提供软件测试产品必须同供方签订软件测试外包合同或其等效文件(以下均简称合同)。软件合同负责人负责起草合同。b)软件合同负责人需要和供方确定,定期检查供方进展情况的监控计划,将监控计划或等效条款作为合同的一部分。监控计划需要明确里程碑监控、联合评审的时机、供方进度安排等。c)在供方协议执行前或做任何更改之前,项目软件技术负责人按照软件评审规程要求评审软件测试外包合同。d)客户有要求时,应邀请客户或客户代表参与对合同的评审。e)软件技术负责人与分承制方仔细审查合同的每个条款,确保合同没有错误和隐患,由组织领导或授权代表签订合同。

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)供方提供的软件测试产品。

(3)软件测试外包活动中形成相关管理类记录文件。

2.4.3 活动步骤及要求

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

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

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

2.4.4 输出

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

2.4.5 完成准则

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

3 总结

基于对CMMI模型的研究,本文提出了一种供方协议管理过程域在软件测试外包领域的具体的实施方案,解决了“怎么做”的问题。本文的软件测试外包活动三部分组成,分别是签订软件测试外包合同、软件测试外包活动的执行与管理、验收软件测试外包活动。简述了这三个活动的具体步骤,保证每个步骤都有相关证据遗留,将软件工程落到实处,对提高组织的软件产品质量和软件工程化水平将发挥重要作用。

参考文献

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

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

[3]CMMI Product Team.CMMI for Development,Version 1.2.Carnegie Mellon University Software Engineering Institute,August 2006.

篇6

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

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)03-0670-03

1 概述

软件测试技术是高职软件技术专业的一门必修的专业核心课程。该课程是针对软件测试员/程序员岗位的任职要求所设置的具有综合性质的课程,主要任务是通过对软件测试基础理论、技术方法、流程管理和使用自动化工具实施项目测试的学习,使学生了解完整的软件测试的工作过程,能对完整的项目进行测试的实施工作,从而实现与测试技能要求的无缝对接。但是笔者通过几年的教学发现,很多同学学完这门课程后只是了解了软件测试方面的相关知识,根本就不能够综合运用这些知识进行实际项目的测试工作。笔者通过分析总结认为最主要的原因是我们教学的过程中没有采用工程的思想,使得学生不能有效地把这些知识碎片整合到一起,当然就不能谈不上实际应用能力。

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

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

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

高职院校软件专业培养出来的人才普遍只是掌握了相关的知识,而不能有效的利用这些知识进行实践应用。为了解决这个问题,各个院校的软件技术专业都一直在尝试探索更好的人才培养方案[4],主要的专业课程也在进行各种各样的教学改革[5]。因此,几年来,“实践教学”、“案例教学”、“情景教学法”等等教学模式进行了进一步的应用,但是在这些传统的教学模式下,还是存在一些问题。软件测试技术课程也是如此,存在的问题主要有以下几个方面:

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

(2) 项目教学虚拟化。教学过程中,案例教学法得到了普遍的应用。以软件测试技术课程为例,包括一些具有软件测试精品课程的院校,无非都是采用了比如三角形测试、NextDate案例测试、飞机票订票系统等作为教学案例,虽然使学生对相关知识和技术有了更深入地认识,但是这些项目大多都是虚拟项目,这些虚拟项目主要存在两方面的弊端:一是功能过于单一,内容陈旧,只能起到说明相关测试技术的作用,却与实际应用脱节,缺乏实战性,使得学生在真正面对一个综合项目的时候却感觉无从下手。二是由于每个项目功能单一,不能把一个完整的项目贯穿于整个课程的教学,通过这些虚拟项目,不利于培养学生形成从测试计划、测试执行、测试用例设计到测试报告的整个测试过程的工程思想,也不利于发掘学生自身的潜能。

(3) 知识内容缺乏系统化。教学过程中,授课教师只关注学生知识点的掌握,而忽略了知

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

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

在CDIO模式指导下,我院软件技术专业课程体系围绕软件产品开发为主线,以每位同学都要参与几个项目开发为目的进行课程安排。在整个课程体系中,将CDIO项目按规模和范围划分为三级,一级为包含软件专业主要核心课程和能力要求的项目。我们选取了与企业合作开发的实际案例:洗衣管理系统和校外实训系统;二级为包含一组相关核心课程、能力要求的项目。主要是阶段实训和综合项目实训项目;三级为单门课程内为增强该门课程能力与理解而设的项目,其中三级项目的设立与否及形式由各门课程大纲根据需要确定。

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

3.1 教学目标和内容

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

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

3.2 教学组织

在CDIO模式下,为了使学生由接受者转变为主动参与者和积极探索者,在发挥教师主导作用的同时,充分发挥学生的主体作用。在教学组织方面,我们采用行动导向的教学模式,以小组模式为基础组织教学。在具体教学过程中,我们对学生进行分组,让每个学生充当企业中的真实角色,以一个职业人的身份,在真实的工作环境中,模拟软件企业工作模式,每位同学承担工作岗位相应的责任和任务[6]。课堂教学也不再采用“教师演示讲解、学生模仿练习”的模式,每一次课堂教学,教师先演示项目,提出任务需求,进行必要的知识讲解,然后教师为学生发放项目任务书,再由组长带领小组成员分析项目任务,探讨实施方案,撰写任务计划,完成项目任务,并提交相关文档。在整个任务完成过程中,授课教师不断和学生交流,对于学生在完全任务过程中存在的问题,指导学生解决。这样,不仅能够调用学生的主观能动性,引导学生思考问题,解决问题,并在解决问题的过程中研究新的实现方法,而且突破了传统的以学校和课堂为中心的封闭式教学组织形式,将实际生产与学习真正融合为一体,在掌握业务知识、培养技能的同时,培养敬业精神、团队意识和职业道德等综合素质,使师生在职业岗位中学习,在学习环境中工作。

3.3 教学手段

在教学手段应用上,充分利用现代教育技术,采取密切的产学结合方式,聘请企业兼职教师进行实践指导,并充分利用网络平台和网络教学资源。授课教师在课堂上通过多媒体教学的方式讲解重点难点问题,相关的项目任务探讨和知识扩展通过网络化平台进行。对于网络化平台,我们主要采用两种方式:一是建立课程QQ群,为学生提供一个资料共享和课程讨论和交流的平台,二是要求学生访问中国测试网,通过论坛和专业测试人员和其他测试学习者进行沟通交流。在网络教学资源方面,要求每一位同学使用高等职业教育软件教学资源库网站,访问网站的课程资源和培训资源,其中软件测试的课程资源包括:学习指南、授课录像、实训指导、课程案例、参考和素材资源等方面。通过这样的方式,能够解决课堂教学课时的限制,使得课程的教学从课堂延伸到课后,对学生可持续学习的能力具有很大的促进作用。此外,利用与江苏微软技术中心的合作优势,邀请他们在期末来校进行项目实训指导。

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).

篇7

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

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

Acceptance testing

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

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

是由测试人员来实施的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

负载测试(Load testing),通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征。例如,响应时间、事务处理速率和其他与时间相关的方面。

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

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

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

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

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

执行阶段

1)时间安排 单元测试已经完成后就可以开始执行集成测试了

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

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

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

5)输出 集成测试报告

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

二、选择题

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

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

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

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

D . 验收测试工件齐全。

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

A .项目经理

B .SQA 负责人

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

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

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

目标 3: 将软件质量保证工作及结果通知给相关组别和个人。

目标 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 怎么做好文档测试

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

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

内容是否齐全,正确

篇8

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

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

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

为了将枯燥、抽象的教学内容形象化、实例化,案例教学对于保证软件工程课程授课效果至关重要。案例教学与传统的讲授式教学存在较大不同,传统的讲授式教学主要是教员向学生传授知识,沟通的渠道是单向的,而案例教学不仅有教员与学生之间的沟通,还有学生之间的沟通,沟通的渠道是多向的。同时,讲授教学侧重理论,并通过演绎推理来传授知识,案例教学则侧重启发式教学过程,引导学生主动参与到课堂教学中,更注重实践与理论的结合。因此,探索软件工程类课程的案例式教学方法,总结、提炼、归纳、设计相关的教学案例,构建一个贯穿始终、设计合理、资源丰富的软件开发全过程案例库十分必要。

(一)案例的选取和设计

在案例教学中案例的选取和设计是案例教学的关键。好的教学案例应该来源于实际工程项目,同时在维度、粒度和内容上精心设计,既要相互衔接,体现生命周期全过程的要求,又要大小适中,适合单个教学模块的教学需求。从实际工程项目中精心选取、提炼、设计开发涵盖软件分析、设计、测试、项目管理等全生命周期的教学案例库,可为软件工程系列课程的案例教学提供有效的支撑条件,对课堂教学效果的提升起到极大的促进作用。

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

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

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

(二)案例库规范化设计

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

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

案例库规范化设计基本元素中的“案例类型”可分为工程类案例、管理类案例、支持类案例等。工程类案例包括不同项目不同阶段的工程类开发案例,如客户需求规格说明书、软件需求规格说明书、概要设计说明书、详细设计说明书、软件代码、软件测试计划和测试报告。管理类案例包括项目策划、项目监控、风险管理、需求管理等。支持类案例包括配置管理、质量保证、测量分析等。根据案例的规模及适用情况,可将案例分为:基本案例、模块案例、系统案例。基本案例覆盖一个知识点,简单、清晰地通过一个实例展现知识点的具体应用,适合于基础理论知识传授阶段;模块案例覆盖多个相关联的知识点,通过知识点的综合应用将知识串起来,适合综合理论知识的应用阶段;系统案例覆盖的是一个独立的理论体系,通过完整具体的实例将理论应用于实际操作,适合实践教学阶段。

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

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

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

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

案例教学法从实际案例出发,分析其中存在的问题,探索问题产生的根源和解决问题的过程与方法,用案例将理论和实践联系在一起,并逐步上升到理论,用理论来概括、归纳、指导一类问题的解决方法。同时,以鲜活生动的实例吸引学员,提高学员学习的兴趣,使他们从案例中吸取成功经验和失败教训,加深对理论的理解。在实践教学中,我们以“做中学”为指导,以实际案例项目的生命周期为主线,通过搭建的实践平台和设计的实践项目,使学员在解决具体问题的过程中加深对理论知识的理解、技术方法的灵活运用,提高自身的实战素质能力。基于案例的情景体验教学通过借助来源于实际工程的典型案例,将学生置身于特定的工程项目情景之中,给予他们恰当的引导,为他们提供了一个广阔的思维空间和贴近实战的学习环境。

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

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

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

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

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

软件工程学科课程理论与实践联系紧密,实践教学的有效实施对提高课程整体教学效果具有重要意义。然而,大部分学生系统设计能力较弱,加之课堂教学时间有限,课程内容比较抽象,为了帮助学生更好地掌握所学知识,有效提高其工程实践能力,在现实教学中急需加强学生动手实践环节的时间投入和条件建设。

传统实践教学通常要求学生全程自主完成程序开发并提交相应实践报告。这种“从零开始”的实践教学模式受到学生编程能力、实践学时等因素的制约,难以取得良好教学效果。同时,学生缺乏大型项目的工程实践经验,如果仅以小规模程序为对象开展实践教学,也会严重制约其对软件工程思想的理解和掌握。为此,我们构建了基于OpenFrame框架的开放式教学实践平台,该平台采用当今主流的面向对象技术和框架进行开发,既实现了跟系统结构紧密相关的核心公共模块,又支持学生根据个人兴趣,自主、灵活添加符合接口规范的功能应用模块,从而完成整体系统的开发与设计,有效支持学生根据小组任务分工快速开发上层应用功能模块,协同完成整体系统的设计、开发与集成。该开放式教学实践平台将教师课堂授课与学生情景体验有机结合,使得抽象内容形象化、具体化,同时既能让学生了解到框架技术、敏捷软件开发等面向对象新技术,又能培养学生基于公共体系结构进行团队化工程开发的能力。

通过搭建满足教学需求的实践平台,设计合理有效的实验项目,构建“做中学”的环境,使学员利用有限的学习时间,在实践过程中快速加深对知识的理解,提高自身的素质能力,不断积累实战经验,培养专业自信,提高学习兴趣和实践动手能力。我们鼓励学员在实践中发现问题、分析问题并解决问题,注重学员创新意识和综合素质的培养,将被动的学习转化为主动的参与、实践,引导学员更深刻地体会和理解软件工程全生命周期各阶段的任务、技术和方法。

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

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

五、结语

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

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

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

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

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

篇9

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

    1 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    如“一号工程”作为耗时两年半精心打造的信息化项目,验收时非常严格规范。验收委员会由中国工程院院士孙家广、沈昌祥等13名专家组成。中软国际的验收资料齐全完备,在《项目验收总结报告》中详细描述其建设过程,涵盖了从方案论证、软件开发到项目实施与服务、合同完成情况等方面的工作。中烟信息技术公司随即构建了运行维护体系,设立了客户服务、技术支持等部门,在完成日常维护的同时,以电话支持和现场服务等方式为行业基层提供服务或解决操作上出现的问题。

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

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

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

    3 结语

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

    参考文献

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

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

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

篇10

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

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

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

接着我们就开始熟悉公司产品了,从最基本的用户登录注册开始,看到公司的源代码,真实感受到商业产品的代码是多么的复杂,需要考虑的事情很多,很细。由于公司人手不足,我们开始做了一些dedecms模板嵌套工作,是用dedecms做公司产品的帮助网站,和其他几个人花了一个多星期终于完成了第一项工作。此后我主要做客户的定制工作,帮助老员工做点小东西。同时接触了很多的客户,只有亲身经历了,才能感觉到客户对于公司的依赖性。希望公司能给他更多的帮助,我也是竭尽所能帮助客户解决每一个问题。

通过不断的学习,我对公司的产品结构有了深入的了解,比如:缓存机制,静态化处理,数据库结构等等,一般客户提出的增加功能,我都可以独自完成了。在工作过程中,同时也自学了ajax,jquery相关知识。期末考试结束后,同学们都相继离开了,而我还在工作,其实每天都不累。在公司的这段时间也认识了几个好朋友,相互了解了许多的事情。感觉公司有几个老员工技术很强,问他们的问题,几下就搞通了,真是很佩服。

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

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

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

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

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

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

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

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

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

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