HI,欢迎来到好期刊网,发表咨询:400-888-9411 订阅咨询:400-888-1571证券代码(211862)

软件测试项目总结集锦9篇

时间:2023-02-03 16:58:47

软件测试项目总结

软件测试项目总结范文1

关键词:软件测试;认知误区;嵌入式;单元测试流程

1 软件测试简述

软件测试是在软件投入商用前,对软件需求分析报告、设计规格说明书和编码的最终复查,是软件质量保证的关键方法,软件测试并不等于程序测试。它贯穿于软件定义和开发的整个过程,因此,软件需求分析、软件概要设计、软件详细设计和程序编码等各阶段所得到的文档,包括需求规格说明书、概要设计说明书、详细设计说明书,以及源代码都是软件测试的测试对象。随着软件规模的不断扩大,以及软件设计复杂程度不断的提高,软件开发中出现失误或缺陷的概率越来越大。随着市场对软件质量重要性的认知程序的提高,因此软件测试在软件项目实施过程中的重要性尤为突出。软件测试将会成为一个具有很大发展前景的行业,市场将需要更多具有丰富测试技术和先进管理经验的测试技术员和项目经理。

2 软件开发项目测试的误区

软件测试从1990年左右进入中国,目前国内大的测评中心、大型企业已经完全掌握了软件测试的测试策略和测试方法。小企业普遍存在测试人员不懂什么是单元测试,怎样进行单元测试,很少能看懂代码的细节。而开发人员很少能够提供完整的详细设计报告、需求报告。导致单元测试,以拼凑测试报告为目的。

认知误区一:软件测试是软件开发的最后一道步骤,工程师们一般认为,软件实际项目要经过下面六个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件。因而,认为软件测试只是编码后的一个孤立的阶段,这就是不了解软件测试流程的认知偏差。软件测试是一个系列的活动过程,是一个开放的体系,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。从而,软件测试应当贯穿于软件项目的整个生命周期,并不是软件开发后最后一道步骤。认知误区二:软件商用后如果发现质量问题,就武断认为是软件测试人员的工作失误。这种认识很狭隘,很是打击软件测试人员的工作积极性。软件测试只能确认软件存在错误,不能保证软件没有错误。因为从根本上讲,软件测试不可能发现全部错误,软件后的错误可能来自软件项目中的各个过程。认知误区三:软件测试对测试人员技术要求不高,任何人都可以做。很多工程师认为软件测试就是安装并运行程序,按按键盘的重复性工作。随着软件测试技术的不断改进和完善,新测试方法、新流程、新工具都在不断被开发出来。这就需要软件测试工程师掌握和学习很多专业测试新理念和新技能。认知误区四:只有编写程序的高手才是软件专家,而软件测试没有前途。由于我国软件行业整体研发能力比较低,软件开发过程不规范。不少软件项目的开发都还停留在“累加堆叠“阶段。项目开发依靠个别程序员决定,他们一人负责总体设计和代码编写,给人的印象是程序员是真正的牛人,完成了所有的软件项目开发工作。但在微软等世界知名软件企业里,软件测试人员的待遇和数量与一般程序员没有多少差异,优秀测试人员的待遇甚至比普通程序员要高的多。

3 嵌入式软件单元测试流程

单元测试是指对软件中的最小可测试单元进行检查和验证。单元是规格说明书中的最小单元,包括函数、子程序、程序。单元测试关注独立的函数功能,是测试过程中最低级别的测试活动。需要开发一个或多个测试用例执行单元测试。把代码问题缩小范围在开发阶段锁定Bug是单元测试的主旨要求,以下将介绍一种容易操作的嵌入式单元测试实战流程。

第一阶段,制定测试记录表,记录测试过程,和测试情况。测试记录表包含:源文件名,子函数名,用例标号,用例名称,用例个数,用例通过个数,语句覆盖率,分支覆盖率,MC/DC覆盖率,测试结果,问题描述,测试人员,测试时间。针对第一阶段的测试结果,此时需要大家分析出问题的代码,各抒己见,总结问题,给出解决方法。

第二阶段,解决部分测试用例failed问题,找出阻止生成用例的共性。常见问题汇总:局部变量未初始化,调用函数未声明,局部变量直接赋值,结构体嵌套、结构体指针、声明问题、声明位置问题,函数指针,大循环、死循环,绝对地址,指针变量,C语言程序中带有goto语句。解决办法:局部变量声明后,需要赋初值再使用。调用函数未声明,该问题发生在隔离测试阶段,属于代码书写不规范问题。解决方法:自定义的函数都需要在头文件中做统一声明。局部变量直接赋初值:该问题发生在测试用例无法生成阶段,属于代码书写不规范问题。解决方法,结构体局部变量,指针变量需要先声明后赋初值。结构体嵌套、结构体指针、声明问题、声明位置问题:该问题也属于代码书写不规范问题。解决方法:根据MISRA代码书写规范,结构体需要放在头文件中统一声明。大循环、死循环:单元测试需要有程序结束的出口。解决方法:把大循环改为小循环,注释掉死循环(if(1)、for(; ;),while(1))。绝对地址:单元测试不连接真实的硬件设备。遇到寄存器等绝对地址时,需要对寄存器做变量处理。指针变量:需要声明一个同类的数组,然后把数组的首地址,赋给指针变量。函数指针:需要虚构一个函数实体,取函数地地址赋给函数指针,完成映射。C语言程序中带有goto语句:需要改变程序结构,增加判断语句,去除所有的goto语句,以便确保C语言程序的稳定性。

测试第三阶段:基本圈复杂度高于MISRA阀值要求的函数,先考虑把复杂函数改为几个小函数。改不了的由开发人员写声明以及具体原因,再按照路径分支来设计测试用例。汇总测试结果,提交测试问题报告单,并提交行业标准测试报告。

4 结束语

文章简述了软件测试的基本概念,澄清了软件测试工程实践中的几个误区,依据单元测试实践的具体案例,介绍了一种高效、容易操作的嵌入式单元测试的流程。

参考文献

[1]胡丹,杜新华.基于目标机的嵌入式软件单元测试[J].电子测量技术,2006(2).

[2]赵正海,王宁.跟踪雷达“指示引导”功能软件测试方法研究[J].现代电子技术,2013(36).

[3]于园园.软件测试技术与测试管理研究[J].江苏科技信息,2016(7).

[4]王琨.嵌入式计算机软件测试关键技术探讨[J].科技创新与应用,2016(7).

[5]张金环,田洪涛.浅析设备软件测试与质量保证[J].电子工业专用备,2016,45(1).

作者简介:张军(1988-),男,陕西武功人,工学硕士,助理工程师,主要研究方向:雷达信号处理算法、数字中频收发机和嵌入式软件测试。

软件测试项目总结范文2

关键词:CMM;软件开发;软件测试

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)17-31397-02

Based on CMM Software Development and Testing

YANG Guang

(Northeastern University College of Software,Shenyang 110004,China)

Abstract:Demand for software development, including design, programming and testing, and software quality assurance testing software is the key steps have been more and more people's attention. Currently, the CMM (Capability Maturity Model, Capability Maturity Model) has become the world's most popular, most practical kind of software production process standards, received international recognition software industry has become in today's enterprise-scale software as an indispensable. In software development and testing process, the characteristics of the enterprise itself, using the CMM software development management processes, to improve software development quality and efficiency.

Key words:CMM;software development;software testing

1 引言

软件开发包括需求、设计、编程和测试,而软件测试是软件质量保证的关键步骤,已经得到人们越来越多的重视。目前,CMM (Capability Maturity Model,能力成熟度模型)已经成为国际上最流行、最实用的一种软件生产过程标准,得到了国际软件产业界的认可,成为当今企业从事规模软件生产不可缺少的一项内容。2000年,国务院的《鼓励软件产业和集成电路产业发展的若干政策》中第17条中表示,将对软件出口型企业CMM认证费用予以适当支持。如今,国内企业也越来越重视基于CMM的软件开发和测试。

2 CMM简介

20 世纪 80 年代中期,国际软件产业界对软件过程的研究十分重视,因为在采用软件工程方法克服软件危机的过程中,人们已认识到,软件过程是否完善是软件风险大小的决定因素。1986 年 11 月,美国卡内基梅隆大学的软件工程研究所( Software Engineering Institute , SEI )应美国联邦政府的要求,针对美国国防部对软件承包商的能力评价问题,研究 “ 过程成熟度框架 ”。1987 年 9 月, SEI 开发了一套软件能力成熟度框架和软件成熟度问卷,用来评估软件供应商的能力。1991 年, SEI 自己总结了成熟度框架和初版成熟度问卷的实践经验,并以此为基础推出了 “软件能力成熟度模型( Capability Maturity Model For Software , CMM ) 1.0 版 ”。1993 年, SEI 在广泛听取美国政府和各界软件专家的意见后,推出了目前世界上比较流行的通用的 CMM1.1 版。

CMM是一个用来描述软件组织的模型,用于评价软件承包能力并帮助其改善软件质量的方法。CMM是评估软件能力与成熟度的一套标准,它侧重于软件开发过程的管理和工程能力的提高与评估。CMM表现了软件组织能力成熟度的特称,确切的说,CMM是在软件流程上的能力成熟度。 CMM将软件组织抽象为能力成熟度模型。能力成熟度是软件组织解决“按时,按计划,高质量”这一问题的关键因素,而CMM的目的,就是要帮助软件组织在进度和预算范围之内生产出高质量的软件产品。

CMM标准共分五个等级(5级为最高级别),是一个动态的过程,企业可根据不同级别的要求,循序渐进,不断改进。从第一级到第五级分别为:初始级、可重复级、定义级、管理级和优化级,从低到高,软件开发生产的计划精度越来越高,每单位工程的生产周期越来越短,每单位工程的成本也越来越低。

3 基于CMM的软件开发与测试

CMM是一种管理方法,是一个软件过程改进框架,这个框架与软件生命周期无关,也与采用的技术无关。CMM目前代表着软件发展的一种思路,一种提高软件过程能力的途径。尽管它存在着某些不足。例如,成熟级别、关键过程域、公共属性和关键实践还需要在软件行业进一步深入地讨论和修订,但它确实为软件行业的发展提供了一个良好的框架,而且是浓度软件过程能力提高的有用工具。增强我国软件企业的竞争力,提高国产软件的水平是国人的共同愿望,但目前我国软件水平,尤其是软件开发能力和软件生产能力还很差。那么,如何提高我国软件的开发和生产能力,从而提高软件整体水平?软件企业实施基于CMM的软件开发与测试也许不失为一条有效的途径。

按照CMM要求将开发分为九个阶段:项目规划、小组启动、需求分析、概要设计、详细设计、编码调试、系统集成与测试、验收、项目关闭。其中软件的测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审。

下面从各个阶段主要项目活动、阶段交付文档和评审点出发,详细描述项目开发的各个阶段。

(1)项目规划

项目规划要对所要解决的问题进行总体定义,包括了解用户的要求及现实环境。计划阶段要从技术、经济和社会等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度做出估计,以制订完成开发任务的实施计划。另外,项目的相关人员提出创新性的想法,并对自己的想法进行可行性分析,研究新想法的问题范围,探索这个问题是否值得去解决,是否有大概的解决办法,并对需要的资源进行估计。

本阶段的交付文档是立项说明书,立项说明书必须提交工程委员会进行评审。如果评审不通过,项目就此结束。

(2)小组启动

在项目立项评审后,根据先前的资源估计成立项目开发小组,确立开发小组中各个角色的成员,然后对项目开发需要的软件和硬件资源进行分配,并搭建好项目开发环境。结合项目最后的期限要求以及分析CMM 历史度量库,确立项目开发的一级计划,确定以下各个开发阶段的评审点。本阶段的交付文档主要有项目计划书和小组启动说明书。项目计划书必须经过工程委员会的评审,如果评审通不过,必须参考CMM的历史度量库来修改项目计划直至通过评审。

(3)需求分析

需求分析是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把需求用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。分析阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。

基于CMM的需求分析阶段更注重项目的管理流程。首先项目组要确立在该阶段的二级计划,然后开始需求分析,明确需要开发系统必须具备的功能。并要主动与用户交流,获取需求并分析需求。制定相应的系统测试计划,在这以后的每个阶段项目组长都必须提交阶段工作报告。

CMM的需求分析阶段主要交付的文档有更新后的项目计划书、需求跟踪矩阵、需求分析说明书、系统测试计划书、项目词汇表和阶段工作报告。需求分析说明书必须提交给工程委员会评审,只有在评审通过后,才能进入下一个开发阶段。

(4)概要设计

一般软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。

基于CMM的概要设计阶段不但要为系统描述系统流程图、构建系统的可能方案、确立的系统总体方案和进行模块划分及设计。而且还有进行一些系统的集成测试计划和设计评审等工作。该阶段主要的交付文档为更新的项目计划书、更新的需求跟踪矩阵、编程规范、概要设计说明书(包含总体方案)、集成测试计划书、意见反馈单、阶段工作报告。各个模块的概要设计说明书和总体方案必须经过评审。

(5)详细设计

详细设计阶段是对概要设计的结果的细化,概要设计已经达到函数级的分解,详细设计是对分解的函数进行实现的描述。一般详细设计的首先要设计模块的程序流程、算法和数据结构,其次,要设计数据库,常用方法还是结构化程序设计方法。

基于CMM的详细设计阶段必须依次补充完善需求跟踪矩阵,并确立单元测试计划和进行评审。该阶段的交付文档为更新的项目计划书、更新的需求跟踪矩阵、详细设计说明书、单元测试计划书、意见反馈单和阶段工作报告。各个模块的详细设计必须经过评审。

(6)编码调试

软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,因此大大提高了开发的速度。

基于CMM的编码调试阶段的任务包括:①项目组制定出在本阶段的二级计划;②学习确认编程规范,再开始编码,同时必须进行同行检查和走读检视;③进行单元测试。一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。测试用例的设计应与复审工作相结合,根据设计信息选取测试数据,将增大发现上述各类错误的可能性。在确定测试用例的同时,应给出期望结果。该阶段的交付文档为更新的项目计划书、更新的需求跟踪矩阵、代码、单元测试报告、意见反馈单和问题跟踪单。所有代码必须经过工程委员会的评审,以确认是否符合编程规范要求。

(7)系统集成和测试

软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法和黑盒法。

一般测试分为:单元测试、集成测试和系统测试。单元测试阶段通常是属于开发项目组编码调试的范畴。单元测试阶段后要将系统集成成一个可运行版本。此后,就进入系统集成和测试阶段,系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能政党工作并完成所赋予的任务。该阶段主要的交付文档为集成测试报告和系统测试报告、问题跟踪单和阶段工作报告。在测试阶段完成后,必须经过内部验收的评审才可以提交进入正式的验收阶段。

(8)验收

在验收阶段,项目组主要是配合客户进行验收。首先准备好用户手册以及相关文档,并提交系统验收检查单,协助客户进行验收测试。本阶段的交付文档为验收报告,客户签署的验收报告也就是对本阶段的评审。

(9)项目关闭

本开发过程最后强调的是项目关闭阶段,这个阶段是对项目开发的总结。针对CMM 中关键过程域的实施执行情况,各个角色必须提交相应的角色总结报告。在项目组长汇总后,总结项目开发中的不足和经验,提交过程改进意见和CMM度量库。这个过程有助于项目开发组织改进自己的软件开发过程。

4 总结

CMM 是国际公认的 “ 事实 ” 标准,是中国软件业走向国际市场的通行证。CMM的目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。因此在软件的开发和测试的过程中,针对企业自身的特点,采用CMM软件开发管理流程,能够提高软件开发的质量和效率。

参考文献:

[1]何新责.软件能力成熟度模型[M].北京:清华大学出版社,2000.

[2]刘莉,傅英亮,陶强.基于CMM的软件开发和维护过程的研究[J].信息技术与信息化,2006,(05).

软件测试项目总结范文3

1软件测试过程中的质量管理

软件测试贯穿于软件开发流程的各个角落,能够让工作人员及时在软件工程阶段中发现漏洞所在,确保最终交付的产品无论是功能还是性能,都能得到客户对品质的需求,软件测试需要在软件开发各个阶段进行,工作人员在进行软件测试的时候需要作出相应的软件测试文档。软件测试中质量管理尤为重要,产品需要满足验收交付要求,需要根据软件开发实际情况,从不同的角度进行度量,软件测试最主要的问题是软件质量问题,在保证质量的基础上从不同角度度量产品最终质量。有的人在软件测试时可以意识到重要性,但是却没有办法清晰地找到提升质量的有效方式,随着软件测试研究的深入,人们开始建立起软件质量度量模型。通过对模型的分析,得知软件质量从以下几方面衡量:(1)开发出来的软件是否符合用户的需求,软件整体结构是否良好,软件是否容易读取,修改是否容易;(2)软件系统有没有友好用户界面,用户在使用该软件的时候是否方便,需不需要进行其他操作;(3)软件生存周期内各个阶段文档是否齐全,存储是否得当,所有文档是否被规范配置管理,工作人员进行软件测试需要根据客户需求,以此作为参考,从对方的角度去看待产品,想象客户会如何使用产品,使用的时候可能会遇到什么问题。软件测试质量管理方面还需要进行软件质量保证,分阶段的对开发的软件进行科学评审,根据评审结果制定相应计划,将软件分成几个阶段,根据不同阶段呈现出来的特点制定评审要求。随后,工作人员在审查软件开发过程时,需要为每一个过程制定规范,不管是文档还是编程都要达到相应的规范需求,要求软件测试人员做好质量评估报告,内容丰富详细,评估软件测试的整个过程,对存在不足的地方提出有效改进建议。某测试工作人员在进行软件测试的时候,为了确保质量管理工作到位,特别完成了软件测试环境的科学搭建,由于不同的软件对测试环境有着不同角度的需求,如C/S及B/S架构相关的软件产品,测试人员会有不同操作系统,如Windows系列、Unix、Iinux甚至苹果OS等,这些测试环境都是必须的。对于一些嵌入式软件,如手机软件,如果测试人员想测试一下有关功能模块的耗电情况,手机待机时间等,可能需要搭建相应的电流测试环境。

2软件测试过程中的风险应对分析

2.1风险识别与风险量化

对软件进行项目风险管理,可以在最短时间内得到项目目标,项目风险管理以潜在风险最小化作为目标,软件测试项目风险管理中包含软件风险识别、软件风险量化、软件风险应对计划制定以及软件风险控制。其中,软件风险识别需要工作人员在软件测试项目风险管理开始之前进行,并在整个项目执行中不断完成,软件风险识别在项目整个生命周期以内属于连续过程。软件风险识别包含了风险来源确定、风险产生条件辨别,测试人员要详细表述风险特征,确定这些风险是否会影响到软件测试项目的正常运行,对于软件测试项目风险管理来说,风险识别不是一次就能完成的,而是应该在项目的全过程进行。

2.2风险应对计划与风险监控

针对风险量化结果,为了降低软件测试项目的负面效应,测试人员会制定相应的解决措施和技术手段,做好风险管理计划,完成风险认知,为风险监控提供技术基础。人们可以使用多种方式作为风险控制方法,利用核对表对项目进行定期评估与净值分析,风险监控的输出包含对风险的错误纠正和软件测试项目管理计划更新,软件测试项目中发现风险以后对其加以分析,确定相对重要性与影响程度,为来自内部与外部的风险提供标识,对每一种风险进行科学评估,计算出风险发生的可能性与最终结果,对风险进行分类,为风险处理提供可操作信息。在经典风险管理过程中,主要会使用到Boehm、CRM、Leavitt、Boehm等多种模型,使用这种方式很有可能造成人员不足或者成本不够的问题,测试人员在开始进行软件项目开发的时候就要对潜在风险进行总结,将所有的风险形成表格形式,并在软件测试项目生命周期内进行会议讨论,更新表格。应当对可能出现的恶劣后果因素进行准确评估,对于当前最紧急的风险进行决定和处理,制定控制风险的基本应对措施,评测和保证风险策略开展的有效性。

3总结

总而言之,人们从第三方软件测试角度进行软件测试时,不仅要进行完善的质量管理,还会进行项目风险管理,对风险进行评估与排序,确定不同风险给软件带来的影响,探究风险发生概率,进一步保证软件的质量,降低产品维护费用,提高用户满意程度,降低软件责任风险,提高经济效益。

参考文献

[1]徐莉.基于项目管理角度的软件测试流程及管理[J].网络安全技术与应用,2018(03):38-39.

软件测试项目总结范文4

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

1 引言

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

参考文献

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

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

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

软件测试项目总结范文5

与一般项目相比,软件开发项目存在一些独有的特点,而这些特点的存在使得要想真正做好软件开发项目的管理工作是十分困难的,其在管理方法上与传统项目管理存在着一定的差别,一些通用的项目管理理论或者项目管理方法并不适用于软件开发项目的管理。在这种情况下,对软件开发项目管理进行相应的实践探究,就显得非常必要。

关键词:

软件开发项目管理;实践

进入21世纪后,伴随着计算机技术和网络技术的飞速发展,各种智能终端设备逐渐兴起,也使得人们对于软件的需求达到了一个前所未有的高度,推动了我国软件产业的发展。而在软件开发过程中,需要切实做好项目管理工作,提升管理水平,才能够促进我国软件产业的进一步发展壮大。

一、软件开发与项目管理

简单来讲,软件开发就是依照客户的需求,构建软件系统或者系统中的软件部分,其是一项包括了需求捕捉、需求分析、设计、实现和测试的系统工程,需要借助某种本程序设计语言实现。软件开发的主要流程包括:需求分析、总体设计、细部设计、编码、单元测试、综合测试、运行以及维护。项目管理则是指在一定的约束条件下,为了实现某个特定的目标,依照项目自身的内在逻辑规律所进行的系统管理活动。相对于软件开发而言,项目管理需要遵循几个基本的原则,一是依照分阶段的生命周期计划,进行严格管理;二是做好相应的阶段性评审;三是重视产品控制;四是应用现代程序设计技术;五是确保开发人员的专业素质较高,同时对人数进行控制;六是必须能够对结构进行清晰地审查;七是必须承认软件工程实践持续改进的必要性[1]。

二、基于软件开发的项目管理实践

以智能手机系统为平台,针对手机软件开发的项目管理实践进行简要分析和讨论。

2.1需求分析需求分析是软件开发的基础与前提,能够获取和记录系统需求,确保客户与项目团队在系统需求变更上的一致性,避免软件开发过程中不必要的弯路。需求分析法包括了用户问卷调查、研讨会以及原型展示等,需要安排专人做好相应的记录工作,并及时对其进行总结和归纳,做好应对策略。在该项目中,软件需要满足的需求包括:适用于主流手机操作平台,充分考虑不同硬件配置以及操作系统版本的兼容性;可以跨平台运行,同时不需要占用过多的系统资源;确保数据连接的速率以及操作的流畅性等。

2.2设计编码系统设计包括了总体设计和细部设计两个不同的阶段,其中,总体设计应该大致规划出软件的功能模块,做好相应的功能分区,并对其进行初步的设计分析,细部设计则需要给出每一个功能模块的控制流程、算法以及数据结构等,确保每一个模块都有不同的层次。对于一些难度较大、涉及面较广的模块,可以交给一些经验丰富、心细缜密的技术人员完成,并做好模块的测试与修改,保证其稳定可靠,尽可能降低风险与成本[2]。设计完成后,需要进行编码工作,采用代码版本管理工具SVN,以确保各个子系统的功能都能够得到最大限度的发挥,实现系统之间的功能互补,从而降低软件开发的风险和难度,提高软件过程的跟踪率。

2.3测试运行软件测试并非单纯的某个环节,而是贯穿于整个软件开发项目中,制定出详细全面的测试计划,并对测试用例进行用心编写。软件中的每一个子模块都应该由编程人员之外的技术人员进行反复测试,同时对测试过程中出现的问题进行记录,提出相应的修改意见,由相应的编程人员进行修改。在对测试用例进行编写时,需要对测试目标、测试环境、测试步骤、预期结果等进行记录,形成具有代表性的数据信息。在测试完成后,需要首先在小范围内,对软件的子模块进行试运行,确认无误后再对软件整体进行试运行,结合运行反馈结果,评估软件的可靠性,采取相应的完善措施。试运行成功后,需要编写相应的用户手册,制作视频说明,帮助用户了解和使用软件,同时标注联系方式,方便用户进行反馈。

2.4后期管理在系统安装试用一段时间,具备相应的验收条件后,需要进行验收准备工作,对之前的工作进行总结,列出工作成果和相应的文档,审查相关技术文档中的内容和信息。应该对系统当前的完成状况进行明确,对于尚未完成的部分,应该采取有效策略去完成,或者设置相应的回避措施,确保客户在验收时不会提出这些未实现的需求。在交付使用后,需要做好软件维护工作,结合需求变化或者硬件环境变化对程序进行修改,确保其具备良好的实用性和适用性[3]。

三、结语

综上所述,软件开发项目管理与一般的项目管理存在着很大的差别,需要相关技术人员结合软件开发的具体流程,做好全过程管理,保证管理效果,在完成预定功能目标的基础上,提升软件的可靠性与安全性,确保软件的有效应用。

参考文献:

[1]刘宇柯.基于CMMI的软件开发项目管理研究[D].广东工业大学,2015.

[2]鲁成祥,吕培强,庞新莹.基于Android平台软件开发的软件项目管理实践研究[J].软件导刊,2012,11(8):10-13.

软件测试项目总结范文6

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

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

一、教学现状

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

二、教学改革探讨

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.

软件测试项目总结范文7

关键词:计算机;软件;工程项目;管理;分析

1.计算机软件和工程项目管理的基本概念

1.1计算机软件的基本概念

计算机软件(也称软件、软体)是指计算机系统中的程序、数据及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需要的阐明性资料。程序必须装入机器内部才能工作,文档一般是给人看的,不一定装入机器。软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据,为了方便用户,且为了提高计算机系统的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。计算机软件总体分为系统软件和应用软件两大类。系统软件各类操作系统(如windows、Linux、UNIX),还包括操作系统的补丁程序以及硬件驱动程序;应用软件可以细分的种类就更多了,如工具软件、游戏软件、管理软件等都属于应用类软件。

1.2工程项目管理的基本概念

工程项目管理是指从事工程项目管理的企业受业主委托,按照合同的约定,代业主对工程项目的实施进行全过程或若干阶段的管理和服务。工程项目管理企业不直接与该工程项目的总承包企业或勘察、设计、供货、施工等企业签订合同,但可以按合同约定,协助业主与工程项目的总承包企业或勘察、设计、供货、施工等企业签订合同,并受业主的委托监督合同的履行。工程项目管理的具体方式及服务内容、权限、取费和责任等,由业主与工程项目管理企业在合同中约定。

2.大型软件项目工程管理总体流程分析

2.1计算机软件项目搜寻

项目搜寻是项目的立项的基础,项目立项阶段的主要任务包括对市场信息的收集、用户需求的跟踪、对潜在项目进行分析和筛选。其中最重要的一个阶段就是对市场信息的搜集,因为市场上产品的价格以及走向、产品的供需、客户对产品的需求等都是不断变动的,所以我们一定要重视对市场信息的搜集,并对对收集的信息作出分析以及时的了解市场的动态,并根据这些分析结果做出大概的项目规划,为下一步项目的立项打好基础。

2.2计算机软件项目立项

项目的立项标志着项目进入到了实施阶段,项目立项阶段的主要任务就是确定立项的理由、提出立项建议、提供合适的资金以及资源,使项目成为正式项目。项目确定的理由就是这个项目是否符合市场需求?项目中存在的风险有多大是否会造成巨大的损失?以及是否能给企业带来利润等等;提出立项的建议就是对之前的立项中存在的问题及时指出并作出修改,可以使项目变得更加完善避免在以后项目实施的时候造成更大的损失;寻找合适的资金和资源,其实寻找合适资金就是找有意向做这个项目或是赞同这个项目的公司等提供项目资金上的支持以推进项目的实施,而寻找合适的资源就是在市场找到质量较高且价钱也较为实惠的供货商。

2.3计算机软件项目售前

项目售前阶段从项目立项开始到项目合同的签订结束,这一阶段的主要工作有:首先要与客户进行沟通制定与客户的交流计划以防谈判中因为意见不相同而出现摩擦;在谈判中要特别重视这几个方面,详细了解客户的背景资料,了解客户启动项目的缘由、客户对项目的需求以及客户对项目的需求,接下来就是编制方案建议书和准备合同蓝本。

2.4计算机软件合同生成

合同生成阶段的主要任务有:项目方案的评估与确定,技术合同、商务合同的商定、评估与签署。合同生成的阶段是一个不能出任何马虎的阶段,因为这一阶段是明确双方责任义务的时候,万一中间有些责任划定不清或是没有考虑到一旦出现问题就容易导致双方为此发生矛盾甚至走上司法程序。所以在合同生成阶段首先要对项目做好各方面的评估并对以后可能产生的问题尽早列举出来,然后再制定合同时一定要细致把之前列举的问题都写入合同中并明确好责任,最后双方在仔细阅读好合同之后签订合同。

2.5计算机软件合同执行

合同的执行是大型软件项目管理流程的重点,合同执行可分为:软件的开发、测试执行、内部验收、项目验收、系统维护等五个工作过程,在不同的阶段有不同的工作重点。首先是在软件的开发阶段,第一要制定好项目开发的计划,大型项目软件计划使用一个计划来协调其他的计划,以指导项目的执行和控制的可操作文件;第二点就是确定开发过程根据项目的实际情况,建立一个稳定、可控的软件开发过程模型,并按照该过程对软件进行开发;第三点也是最后一点要加强过程监控,过程控制主要包括过程管理、变更控制与配置管理。接下来是测试执行阶段,项目测试分为集成测试与系统测试,主要进行功能检测、健壮性测试、性能效率测试、用户界面测试、安全性测试、安装和反安装测试等。然后是内部验收,内部验收主要有三个步骤文档的准备(内部验收计划、项目开发总结报告、产品清单、财务预算报告等)、内部验收测试、内部评审。下个环节是项目验收这一步骤是要用户对工作产品得到确认,以确定产品是否符合客户的要求。最后一步就是项目的维护,软件系统的维护分为两大类:一类是纠错型维护即发现并纠正在之前测试中未发现的潜在的错误,另一类是完善型维护即满足客户提出的新的需求。

2.6大型软件管理项目的里程碑

项目的考核和评审是大型软件项目管理流程控制的基础,在文章前面所列举的五个流程主要的进入条件和相应的工作结果都是里程碑是否达标的重要标志,所以我们一定要认真执行大型软件项目管理的每一个阶段的要求。

结语:通过以上的分析我们了解到了什么是计算机软件工程项目管理,以及怎么进行大型的计算机软件项目工程管理,虽然它是一个很复杂的过程,但只要我们认真的执行好每一步就一定能完成好计算机软件项目管理,真正的满足客户的需求。

参考文献:

[1]林茂光,王建宇,吴忠平.工程项目管理中的网络计划技术应用[J].国外建材科技.2007(06)

软件测试项目总结范文8

【关键词】软件测试 技术 管理

随着经济社会的不断进步和信息技术产业的持续发展,我国的软件业逐步成为了信息技术产业的灵魂与核心。然而与同属于亚洲的印度相比,我国在全球软件业的整体地位还远远落后,印度目前位列全世界的前五个软件方面供应大国之一,在计算机的软件出口方面地位仅在美国之后、位列世界第二。在促使印度的软件业得以快速成长和发展的原因当中,注重软件的质量是印度软件业能够攻取成功的一个关键性因素,印度的软件企业在世界上所获得的质量认证也是全球最多的。所以,提升软件的质量能够大大地推动我国的软件业的快速发展。而软件的测试是把好软件的质量关口的一个重要的环节,属于软件的开发周期当中占据较大比重的一项内容。然而在开发时间延续中,对软件的缺陷修复的代价会十倍速地增长。所以,加强软件的测试工作研究,对于提升软件产品项目的质量,推动我国软件行业和企业持续健康发展具有十分重要的意义和作用。本文简要介绍了软件测试的目的和分类,深入阐述了促进软件测试技术自动化的措施,研究提出了加强软件测试管理的对策和建议,希望对于推进软件测试的研究和实践工作能够起到一定的帮助和借鉴作用。

1 软件测试概述

软件测试指的是软件产品在投放市场前,对于软件产品所进行的需求的分析,设计的规格和编码等内容的复审,是确保软件产品质量的关键性步骤。

1.1 软件测试的具体目的

软件测试的具体目的决定着如何来组织进行测试工作。通常情况下软件测试工作的目的主要有:一是为发现程序的错误从而进行测试,二是测试用以证明软件的程序存在错误,并非证明该程序不存在错误;三是好测试其功能在于可以发现以前没有发现的一些错误等等。因此,必须关注测试的具体目的,进行测试用例的选择时要遵循经济性原则。

1.2 软件测试分类

软件测试通常可以分为黑盒式测试与白盒式测试两种类型。黑盒式测试就是将软件系统当作黑盒子而不去考虑相关程序内在的逻辑,按照需求规格的说明书要求对程序功能进行检查,看能否达到功能说明的要求。白盒式测试就是允许实施测试的人员根据程序内部的逻辑结构和相关信息进行测试用例的设计与选择,测试程序逻辑的路径。按照前后的过程分类,测试步骤可分成:单元测试,组装(集成)测试,确认测试及系统测试等。

2 促进软件测试技术自动化的措施

2.1 软件传统测试方法的主要问题

一是重复性较强。在功能增加及缺陷修复时均可能修改程序的代码,对改变过的代码进行测试就要反复地执行测试用例,用手工进行重复操作会增加出错率;二是测试的周期过长,手工重复测试将会使软件的测试周期延长;三是测试内容不够全面,修改代码之后,手工进行测试会忽略对关联内容的相应测试;四是不能测试不可视的组件,服务器端重要的程序代码均处于逻辑层,而采取手工进行测试的方法无法判断逻辑层相应内容。

2.2 软件测试自动化技术措施

一是生成测试个案,采用相应的编程语言编制短小程序用以形成测试的输入,以使自动化的测试和结果的核对程序更易于控制与操作。二是对测试进行写控制,对单元的测试及集成的测试会采取单机运行的方式,然而对系统的测试及回归式测试,则可会用到多台设备在网络环境下运行,以节省时间。 三是对测试的结果和标准化输出进行对比,输出的数据量情况和数据的格式对于对比速度有着直接的影响,应当编制特殊软件将测试的结果和标准化输出进行对比。四是利用对比软件,分类、分析记录及通报不符合的测试工作结果。五是产生测试总体统计报表,以增强过程管理工作的质量,节省数据统计时间。

3 加强软件测试管理的对策和建议

3.1 强化软件测试的过程管理

测试需求阶段中,就明确软件测试的对象与范围,测试负责与项目组成员应充分沟通,对各种资料进行收集整理,对各阶段测试工作需求进行分析,把测试内容细分成测试的需求,并保证其测试的可行性。测试计划阶段中,主要的任务就是按照测试需求来制定测试的计划,计划内容应包括:测试的环境、进度、用例及风险的分析等等。测试执行的阶段中,应完成测试的实施与过程的监控。在缺陷跟踪的阶段中,主要是及时报告软件的缺陷,跟踪修改的进展情况。

3.2 强化对软件测试突出问题的管理

一是防范思维定势的问题。克服测试人员由于太过熟悉测试的软件,从而建立起惯性的思维,造成测试的次数越是多,其发现缺陷机会反而越少的情况;防范方法是:测试人员不断编制测试新程序及测试的用例,从而发现更多缺陷;还可用新人进行软件的测试。二是防范定位效应的问题。测试人员的定位效应就是对于已测试功能不能进行认真的测试,由于疏于防范,可能会使缺陷一起存在;解决此问题方法为完整地实施测试用例,或者组织测试的人员进行交叉式的测试。

3.3 强化测试团队的管理

严格员工考核,测试负责人定期组织项目组成员谈话,定期评定做过什么和怎样去做,做好测试人员的绩效考核。加大培训力度,系统学习相关领域的基础和业务知识,强化日常培训,深入学习特定的项目及技术,全面提升测试团队的整体素质和能力。针对测试人员流动带来的影响,建立相应的健全培训工作机制,促进新任员工可以尽快地适应测试工作。

4 结语

综上所述,软件测试工作是软件在投放市场使用前,对于软件产品编码的实现,设计的规格及需求的分析等内容所进行的最后一次审查,是软件项目开发的一个重要的环节,对于软件质量发挥着基础保障的作用。因此,必须高度重视和加强软件测试工作,不断总结技术经验,持续完善管理措施和办法,以提升软件产品的质量、推动软件研发企业持续健康发展。

参考文献

[1]杨亚南,孙忠林,李艳.软件自动化测试浅谈[J].科技信息,2007(24).

[2]肖新凤.Web应用程序性能测试技术的研究及应用[J].科技信息,2010(27).

[3]张军威.浅谈如何以软件测试推动军工软件工程化[J].硅谷,2011(14).

软件测试项目总结范文9

[关键词]软件测试 课程体系 教学改革

[作者简介]李静(1969- ),女,陕西兴平人,河北北方学院信息工程学院,副教授,硕士,研究方向为教学设计、操作系统与软件测试;赵志升(1965- ),女,河北张北人,河北北方学院信息工程学院,教授,硕士,研究方向为教学设计、软件工程、数据挖掘。(河北 张家口 075000)

[中图分类号]G642.3 [文献标识码]A [文章编号]1004-3985(2014)02-0135-02

软件测试技术近年来发展迅速,已经成为与软件开发齐头并进的专业技术。软件测试工程师承担产品功能、性能、可靠性、易用性等全方位测试,保证产品质量,满足用户需求,保证企业信誉,是当前IT业界需求量骤升的热门人才。目前我国软件产业在产品功能和性能测试领域仍然存在着严重不足,软件测试的广度和深度已成为影响企业生存与发展的核心问题。培养大量的具备专业素养和高层次技能的测试人才,更好地推进我国测试行业和测试技术的长足发展,是高等院校必须担负的职责。

一、国内软件测试专业教育现状

自2000年软件测试技术在我国兴起至今十余年,软件测试人才随着软件行业的迅猛发展呈现出供不应求的态势。专业的软件测试机构、测试网站及测试技术培训机构等迅速发展起来。目前,国内许多高校已经逐步设有本科阶段软件测试方向的专业。2011年11月,由教育部主办的“2011年高等学校软件测试课程教学论坛”在上海同济大学召开,对国内软件测试人才的培养及测试领域的全面发展起到积极推动的作用。

1.社会培训模式与现状。当前国内业界一些知名网站主要承担起测试人才的培养职责,如51testing、达内科技、北大青鸟等,为测试行业输送了大批动手能力较强的测试人才。针对性很强的短期教育模式是社会培训的特色。培训机构通常按照助理级、初级、中级和高级测试人员安排培训内容。诸如北大青鸟等规模较大的培训机构引进欧美的混合教学模式,采用“理论知识+分模块项目实践+全真项目实训+职业素质训练”的模式,形成一个科学并且实用的培训体系。培训机构通常设立自己专用的教学平台,通过网络远程授课与集中化分期分班授课方式,在半年到一年的较短时期,培训出上岗快、操作熟练、针对性强的应用人才,而且很多学员直接通过测试工程师面试,并在后期工作中累积了较深厚的测试经验,成为测试领域的支撑力量。培训课程主要内容涵盖操作系统管理、网络应用与Web编程、数据库管理等专业课程,实训环节应用主流的测试工具,如Winrunner,Loadrunner,Rational Robot等。着重于实用性的项目实践和开发是培训机构与高校教育的最大区别。参加这些培训班已成为目前大学生岗前培训的主要途径。

2.高校专业教育现状。软件测试技术要得到广泛应用和深入发展,不能仅依靠社会办学,高校系统化的专业教学体系能够为学生奠定一个更加扎实和科学的专业基础,并对测试技术本身的学科化发展起到不可替代的作用。近三年来,软件测试技术作为专业课程逐渐在多所高校开设。目前,多数高校将“软件测试技术”作为一门独立课程设置,交叉课程主要为“软件工程”。当前一些高校开始申报软件测试专业,但是软件测试技术的学科化发展目前仍受到诸多因素的影响。主要是:(1)缺乏丰富的理论支撑。软件测试目前仍是发展中的计算机技术,专业论著少,适合于高校的教学材料非常有限,并且普遍存在知识结构不合理,教学内容不规范统一,论点少并缺乏依据,实验指导教材匮乏等问题。另外作为一门独立学科,与其他学科的交叉与相辅是理论体系的必要部分,测试技术与计算机领域诸多技术关联,相互结合教学是当前教改面临的问题。(2)目前通用性测试平台仍未完善发展与普及,在高校中缺乏结合教学实验内容的通用的实践平台,实验环境单薄。多数高校停留在泛泛讲授几个热门的测试工具的阶段,缺乏成熟、实用的测试环境来实践完整的测试项目。(3)教学模式上存在严重缺陷,专业培养过程中存在大量的不规范性和随意性。主要表现在:实践课程比例小,测试项目实例缺乏;理论课程知识结构不合理;教学理念和手段陈旧,脱离测试技术发展的实际与市场应用;不重视对学生从事软件测试职业素养的培养。尖端技术的学科化发展是高等院校的职责,建立一个科学、完整的专业教学体系是高等教育最为核心的问题。

3.当前推进测试技术应用的其他途径。除了专业公司培训和高校培养外,当前软件测试行业的发展还依赖于多种良好途径:校企合作、技术沙龙、测试专业微群、社会信息辐射等。新兴技术发展需要社会传播产生的广泛影响力来推动。以MPD(亚太软件研发团队管理)峰会、51testing等领衔的线下技术沙龙活动和巡回演讲,聚集了很多高端的测试人才,相互学习交流,积极推进软件测试行业的发展。一些较有影响的网络微群提供测试技术的交流和分享,如软件测试、敏捷测试、落地微群等,大量的测试人员和测试工程师提供测试过程管理、测试工作总结等资料,有很强的借鉴性。

软件测试行业的人才匮乏仍然是当今的重要问题。依照行业需求,软件测试人员配备应是软件开发人员的2倍,而目前我国软测人员与开发人员比例却仅在15至18之间。以高等院校专业教育为主,实现多种途径的人才培养是当前软件测试行业的当务之急。

二、高校软件测试专业课程体系建设

构建专业课程体系,需要设置好基础课与专业课、理论课与实践课、必修课与选修课的比例关系,并合理安排与协调课程相互间的分工与配合。建设科学完整的软件测试专业的课程体系是一个需要多方考证借鉴和不断探索完善的工作。

1.课程设置。软件测试是一门技术性很强的专业,对专业素养要求很高。在测试模式、测试方法上与软件开发的模式、开发平台直接相关。学生必须对操作系统、软件的逻辑结构以及物理存储过程、操作实现方法达到一定深度的了解和掌握,对于硬件的拓扑结构、物理结构要也需要尽可能多地熟知。在软件测试行业,对优秀人才的要求是拥有高敏感能力、高发散能力、高分析能力,而这些都是以扎实的理论基础为前提的。建设软件测试专业课程体系,应契合技术发展、学科发展与从业需求。经过多方考证,下表所述课程囊括的专业知识对于高层次的自动化软件测试技术的掌握必不可少。

由于计算机专业课程的关联性很强,一些专业课程可以相互结合教学。比如语言类,Shell等可以结合到UNIX/Linux操作系统课程中,HTML/XML可结合到.NET以及网络技术等课程中,PHP融入Web服务器配置等专业选修课程教学中等,避免专业内容交叉而造成的重复教学现象。在教学过程中,要将软件测试的思想广泛地渗透到所有的专业课程中。如在各类程序设计语言基础课程中引入单元测试的思想,在软件工程课程中强调软件测试的重要性,增强软件质量管理意识。当前微软、苹果、惠普等软件公司都推出完整的计算机应用与开发平台,从硬件、操作系统、集成开发环境到用户应用软件,基本上提供一条龙服务。以微软为首的测试框架开发也日趋成熟。高校需要从专业建设角度考虑,把握学科发展方向,汲取众家之长,将尖端技术和主流应用平台作为专业教学内容,在有限的学时之内统筹安排,让学生形成一个专业学习的整体思想,做到知识累积层次清晰、得到一个完整的专业知识体系。随着测试技术的快速发展,课程设置需要不断更新调整,既要考虑专业建设、学科建设,又要考虑市场需求和研发需求。合理选择、科学地纳入新知识到专业课程中,是需要不断探索和改革的无止境的工程。

2.教材选择。教材选择应当宽口径,除了主要教材之外,要为学生提供更多的辅助教材和资料,给学生自主学习的空间和时间。这方面要学习西方高等教育的模式,按照教学计划和教学内容,指导学生分期、分阶段大量阅读与课程相关联的专业资料,并汇总论点和典型实例展开讨论,开阔学生的眼界,培养学生独立思考、逻辑分析能力和探索精神。另外,教材选择应把握专业技术的最新发展,与专业领域的最新研究成果、社会培训资料等结合,及时更新教学内容。例如有经验的测试工程师撰写的技术开发、测试报告与测试总结等书籍资料,是完善和填充教材的重要知识源。

3.实验教学规划。(1)实验教学内容,应包括两部分:测试框架应用和测试项目实践。前者是指基于实验室配置的测试框架,选择针对操作系统或者客户端软件、网站等的服务性能测试案例,编写一些通用的测试脚本,在测试框架上实现完整的测试流程。后者是指选择实际的软件测试项目来组织实验教学内容。在测试项目实践中,需要提供给学生被测试的软件系统代码以及软件开发综述,包括需求分析、概要设计书、详细设计书等文档,便于学生真实地模拟实际工作中的测试流程。项目实践中,可将学生分成若干个项目组,分别设置测试经理、测试负责人、测试人员等角色,依照测试用例设计、测试任务管理、测试计划实施、测试过程监控、测试日志与测试报告管理环节,安排角色各司其职,协同完整测试项目,并对被测软件系统做出质量评审,撰写格式规范的质检报告。通过实验教学,使学生深入理解和掌握常用测试工具,如单元测试工具NUnit等应用,提升学生的项目管理经验和软件测试技能。(2)实验教材选择:实验教材选择应参考社会培训机构的项目实训资料,选择基于主流测试平台的项目实例教程,并结合测试技术的应用发展现状和高校测试环境,广泛筛选辅助资料,设置测试项目,丰富实验教材的内容。(3)实验环境配置:搭建面向高校教研的通用测试环境。当前各类测试平台及测试工具不断推出,种类繁多,但针对性较强,应用性能受到限制,缺乏可被广泛普及的通用型测试平台,导致测试过程缺乏通用性和稳定性、测试标准设定和测试价值评估无法明确等问题。建立一个通用测试环境对高校的实验教学和专业研究十分必要。通用测试环境应囊括软件测试管理平台、回归测试平台和性能测试平台功能。提供软件的文档审查、安装测试、功能性测试、易用性测试等测试项目,并能提交形式内容规范的测试报告。通用测试环境搭建需要高校结合专业研究项目实施二次开发。

三、面向从业需求的教学改革

1.注重面向市场应用的课程体系改革。为了更好地为社会培养应用型人才,高校应以企业岗位能力需求为标准,不断进行课程体系改革,构建“知识+应用+研究”的混合型课程体系结构,为学生从业后尽快适应工作岗位,担负起科技职能,并进一步从事测试技术开发与研究奠定基础。软件测试课程体系改革应基于不断发展的测试技术以及社会测试岗位的能力需求,从培养学生专业素养、测试技能、项目分析能力、探索开发能力等全面素质的高度进行必要的整合和重组,把学生应具有的知识、能力、素质结构作为课程体系改革的依据,组建模块化的课程结构。

2.注重面向从业需求的教学实践改革。面向从业需求,加强教学实践环节是高校实验教学改革的重要内容。目前很多高校与自己的合作企业签订培训合约,建立人才基地,共同开发软件和培训人才、交流人才,是教学结合实际应用的最佳模式。围绕着以企业需求为目标进行实验教学,使学生在真实的项目流程中对软件测试的完整过程与实施细节、管理机制与管理措施进行全面的了解,提高测试能力和积累测试经验,便于学生日后尽快适应实际工作,在专业技术岗位发挥人才作用。

3.注重培养学生的职业素养。高等教育为社会输送专业技术人才,不能忽视对人才职业素养的培养。在教学过程中要把专业素养、技能训练和职业素质培养有机结合起来。在学生实践与实习过程中,注重培养学生综合运用所学知识发现问题、分析问题、解决问题的能力,进而培养学生的技术应用和技术创新能力,并培养学生的团队合作精神和相互协作能力,提高将来从事测试行业的职业素养。应结合社会对软件工程师的岗位需求,设立面向毕业生的专项系列讲座,为学生提供面试技巧培训、竞争意识培训、沟通与协作技巧培训和就业指南等,是极具实效且必要的教育内容。依照国外标准,软件测试工程师应与架构师处于同一等级。从事测试行业必须具备扎实的专业基础、综合的个人能力和较高的职业素养,才能真正实现高端的自动化测试。

[参考文献]

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

[2]钱丽.以就业为导向的软件测试课程体系改革探析[J].科技信息,2012(1).

[3]顿煜卿.软件测试教学过程中的思考和实践[J].计算机光盘软件与应用,2012(14).

相关期刊