项目测试经验总结

时间:2019-05-12 16:40:54下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《项目测试经验总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《项目测试经验总结》。

第一篇:项目测试经验总结

项目测试经验总结

说明:以下项目测试经验是我在原来公司工作中的实际经验,拿出来和大家一起交流。我相信之前的项目测试工作中有不少可以改进的地方,还希望大家多多交流。

项目测试经验

——Judy Shen

本文是对我近几年测试工作经验的总结,并以简报的方式在研发中心内进行分享及交流。测试团队介绍

在介绍我们之前项目测试工作之前,需要首先介绍一下之前我所在团队的组织架构及测试人员在项目中的工作。

我们的测试团队属于质量改进中心下的测试部,它和研发团队属于两个不同的中心。测试团队有6个人,从图一可以看出来,一个人可以参与多个处于不同阶段的项目测试工作。

图一 测试团队组织架构

参与项目的测试人员以测试组的形式进入项目,测试组和需求组、开发组并列。每个测试组有一个测试组长负责项目测试工作。项目经理不直接面对测试组成员,而是通过测试组长进行任务安排、协调、沟通。测试部经理知情测试人员的项目测试工作,项目测试组的工作汇报均需要抄送给测试部经理。如图二所示:

图二 项目组织架构(旧)

上面说到的是旧的测试人员工作模式,在去年年底,为了有效利用公司测试人员资源,我们开始了测试外包的尝试。这里的测试外包模式是指,测试组不进入项目,而是由项目组将测试工作以一个项目的方式分包给测试部,由测试部根据项目组提供的信息,进行计划、执行测试,并按照项目要求提交测试成果给项目组。

这个模式还在探索中,如图三所示,测试部经理直接负责项目的测试工作,测试组的工作情况抄送给项目经理。这种模式需要进行独立核算,包括成本估算、预算、结算等。但是这种模式的整体思路还不是很成熟,从这个组织架构上大家也可以看出来,很多东西还没有理顺,所以一直都处于尝试过程中。后面提到的内容,如果没有特殊说明,都是在旧的模式下进行的。

图三 项目组织架构(测试外包方式)

我想不可否认,大家都认为测试人员应该是测试技术上的专家,但是,测试人员是否需要熟悉并擅长一定的业务呢?不管答案是什么都没有关系,但是我认为一个好的测试人员不仅是测试专家,他同时也是业务专家。有一些测试人员,因为系统的业务知识很复杂,就一头扎进去,几乎全力去学习业务知识,测试技术的学习和研究没有跟上,结果不是设计出大量冗余的测试用例,就是很多方面没考虑到,面对客户的不当请求,也没有底气说测试应该怎么做,弄得做起项目来辛苦异常,个个苦不堪言!

有着样的说法:“软件测试人员要两条腿走路,左腿是测试技术,右腿是业务知识。只有两条腿的健壮差不多,走路才稳当。”出于这种思想的考虑,在原来的测试团队,我们每个人都有两个学习、研究方向,一个是技术方向,一个是业务方向。例如:

 技术方向:

 功能自动化测试  性能测试  单元测试  测试管理  业务方向:

 物流业务  智能交通  知识管理

但这种方式在工作开展上有些困难。如果公司认为测试人员应该绝大部分时间用在项目测试工作上,那么测试团队既要研究测试技术,又要挤出时间学习业务知识,在操作上是比较困难的。在我们以前的测试团队的工作中,有一部分工作时间是用来进行部门建设的,部门建设工作中包括前面说到的技术研究、业务学习,还有就是部门搭建所需要进行的一些工作(如部门制度建设)。当时公司允许我们团队有30%的工作量投入部门建设上。将部门建设工作分开,主要是用于统计部门成本和测试成本用的。

前面说到了测试人员是以测试组身份进入项目开展测试工作的,但不是每个成员上去都从事同样的工作。在进入项目组工作时,每个测试人员所充当的角色是不同的,项目的测试角色划分为以下四种,如表一所示。在实际工作中因为测试人员数量有限,所以经常是一个人担任多个角色。

角色 职责 测试管理员

负责测试项目的管理 测试过程问题的处理与反馈 系统/性能测试组织和计划 测试过程状态报告 测试设计员 测试需求的描述

系统/性能测试用例的设计 测试工具、方法的引入 测试执行员

根据需要开发测试脚本

按照测试用例、测试脚本执行测试 项目测试工作指导 测试监督与度量员 测试度量

测试过程问题的汇总与反馈 开发产品的质量抽检与评定

表一 测试角色划分

了解了原来测试团队的分工之后,下面介绍一下测试团队的工作内容。原来的测试团队承接的工作内容包括:

 承担系统测试、用户测试、性能测试;

 进行测试技术研究及培训

其中,测试技术研究,属于提高团队工作技能的工作,在整个部门范围内进行,这里属于部门建设工作;对于项目中的测试人员有可能需要进行,如果项目采用新的测试技术或者测试工具,那么就需要项目测试组成员研究测试技术了,这部分属于项目测试工作。

培训,是指把内部研究的成果在团队内使用,在适当的时机在公司内传播。我们测试团队在2004年开展了21次内部培训,7次公司级培训。因为每个人各有研究重点,所以我们每个人都是团队内部培训的讲师。

说到测试工程师的工作内容,那么就涉及到测试工程师该做的和不该做的。当然这和公司对测试人员定位有关,这里仅指以前的组织。要说该做的,那么我们需要先明确为什么我们要测试?这是因为存在“系统错误很多、系统不是客户想要的东西、系统实现没有遵照系统需求”等这样的背景。在这样的背景下,产生了测试,但是又因为开发人员自己测试自己的东西,难免测试不全面,所以产生了测试工程师这个角色。因此,测试人员他该做的,就是测试软件产品和用户需求不一致的地方,并尽可能多的发现缺陷,能够向项目经理汇报软件质量状态。但是在实际工作中,测试人员经常主动或被动的去做了一些不该做的事情。例如说,测试人员认为自己或者测试能够保证软件的质量,以及有意识或无意识的接受了决定软件是否发布的这个权利。

为什么测试无法保证软件的质量,是因为项目的质量,需要项目组的所有成员共同努力,才能达到质量保证的目的。单纯靠测试工程师的力量,是无法实现软件质量保证的目的。

为什么测试人员不适合承担决定软件是否发布的权利,是因为软件的发布,是需要项目组各个小组负责人等相关人一起对系统现在的缺陷、质量状况进行评估后,由项目经理(或者与会者)做出是否发布的决定。在这个过程中,测试工程师可以提供测试数据、系统当前质量状态报告给与会者参考。当然,我知道这两点会有很多人不认同,但是没有关系的。我接触的同行中对两点经常有争论。但是,有一些质量大师等权威人士还是全部或部分赞同这两个观点的,如:菲利普.克劳士比曾在他的书中提到软件质量的保证需要全员努力,需要过程的控制的,而不是某个英雄可以保证软件质量的等。项目测试工作

做了背景介绍后,下面我介绍之前项目如何开展测试工作的。

因为测试过程是整个测试工作的一个纲要,所以首先得从测试过程讲起。

2.1 测试过程

测试过程,我们包括四个环节:测试计划、测试设计、测试执行、测试分析。

图四 测试过程

2.1.1 测试计划

测试计划主要是进行描述测试需求、分析制定测试计划工作。在制定测试计划时,经常有人认为测试计划是在整个项目计划制定之后才开始进行测试计划的,事实上并不是这样的。测试计划和项目计划是互相影响的。举个例子。假设项目有进行性能测试的需求,但是测试工具又需要学习,那么我们在测试计划中就需要预留这部分的时间,还有,测试用例的评审,也需要预留时间。或者,如果某部分比较复杂,可能测试需要的时间会较多,或者需要测试的次数会比较多,那么可能要求开发组先安排这个核心模块的开发,这样需要调整开发计划的顺序。所以,测试计划和项目计划是互相影响的。在测试计划环节还包括测试需求的描述,主要是确认需求是可测试的,并将需求细化为具体的可测试点,保证测试设计时可以根据测试需求编写测试用例,而避免遗漏测试点。我们的测试需求需要得到业务分析人员的评审,测试计划要得到项目经理的审批认可。对于测试计划,还需要说明的是,在具体的每个测试阶段工作计划中,我们需要定义本阶段测试需要进行的次数。每一轮测试是一个完整的测试周期,按照这里介绍的测试过程进行。通常我们是一天一轮测试,最多是两天一轮测试。通过这种方式,减少了测试和开发之间的空挡时间,即测试等开发,开发等测试。例子如图五所示:

图五 测试迭代例子 肯定会有人疑问,如果一个系统很庞大的话,怎么能在一两天内完成测试呢?是的,如果系统比较大的话,确实没法在一两天内完成所有测试点的全面测试,有可能需要一周或更长的时间,但是这样的话,就出现了测试、开发互相等待的情况了。所以,在我们制定的测试阶段计划时,需要指明本次测试的测试重点,测试范围。我可以这一轮测试进行A、B模块基本功能测试,第二轮测试进行C、D模块基本功能测试,第三轮测试,进行主要业务流程测试,第四轮测试,关注负面测试。在我之前的实践中,发现这种方法还是比较有效的。可能大家也注意到了,这个例子是另一个项目的。没错,在今天提到的移动的这个项目中我们没有按照这种策略进行测试,弄得当时我们测试小组工作很累,很被动,经常是开发说测试我们就要马上开始测试,而缺乏计划。实施这种方法后,测试的计划性就比较强,测试不用总是被打扰。

2.1.2 测试设计

测试设计,主要是根据需求、设计文档进行的测试用例设计工作。如何从需求导出测试用例并设计测试用例,是整个测试过程中很重要的一部分工作,关系到测试执行效果。但是在刚开始时,系统没有界面,所以我们只能根据系统用例搭建测试用例的初步框架,能写多少写多少。随着对系统的理解深入,加上后面也开发了系统原型,我们就可以不断完善测试用例。即使是在测试阶段,我们仍不断修改测试用例。测试用例我们分为两种,一种是内部测试用例,项目组内部使用;一种是验收测试用例,偏重于业务,供客户使用。项目组内部用的测试用例例子如图六所示:

图六 测试用例例子(项目内用)

从图中大家也可以感觉到项目组内部使用的测试用例在维护上比较不方便。因为我们的需求并没有做到很细,加上需求本身就是变化的,所以我们的测试需求经常修改,一旦测试需求新增、修改、删除时,测试用例要相应进行调整。这就造成了1)定位测试用例比较不方便,2)测试用例编号修改不方便,3)阅读、执行测试用例不方便。所以,我在2004年底开始准备在团队内自主开发一个测试用例管理系统。

2.1.3 测试执行

在测试执行阶段,主要进行测试的执行工作。如果项目有需要编写或录制测试脚本的话,那么也在这个阶段进行。测试执行结果是在原有测试用例的副本上编写实际执行结果而形成。在东南融通,它是把这个活动单独为“测试实施”环节。

2.1.4 测试分析 在测试执行结束后,我们开始对测试执行结果进行测试分析并编写测试报告。测试报告的编写上,主要的内容在于对投入的资源、测试结果、缺陷进行分析,并对整体测试情况进行总结分析。对于资源的分析,包括各个测试任务投入的人力情况、实际工作量与计划工作量的对比,并进行分析。测试结果分析,可以通过对测试需求的覆盖情况、测试用例的覆盖情况及测试用例执行结果情况进行统计,并进行分析。缺陷分析,可以通过对严重性、优先级、模块缺陷数、缺陷修复情况等方面进行统计,并分析。例如,对系统缺陷进行统计后,发现存在比较多的可用性问题,如修改操作员所属的组后,无法登录系统等。整体情况的总结可以从测试充分性、软件质量情况、测试活动情况、经验教训等方面进行总结。

测试分析中有个很重要的活动是对测试活动和测试过程进行经验教训的总结。因为测试经验教训是很重要的,所以我们团队有专人负责对每个项目测试报告中的经验教训进行汇总,目的是让后面项目测试工作可以吸取前面项目测试的经验,避免犯前面项目测试工作同样的错误。注:本测试过程对于每个阶段的测试活动、每一轮测试活动、测试团队承接的各种测试类型均适用。

也就是说,每一轮测试之前,测试组组长都需要准备测试计划,确定测试执行重点、目标、测试内容等,选取测试用例,并按照预先选取的测试用例执行测试,测试执行结束,需要进行测试汇报。

2.1.5 测试准则

在测试过程中有个很重要的内容是:测试准则。

在实际执行中,我们不难碰到以下类似情况:提交测试的系统经常在测试执行初期,就出现页面访问失败或者正常功能失效的情况;测试人员不知道提交测试的版本改了什么内容或者新增了什么功能,改了哪些缺陷,导致经常碰到开发人员说测试人员提交的某些缺陷所对应的功能不属于本版本集成内容等等。存在这些情况的很大一部分的原因是因为在项目策划阶段时,测试组未就测试准则和项目组达成一致意见,或者已经达成一致,但是并没有严格执行。我们今天要讲的测试准则,主要是针对前者,后者属于管理层面问题,不在我们的考虑范围内。

设置测试准时需要注重实用性。测试准则,通常包括测试进入、暂停、恢复、退出准则。这些测试准则的例子如表二所示:

进入准则 暂停准则 恢复准则 退出准则

含义

描述开始执行测试的时机

描述系统在什么情况下暂停全部或部分测试工作。描述系统恢复测试的必要条件。

描述测试退出的条件,有正常退出,也有非正常或意外的退出。集成测试

测试环境已经准备好; 已经完成提交测试的模块内容; 主要功能无页面点击错误; 测试所需的文档资料已经完整。测试环境被破坏; 主要功能页面点击错误。测试环境重新搭建好;

主要功能不会出现页面点击错误的情况。完成已提交内容所能完成的测试 系统测试

测试环境已经准备好; 系统基本业务流程能走通 无任何功能的页面点击错误; 测试所需的文档资料已经完整。测试环境被破坏; 系统基本业务流程不通; 任何功能的页面点击错误。测试环境重新搭建好; 系统基本业务流程可以走通; 页面点击错误问题解决。测试内容已经完成;

阻塞测试的内容(即测试暂停的产生原因)在短时间内无法解决。内部确认测试/UAT 测试环境已经准备好; 系统正常功能已正确实现; 业务流程能走通。测试环境被破坏; 系统业务流程不通; 正常功能未正确实现;

用户很容易重现的严重缺陷产生。测试环境重新搭建好; 系统业务流程能走通; 正常功能实现; 需要解决的缺陷解决。测试内容已经全部完成;

PM根据测试报告,认为系统可以满足客户的要求; PM要求修改的缺陷已经全部修复; 到了时间,系统必须发布。验收测试

测试环境已经准备好; 客户要求的功能都已经完成。业务流程可以走通。测试环境被破坏; 发现需要修改的缺陷。测试环境重新搭建好; 修改完需要修改的缺陷。

所有要求的测试用例和测试程序都已经执行,并且没有发现新的必须修改的缺陷 性能测试

测试环境已经准备好; 系统的功能正常实现; 不存在影响系统流程的缺陷。测试环境被破坏; 系统流程存在缺陷; 被测试功能存在缺陷;

程序的版本更新,存在影响系统功能实现的缺陷。测试环境重新搭建好; 解决影响性能测试的缺陷。

所有要求的测试用例和测试脚本都已执行; 完成性能分析工作。

表二 测试准则例子

恢复测试时,一般是需要把前面测试内容重新进行测试,因为会花费较大的工作量,所以测试组长在决定暂停测试时需要很慎重。

在表二显示的集成测试的退出准则中写到“完成已提交测试内容所能完成的测试”,这里的“所能完成的测试”是指,在当前版本所能进行的测试内容,如在系统刚集成时,可进行界面测试,基本模块的基本功能的测试。

上面的测试准则的例子,也不是很恰当及规范,至少缺少了数据度量部分,这里只是拿出来和大家一起交流。这部分内容我一直认为是很重要的,如果做的不好,测试组的负担会很重。

需要注意的一点是:测试准则,是在制定测试计划时沟通确定的,它需要和相关人沟通,且得到项目经理审批通过的。

测试准则是固定的,实际处理方式是灵活的。在实际测试过程中碰到同样的问题,是否继续测试,或者需要暂停测试,处理方式不是一成不变的,这是需要根据项目所处阶段来具体情况具体分析的。

下面举个例子,这个例子是经常性的一种情况。假设在测试过程中,我们发现了一个阻塞性错误(流程无法继续往下走等类似情况),是否继续进行测试呢?

 在项目初期,进行单个或多个模块的测试时:因为可以执行界面测试及熟悉系统,我们可以接受该版本,继续进行测试。这就属于已提交测试内容所能完成的测试。在项目测试初期,要求不可过于严格。

 系统测试:基本流程必须走通。如果基本业务流程(主干)不能走通,则需要根据实际情况来灵活处理。(是否暂停测试或继续测试?)如果是整个流程的初始节点失效,没有这个节点的数据,后面所有节点均无法进行,那么这种情况下就只能暂停测试。如果说是分支流程出现阻塞,那么可以考虑继续测试,然后在测试报告中说明该分支未测试。此时不暂停测试,主要是考虑重新集成一个版本的性价比,也就是是否值得重新集成。

 发布前的确认测试:一旦有阻塞性缺陷,马上停止测试。

2.2 测试实施过程

上面说的是测试过程。下面简单介绍一下我们实际的测试工作。

我们的测试组一般是在项目启动时进入项目组的。在项目立项时,项目经理会向测试部经理申请测试资源。经过评估衡量后,测试部经理会安排一个测试人员作为项目测试组长。当项目启动时,测试组长进入项目,开始了解项目用户需求,起草项目测试计划。在到了一定阶段,例如测试设计阶段,测试部经理会根据项目规模,项目在公司的重要性以及团队其他人员工作负荷情况,安排其他人进入项目组。一般来说,我们一个项目是2~3名测试人员。在项目进入维护阶段时,则是一个测试人员跟进项目。

测试组长根据项目情况及项目阶段计划,定义项目本阶段测试次数。项目经理参考测试组长提供的测试次数建议,以及项目开发的情况,和项目组各个小组负责人沟通后,定义了系统本阶段版本集成时间。在我们的项目里,有一个开发人员兼职做集成人员。在指定的版本集成时间之前的一段时间,各个开发人员将他们的程序提交配置库,由集成人员进行集成(不同语言有不同的集成方式)。集成后,集成人员会进行简单的自测,验证是否集成成功。如果集成成功,就在服务器上给该版本程序打上标签。如果集成不成功,那么返工给相应开发人员修改并重新集成,如此反复直至集成成功。集成成功后,集成人员会提交一份集成说明给测试组长。集成说明内容包括:集成版本路径、版本标签、修改内容、新增内容等。测试组长则根据预先准备好的测试计划开始测试。在开始测试时测试组长会通知项目组,告诉他们测试开始,请勿更新测试环境。测试结束后,也会通知项目组测试结束。

这里要很注意一点的是,对于数据库的更新也需要采用同样的管理,即数据库维护也是需要进行统一管理,避免出现客户环境和测试环境不一致的情况。

在正常情况下,开发组是在预定的集成日期的当天晚上集成,测试组第二天上班后开始测试。如果遇到特殊情况需要当天集成当天测试的话,我们的开发人员会等到测试组发出测试结束的通知后,才离岗。

如果在完成计划的测试次数后,系统质量仍不稳定或没有达到预期目标的话,那么测试组长将和项目经理沟通,相应增加测试次数。

关于测试用例的执行,我不知道公司现在是采用怎样的一种方式的。在我原来的团队中,测试用例的主要作用是保证系统功能的测试覆盖率,避免某些功能因为测试周期长而导致测试遗漏。但是我们也采用经验法、试探法、转换思维的方式进行测试,所以,我们一般使用测试用例执行3~4次测试。这可能和我们的测试用例设计能力有关。

在缺陷管理上,整体流程基本类似,但是在缺陷分配上,我们测试人员是直接分配给项目缺陷分配专员,缺陷分配专员一般是由业务分析员担任。缺陷分配专员对缺陷进行分析后,再进行缺陷的再分配。对于缺陷分配专员处理为不修改的缺陷,测试人员需要进行确认。如果测试人员不认可缺陷分配专员的处理意见,可以同他进行沟通,或向相关人员(如项目经理)提出自己的意见,最终以项目经理的意见为准。在系统阶段确认测试前的2~3天,测试组长会将系统未解决的缺陷清单给项目经理确认,并要求项目经理提供缺陷应对方案。缺陷应对方案在系统发布时,作为项目发布说明的附件。

我们是采用公司自主开发的缺陷管理系统进行缺陷管理的,使用excel、word进行其他测试工件的编写的。

如何搭建一个高效的测试团队

俗话说“工欲善其事,必先利其器”,要做好测试工作,首先需要建立并维护一个高效的测试团队。然而,许多小型软件企业却将测试作为产品面临发布时的一个小“插曲”,往往临时抽调几名程序员对产品的功能粗略测试一下即交付客户(甚至在进度和成本不足时首先砍掉这一块)。这种仓促完成的产品通常质量问题很多,所以我们首先应抛弃小企业惯常的思维模式,不计较一时一地之利益,立足长远,着手组建高效测试团队。

第一步:招募测试人员

在国内的软件企业中有一种普遍做法,那就是把那些刚涉足软件行业的技术新手或业绩不突出的开发人员安排去做测试工作。笔者认为这绝对是一种欠妥当的行为。事实上,对一个系统进行有效测试所需要的技能绝对不比进行软件开发所需要的技能少,测试从业者甚至可能面对许多开发人员都不会遇到的技术难题。那么,测试团队需要招募什么样的成员呢?这里,笔者总结了以下两点:

首先,测试人员要具备良好的沟通能力、自信心、外交能力、迁移能力以及怀疑精神。

其次,测试组成员应具备良好的专业技能或者技术学习能力。

当然,新招募的测试人员不可能像上面说的那么理想。关键是他们是否热爱测试这项工作,对相关的工作内容是否感兴趣以及他们的学习能力如何。

第二步:测试团队制度建设

良好的制度可以规范测试团队的工作开展,同时也便于对团队成员进行业绩考评。相反,则很有可能导致人心涣散,滋长负面风气。建设良好的测试团队制度,可以考虑以下几个方面:

 汇报制度 团队成员汇报本周工作情况及下周工作计划、遇到的问题以及需要提供的帮助,培养团队成员的汇报及计划习惯。

 工作总结制度 成员每个阶段汇报上阶段工作经验和教训,并在部门例会上交流、分享经验及教训,避免同样的问题重复出现。

 奖惩制度 对于贡献突出的成员予以奖励,对于业绩差的提出批评,有效地保持测试团队的工作热情。

 测试件审核制度 对测试件进行审核,去粗存精,鼓励测试人员使用和提出改进,保证提交到测试团队知识库的测试件的质量。

 会议制度 定期召开部门例会,讨论、解决工作中的问题,并提供部门内的学习的平台。

目前,已有不少软件企业推行给测试人员区分级别的制度,奖优罚劣。这无疑是一个好的做法,但成员业绩的具体考评办法,目前尚无可供参考的标准文件,所以笔者建议应尽量做到公正客观,以免挫伤团队成员的工作积极性。

第三步:测试团队内部的职责分工

明确测试团队内部各类测试人员的职责分工可以使测试团队内部各类测试人员能集中精力在较短的时间内完成特定岗位必需的知识储备和经验积累,同时也使得测试团队的管理更科学,真正做到“用其所长,避其所短”。

第四步:测试流程建设

我们可以通过以下步骤来建立适合本单位的测试流程:

1.测试团队负责人员根据对公司现有测试状况的了解,及个人的测试经验,起草测试流程及相关的模板;

2.通过一到两个项目的实践,记录测试流程草稿中的问题及不足之处; 3.根据实施经验,完善测试流程,得到测试流程初稿,并起草相关实施指南; 4.选择一个到多个项目,实践上述测试流程初稿及实施指南,记录实践过程中出现的问题;

5.根据上述实践工作的反馈,组织修改测试流程初稿及实施指南,并把修改后的测试流程继续应用到项目实践中去,根据反馈进一步完善成熟;

6.测试流程及其相关文件基本趋于稳定状态时,可以考虑发布测试流程(含测试流程、模板、表格、指南),并在以后的实践中不断改进和完善。第五步:团队成员能力的逐步提高

有了明确、合理的职责分工后,需要针对这些分工对团队成员进行有意识的引导,稳步提升团队成员的技能。测试团队负责人需要负起监督和促进员工能力提升的任务。监督和促进测试团队成员能力提高,主要做好如下三个方面的工作:

一是,提倡资深测试人员在测试团队内部进行经常性的培训和测试经验交流,通过该渠道帮助资历浅的测试人员大幅提升业务技能,做到新老员工之间的知识传播和继承。二是,测试团队应充分利用好测试件知识库,对于纳入到测试团队知识库的测试件应充分消化和学习,在此基础上进一步鼓励测试团队成员对这些测试件提出改进性意见。

三是,测试人员除了需要注重自身的测试技能提升,在条件许可的情况还应适度开发部门的基本知识,这样能减少与开发团队协同工作时的领域障碍。

第二篇:测试经验总结

1.测试人员和用户的联系与区别

黑盒测试人员和用户,都是站在实际应用层进行操作,因此他们对应用层的可用性、实用性非常关注。用户不懂的是软件的使用,而相对用户来说,测试人员对软件比较了解,但不熟悉业务本身。

八个字归纳:用户是用,测试是测。

用户不懂使用就需要技术支持人员去培训,而测试人员在测试初期经过开发人员和项目负责人的简单培训后,就应该通过所学的理论知识和相关的业务知识独立去了解、深入到软件的功能点中。

应该做到:由测试人员培训技术支持人员,由技术支持人员实施时给用户培训。

2.带着问题去测试

阿猪工作守则第一条:带着问题去测试

测试中会遇到很多问题,没关系,没有脑子里面的一个个问号,是不能很好的发现问题的。往往发现一些藏的很深的bug都是在测试人员一步步解决这些问号的过程中,切忌遇到问题就问,不仅因为增加不必要的与开发人员、负责人等的交流时间可能延误项目进度,而且自己对问题的印象也不会很深刻,毕竟在相对较短的测试时间内,听不如记,记不如自己去发现规律。

3.测试期间提问题和交流的时机

什么时候应该提问题?

我们都知道,作为测试人员,并不是测试期间什么时候遇到问题就要马上问,那什么时候是提问的时间?

培训

培训时,一般在讲解内容的间歇允许打断,由培训人员解答测试人员的疑惑。培训的过程其实就是一个传输新知识并答疑的时间,这个期间的提问是欢迎的,也可以增加参与性和调动积极性。所以希望大部分的问题能在这个阶段提出来。受时间、环境等条件制约,有时培训的人讲的也不一定细致和全面,这时就需要自己多想,想想这个功能是干什么的,为什么这么做,对应的业务是什么。

阿猪工作守则第二条:培训时脑子灵活转动,多想多问

以前大家可能有过参加辩论会的经历,就算没有其实和人聊天也是一个交互的过程。参加辩论会要求快速思考,然后放慢语速说出自己的观点,因为不能说错。我们在参加培训时前者相同,后者相反。脑子嘴巴都要快,说错了也没有关系,自己的想法被纠正的过程中也是加深印象和理解的过程。

计划评审

提出对于软件不理解、安排的任务不明白的地方。

测试期间

这个时期最主要的问题应该集中在影响测试流程和进度的问题,而不是说明书或其它文档上已有的内容,或者与自己负责模块无关的内容。开发人员和其他测试人员都有自己的进度安排,因此,影响测试流程和进度的问题,马上问!

不影响流程的问题,记下来统一问!

不必要的问题(说明书或其它文档上已有的内容、讲过三遍以上的问题、今晚去哪里吃饭的问题),不问!

好处:避免不必要的时间支出,不打乱自己的测试思路,一气呵成,并且使项目成本得到控制

坏处(?):脑子里、笔记本上留下一堆待解决的问号吧,浪费脑细胞和公司的笔和纸

张等资源

阿猪工作守则第三条:先做事,后学习

在有限的时间内先完成该做的事,有空闲的时间再去补充自己的知识。

要很好的把握上述内容,也要求提高培训期间培训人员培训内容的完善性,要求前期培训人员强调出软件的重点、难点和注意事项。这个期间适合于上面提到的“带着问题去测试”的方法。

但有一点需要注意:不要为了一个地方的卡壳在那耗上一天半天的,这就不值得了。测试中期评审测试问题

答疑解惑的时间。

测试报告评审

对一些结论有疑惑和不解的地方,提!

4.记笔记

一个老生常谈的话题。

阿猪工作守则第四条:好记性不如烂笔头

测试培训的时候对于一些重点应该记下来,即使当时听懂了;没听明白的更应该记下来,到测试软件的时候去验证自己的疑问。如果培训时特别强调的地方,测试时再去问,这就不好了。

养成一个良好的习惯,会使以后的工作更加顺利。

5.在公司和学校的学习的区别

学校是专门学习的地方,公司就是工作的地方,因此,它们的性质决定了其学习内容和方法的不同。

学校 公司 备注

内容上 主要是系统的理论知识 主要是和项目相关的业务知识 如果在测试中感到自己部分理论知识欠缺时,就应该回家多补充了

时间上 大块时间的连续学习相对邻散 在公司一般不会拿出大块时间来学习和讲解 形式上 老师授课+自学 培训+交流+测试过程中自学

个人觉得,一个高效的测试流程应该如下:

a.花几个小时至多半天时间快速阅读浏览软件说明书、设计文档;

这个阶段要让脑子里面形成对软件的整体印象感,能够让自己把握全局,因此,测试负责人安排时间看文档时,决不能忽视它的重要性,否则就会出现后续阶段磕磕碰碰的情况。注重速读,把握软件说明,忽略具体的数据库设计、功能点设计、计算、规则和辅助工具(相关软件)说明文档,囫囵吞枣的方法在这里就显得很有效。

如果项目时间紧或没有文档,这个步骤所做的事可以在下面完成。

b.利用培训时间消化吸收的知识

c.软件上手

几个小时至多半天时间,熟悉软件框架和基本功能,不要求所有功能都会操作,自己负责的模块可以多侧重一些。

d.细测

主要症对计划中安排给自己做的模块,这时就要相对放慢节奏,每一步操作、每个对话框(操作界面)都要深究,别放过任何情况。这时会遇到一些错误或不理解的地方,明显的如报错就提到开发过程论坛,不明显的就先记下来,等这个功能点测完再回头去看,你会发现:

50%的问题可以自己分析出来和解决,有的问题不是问题,只是开始还没有完全理解。阿猪工作守则第五条:软件不是一次能测透的Rome is not built in one day.工期、人力、环境资料等,都制约着测试的深度和广度,因为不要期望一次能完全把握某个软件。

综合测试的优势在于,我们负责公司产品的把关,而项目由产品延伸而来;测试产品会不断出新的版本,一次没有理解,可以在下一次中弥补,温故而知新。

一口吃不成一个胖子,看我这么瘦又这么能吃就知道了^^

要结合自己的实际情况决定本次测试的深度,不要看着别人进度快了就打乱自己的节奏,只要安排合理,应该按照计划来。特别忌讳认为自己这块没问题了就马上去看看别人负责的功能,期望全能。这样一般来说除了ljl这种全能性人物外都会造成最后自己的问题留了一堆,别人的也没搞懂。

新人特别注意,踏踏实实的搞懂每个自己负责的模块,打阵地站,这种方法很有效。评价自己是否可以转入下个模块的几个因素:自我提问与别人提问、测试进度

如果大多数相关人员(主要是测试负责人、其他部分相关测试人员特别是开发组集成测试人员和技术支持人员)对于自己负责模块的问题都能解答,搞定!NEXT-->转入下个模块。

否则,还是再回头想想思路和遗漏的地方。当然,要综合考虑测试进度。请组长对自己提几个软件的问题,他会很乐意的。

e.小结

一个阶段就进行一次小结,这个小结可以是书面的,比如测试问题记录、测试用例补充、测试模块设计等,但大多是自己分析,为了方便接下来模块的测试.f.性能测试

性能测试不仅是测试性能,同时也加深自己对软件应用的理解,因为性能测试往往和实际应用或用户需求结合的很紧密,避免造成软件功能都会用,但不知用来干麻的尴尬情况。g.安装盘测试

安装盘程序测试,简单过一下软件功能有无错误。

安装盘程序文件、库文件、组件等的完整性、正确性,这个非常重要,要不返工就浪费时间了。这个阶段要积极与开发负责人和GJ沟通,确保最后的胜利。

h.测试总结

测试接近尾声,总结自己对软件的掌握情况,得出测试结论、归纳测试方法、提出修改建议,为软件以后版本的修改提供依据,也为以后再测类似软件提供捷径。

5.小结

 用户用软件,测试测软件

培训时多想多问

好记性不如烂笔头

带着问题去测试,在测试中解决问题

 先做事,后学习,争取双赢

软件不是一次能测透的

第三篇:测试经验总结

6年测试工作的思考

前言

在公司已经干了6年的测试了,干测试经理也5年了。正好趁此机会把自己6年来一直想写但没写的东西写出来。这篇文件纯粹是对自己工作的回顾。由于时间仓促基本上是想到什么些什么,有点儿乱,也请大家多多担待了。只要还有些人能从中找到些儿同感,或从中得到一些帮助,一些经验,我就知足了。

1.什么是测试

首先我要谈谈什么是测试。相信好多测试人员跟我一样,来公司之前也没有从事过任何测试工作。对于测试都是从零开始的。也有好多人跟我一样,从各种书上或是培训中得到过有关测试的各种定义。但不知道大家有没有净下心思考一下。什么是测试。在公司公司测试工作的定义是什么,测试的工作范围是什么。

测试的定义根据测试技术的发展,历经了3个主要的阶段。第一个阶段,认为测试就是找产品中的bug。第二个阶段,除了找bug以外,又增加测试是对软件质量的度量这一概念。第三个阶段,明确了测试是指为了度量和提高被测试软件的质量,对测试件进行工程设计,使用和维护的并发生命周期。注意其中提高的测试件,其主要是与软件这个词进行对应。明确测试也是一种开发过程。他的工作成果就是测试件,好像平时我们所谓的测试案例、测试脚本等等都可以称为测试件。然后使用测试件去度量和提高被测试软件的质量。

目前,在中国大部分软件企业,尤其是中小型的软件企业还停留在第一阶段。我个人觉得公司稍微好一点儿,处于一、二阶段之间。因为我们平时做的最多的一件事,还是找bug。至于测试案例和测试脚本等等,只占用工作量的很小一部分。而且我看不到大家在平时的测试工作中是完全依据测试案例进行测试的。目前测试案例等工作更多的成为了一种形式上的产物。从有些部分所有产品的测试案例在一个下午就能评审完就能看得出来。

说到这里顺便在谈一句测试计划。目前的测试计划是作为产品计划的一部分。先明确大概发版时间,然后是各个阶段的里程碑,其中提交集成的里程碑是死的。开发需要的时间就是那么多,剩下倒推的时间就是测试的时间。这样定出的计划是否能够起到计划的作用就不好说了。现在的计划更多的是罗列联调测试的各种内容,至于时间,不说也罢。所以从中也可以开出公司的测试也就停留在一、二阶段之间。

明确了公司测试的定义(个人理解),也就不难理解公司给测试人员的定位了。在测试人员中经常流传的一种说法就是国外测试人员的地位多么多么的高,开发就是coding。咱们公司开发比测试多拿多少多少,测试人员地位是开发序列中最低的。大家也要看看人家公司测试人员的素质,测试在开发过程中的重要性。再看看自己所从事的工作,就是找软件的bug。当然我也个人认为有经验极其丰富的测试人员对产品的贡献比开发和需求大。明确了这些,心里也就能少点儿不平衡感。

2.测试方法的思考

说完个人对测试含义的理解,再说说个人对测试方案的一些思考。

个人认为在公司6年,测试方法没有什么提高。主要还是以黑盒测试为主。中间也曾经引入过各种各种工具,但测试人员真正用起来的也就是robot。而且robot主要是进行回归测试,再加上一些人并没有真正认识到其价值,应用范围也极其有限。对整体测试效率的提升影响不大。所以目前的测试方案还主要是以需求为依据的黑盒测试。至于什么极限值了,成对测试法等等,都是建立在黑盒测试的基础上,而且从我一来公司就有相应的测试项目,只不过没有明确概念而已。

另一个说个人觉得6年来公司测试方法没有什么提高的原因是,6年前测试是以人为主,靠得是测试人员的经验,对产品的熟悉程度,对业务的理解程度。6年后测试还是以人为主,人就是测试的主体,产品质量的保证。还没有过渡到测试案例就是测试的主体,测试案例的完整性是产品质量的保证。只要测试还是以人为本,我觉得测试的效率就不会有太大提高,产品质量的信心来源也是对相关测试人员的信任。我个人觉得以黑盒测试为主要的测试方法没错,而且也比较符合目前公司的测试现状。但一定要注意各种经验的总结、积累,更重要的是共享。虽然目前测试案例在测试工作过程中的地位不重要,但其毕竟是编写者的经验积累。汇总起来也是一笔可观的财富。可现在如果有人问我850的测试方案在那里,其中还有多大比例能够用在现在的产品中,在现在的测试工作中有多少以前的案例能够复用。其他产品中的测试案例中有多少是关于接口功能,有多少我可以借鉴。我不知道,这也是自己工作不到位的地方。所以我要说的作为黑盒测试为主要的测试方法,一定要注意测试经验的总结和共享。

而且我认为一个人如果黑盒测试能做到位,做到最后培养的是一种测试的感觉。测到最后,产品你一看就能知道那里可能有问题,那里应该没什么问题。这样有重点地投入测试力量可以收到事半功倍的效果。可这是需要大量测试经验的积累的,不是我告诉你,你就知道的能力。在此前提上加强测试人员之间的横向沟通,形成经验贡献。可以较快的培养测试人员的测试感觉。

最为测试经验积累的另一个重要方法就是加强对测试案例的要求和管理。每版测试案例不仅要包括新增功能,还需要包括上一版本中继承的案例,修改或删除上版案例中变更的内容。从而形成一份完整的关于产品所有功能点、接口、升级、年结等等各方面的测试案例。真正做到测试案例是测试的主体,从而提高测试效率,提高产品质量。

3.测试工具的概念和作用

测试工具,什么叫测试工具。我认为任何能提高你测试效率的工具都可以称之为测试工具。不仅仅指robot或是loadrunner这类专门的测试工具,也不仅仅指使用各种编程工具编写的测试工具。像总账工具、eai等,即使只是帮我们导入一些常用档案,也可以节约我们的测试时间也可以称之为测试工具。

我个人现在公司测试在测试工具开发上还很不足。在公司里一提起测试工具,大家第一个想到的可能就是robot。即使是robot应用的也不够深入。大家经常认为robot主要录制gui的脚本,跟产品界面联系紧密。每次回放成功率不高,各个版本间脚本复用率也较低。而且每次总是以各种理由将脚本录制放到最后,经常就不了了之了。最后阶段的测试任务实在太紧。我想说的是robot的应用虽然有各种各样的局限性,但其毕竟提高了测试效率。比如说安装盘验证,使用robot验证,每天都可以节约一半以上的验证时间,这就是效率。认识了它的好处,才能想尽办法解决或避免在robot使用中的各种问题。以前同事有一套robot脚本规范就很好,使用后不仅提高了回放成功率,而且回放中断后,继续回放也变得很容易。所以说使用robot后,想100%回放成功不可能,想不再进行脚本的调试也不可能。认识这两个问题后,就需要加强robot使用经验的总结和共享,有针对性地加强robot使用问题的研究,每版测试开始时针对上版robot脚本的复用问题进行研究。这样才能用好它,真得使之成为一个工具,而不是一项任务。

一种工具也不是万能,有许多针对产品特性的测试工具。只能自己开发,大家应该积极提需求。凡是认为有可能提高测试效率的工具需求都可以提。能从网上找到现成的工具解决需求更好。不能,如果是普遍性的需求,可以专门进行开发。因为咱们产品的特性,每版间测试工具的复用度很大。从长远看就是节约开发成本,缩短开发周期。

在现阶段加大测试工具的适用范围和力度,用好各种测试工具,可能是提高整体测试效率最快最好的方法。但一定要加大推广的力度。否则有了好的工具,没人用或用不起来也是没用。

4.如何看待各种规则和执行

可能大家觉得平时开发过程中有好多规则、制度。这些除了一些自己公司内根据各种情况制定的外,大部分都是跟cmm体系相关的一些规则。可以说是已经被许多软件公司验证过,可以提高开发和测试效率的规则。但好多人觉得起没有什么用,就是在浪费时间。总是以一种完成任务或是应付差事的心情去做。我觉得大家之所以觉得其没用,恰恰就是由于你去做这件事的动机不对。总以应付差事的心情去做,你就不可能真正理解这么做的目的,这样做能给你带来什么好处,你从中会得到什么收益。所以我个人认为,既然有规则,不管是公司自创的或是借鉴其他标准,都是为了解决开发过程中的问题,为了提高开发的效率,保证产品质量。也许这些规则中有这样那样的不合理,但只有你认真地去做了,才能发现其中的不妥之处,才能改进,才能更有助于你的工作。

执行也是我觉得在工作中需要进一步加强的环节。许多规则就是因为执行力度不足,才容易让一些人找到空子,应付了事。但怎样加强执行力度,还是一个需要大家一起进行探讨的问题。

5.作为一名测试人员应该具有的素质

测试人员应该具有什么样的素质,相信好多人都有自己的理解,不同书上的观点也不尽相同。我就说说我在公司工作了六年,觉得一个合格的测试人员应该具有什么样的素质。业务和测试方面的能力就不说了。

测试人员应该具有的素质包括: 1.踏实细心和积极主动

我觉得作为一名测试人员首先要踏实细心。测试人员每天都要面对着枯燥的程序,从事着大量的重复工作,还要尽量发现产品中的bug。如果不踏实,你就坐不住,总想干别的,就无法净下心来想用户有可能怎么用,需求对产品是怎么要求的,现在产品中是怎么做的,哪里可能存在问题。不细心,就特别容易一些产品中微笑的错误,而恰恰就是这些错误是最影响产品形象的问题。

至于积极主动就不多说了。这是每个人都应该具有的素质。2.怀疑一切

不抱着怀疑一切的态度就不是一名合格的测试人员。经过你手测试的产品面对的是直接用户。你不认真负责,不抱着怀疑一切的态度。总想着这个功能本版没动应该没什么问题,这个功能没什么用户用不用认真测了。这样发出的产品,我是不敢让用户用。因为用户用起产品来是千奇百怪,有些用户的水平和对产品的理解比咱们还要深。所以一定要抱着怀疑一切的态度,认为产品每个功能都可能有问题,认真地测试产品的每一个测试点。

3.协作和团队感

协作和团队感也是十分重要的。要意识到测试、开发、需求是一个团队,一个整体。离了谁,产品的质量都无法保证。诚然有个别开发人员责任心不强,经常将未经任何验证的代码编译后发给测试进行验证。耽误了测试人员不少的时间。但越这样,测试人员越应该负责,否则产品发出去影响的是公司的形象。

还有个别开发人员开不起测试。此时就需要你通过各种方法去证明你自己的能力。比如测试出他根本就没考虑过的问题等等。以实际行动证明你离不开我,咱们是一个水平的。只有这样加强协作和团队建设,加强整个团队的质量意识,才能提高开发效率,保证产品质量。

4.自我提高和总结的能力

测试人员经常很迷茫,不知道自己的发展方向在哪里。测试技术还是专业知识。领导们所谓的个人发展方向考虑也经常是画一个饼在那里。这时就只能靠我们自己了。看你想今后从事哪方面的工作。一般情况下,如果升不到管理层就只有两条路可选了。一是业务精通,将来可以向需求或是售前、实施方向发展。一是技术精通,多掌握几种测试工具,又能力可以学习一些编程方面的知识。将来还继续从事测试方面的工作。随着中国软件开发的规范化,这条路也是很有发展的。

另外,我觉得作为一名合格的测试人员,一定要注意进行总结。通过总结可以对自己的工作进行一个回顾分析,看看那些做得不错,下次还继续这么做。那些工作还有改进的余地。对自己能力的提高是一个很好的帮助。

6.作为一名测试经理应该具有的能力

作为一名测试经理,我觉得除了具备一个测试人员应该具备的素质外,还应具备以下能力。

1.出色的沟通和协调能力

由于测试人员和开发人员的工作性质,必然导致测试人员和开发人员在工作中会产生冲突,对同一问题会产生不同的看法。这时,你怎么去协调,去沟通,解决这种矛盾,让自己所在的开发团队中极少的受此影响,就是考验你能力的时候。

2.条理性和计划性

作为测试经理,要负责带领团队内的其他测试人员全面的测试产品。由于测试项目很多,不仅包括产品功能,还要包括效率,性能,压力,并发互斥,环境等等方方面面。此时你如何去安排这些测试项目,哪些可以先做,哪些可以并行。与开发人员在一些项目的测试中如何协调就是考验你做事的条理性和计划性。

3.从全局考虑产品测试的能力

每一个测试人员在产品测试中,重点肯定是自己负责产品的功能,此时就容易遗漏其他的一些测试项目。有可能是接口的部分功能,又可能是升级或年结的部分功能。此时,你如何提请他们还有漏测的功能点。在有限时间内,能找出他产品测试上的薄弱点,就是考验你通盘考虑产品测试的能力。

后记

上面就是我对6年测试工作的一个回顾。这些都是我个人的一些观点,很不全面,也有不正确和遗漏的地方。大家看后,能从中得到一些自己需要的东西,我就知足了。

再次感谢在这6年中给了我许多帮助和支持的各位兄弟姐妹们。

附录A、QA工作心得

看过许多同行兄弟姐妹的工作感受,反映了一些从事QA工作过程中的困惑,心里也很有同感。之前做过几年的测试工作,到了新的公司开始做QA工作,虽说测试工作也是属于质量工作范畴,但是真正干起来才发现,还是有很大的不同的,尤其是思想方法和工作方法上。所以也是边学边干,这边和大家分享一点心得。

1、调整好自己的心态。

尊重开发人员、产品经理、项目经理等项目组内同事,不要把自己定位为监工,要把自己定位为服务员。如果你真的是从心里想帮助大家把事情做好,而不是教训别人,大家会感受到的。很多时候,调整好自己的心态才是难点。

2、有的放矢 不要盲目的发表意见,要做到有理有据,这也是避免项目组内成员产生争执和不理解的前提。在提出意见和建议前,最好做一下调查,收集一些资料和数据,或者和大家深入的聊一聊,开一些交流会,座谈会,收集到一线开发人员的真实感受,不要自己一觉得有问题就冲出来,这样肯定会被别人反感,也会降低大家对QA的认同和信任感。

3、数据说话

质量工作相对务虚不假,之前做测试好歹还有很多的bug摆在那里,刚开始做QA工作确实觉得虚了很多。自己的产出在哪里?后来发现,其实还是可以有很多的,呵呵。你可以给相关人员进行培训(质量知识、软件工程知识、产品开发知识、质量制度和规范等等),会议记录和培训资料算是你的产出的一部分。另外,对于项目过程中产生的问题,变更等,要有记录,一定周期内作出分析和报告,比如,变更发生率,项目延期的原因分布,与计划的不符合程度等等。进一步提出改进建议,有了这些数据支持,你提出建议也就更有说服力。

4、沟通再沟通

其实很多问题都是发生在沟通上,我觉得沟通好了,起码可以解决70%的问题。多为大家提供交流和沟通的机会,比如,发起一个交流会,让组内同事互相培训,形成一个良好的内部学习交流气氛。另外,什么也比不过面对面的沟通,抛弃聊天工具和email吧,走过去,和你的同事一起好好聊聊,吃饭的时候,坐车的时候,你会发现很多深入的问题的,呵呵。

5、循序渐进

规范制定好了,不要一下子就想完全推行到底。毕竟要改变别人已有的习惯,是会让别人不舒服的,呵呵。所以要循序渐进,分期分批,一点点来,习惯慢慢的就被改变了,这样大家就不会太抵触。而且,在分期分批推行规范的过程中,别忘了不断收集反馈意见,不断改进和修正规范,规范可不是qa说是什么就是什么的,一定要收集大家的意见,达成共识,这样才有被大家执行的基础。

6、展示自己

QA工作务虚,但是可以落到实处,是有很多实际工作要做的,比如文档编写,规范起草。培训、评审、跟进问题。这些工作的成果如何体现,效果如何,可以通过一些问卷调查,来收集大家的反馈,举个例子,如果推行产品开发流程规范前大家对流程的满意度是50%,推行规范两个月以后,满意度成了90%,你说这是谁的功劳呢?呵呵,这也是数据说话的一个方面,也是QA工作成绩的展现。说了这么多,其实我做QA工作也只有3个月,还有很多的不足,希望能和大家多多的交流,如果自己的一点心得,能够给大家一些帮助或启发,就深感欣慰了,呵呵。欢迎拍砖!

附录B、SQA之Q&A 软件质量保证,即 SQA,全称是 Software Quality Assurance。

问: SQA 目的是什么?

答: 对于任何的行业,讲到质量控制,归根结底都是为客户提供更高品质的产品,更好地满足客户的需求。质量有问题的话就不能满足客户的需求。在 CMMI 里边就有 “ 集成流程产品开发 IPPD(Integrated Product & Process Development)”,为什么要集成呢?就是说产品的研发不仅仅是开发团队的工作,还要把市场团队、销售团队、整个的流程、包括客户的反馈都要考虑进来、集成进来。目的是为了什么?其实就是为了更好地满足客户的需求。六西格玛里面说 DPMO(Defect Per Million Opportunities),百万产品里有缺陷的产品只有三个。这是为什么?就是为了减少差错,从而让客户享受非常高质量的服务。

问: SQA 等于测试?

答: 测试其实只是 SQA 的一个环节,SQA 的全称是软件质量保证。在国外很多的大型的企业,比如说摩托罗拉、爱立信,他们的研发团队里面都专门有一个 QA 部门,其实他们并不是做测试工作的。QA 部门其实是管理开发流程的执行,并专门负责制定产品开发流程。比如说 RUP 里面有一个角色,叫 Process Engineer,过程工程师,他就属于 QA 部门,他的工作就是负责制定整个软件开发的流程。因为如果说要保证质量的话,不能只靠测试来保证。而必须在整个开发流程的各个环节都要做得很好,才能够真正地提升软件的质量。而测试只是整个开发流程最后的一个阶段。所以说一个好的流程就决定了一个软件的开发能不能按时交货,能否保证软件质量。这个流程就是由 QA 部门来制定的。QA 部门还有另外一个职责,就是保证整个研发团队能够严格按照这个流程来运作。在项目到达每一个里程碑的时候,QA 部门的 QA 经理就会介入,对项目做一个审核,检查前一阶段的工作是否按照公司制定的流程来运作。看看该有的工件是不是都有了,该有的步骤是不是都有了。开发团队要证明给 QA 人员看。只有过了这一关,QA 部门才会同意说开发团队可以往下走,进行下一步的工作。所以严格来讲,众广义上理解,SQA 是针对整个软件开发流程的,它关心的是怎样在软件开发生命周期中来保证好软件的质量。这是一个非常大的概念。

问: SQA 在 RUP 中是如何体现的?

答: 其实 RUP 整个流程都在讲 SQA。业界常见的模型,譬如 CMM/CMMI,六西格玛,ISO9000,RUP,它们做的基本上是同一件事情--都是在做流程改进,都在做质量控制,但是各自的侧重点不一样。像 RUP 和 SDP 专门侧重于从软件开发的整个生命周期来保证软件质量,所以对软件开发商特别适合。而其它的模型,侧重点则在其它的环节,比如说 ISO9000,用在制造业比较多一些; CMM,原来是应用在软件这个行业的,后来扩展到 CMMI,就扩展到其它行业它也适用。但适用面越广,它拉的层次就越高,可实际操作的东西就越少。RUP 是专门侧重于软件项目开发的。怎样来保证做好 QA 呢? RUP 里定义了一个软件生命周期模型,分成四个阶段--初始阶段、细化阶段、构造阶段、交付阶段,每个阶段有不同的侧重点,通过多次的迭代,每次迭代里面都要做质量控制。

质量控制从需求开始,有很多需求分析和需求管理方面的技巧和技术方法,它们从需求方面来保证软件的质量;到了设计,就有很多成熟的设计方法,例如可视化建模,基于构件的架构设计和现在提出的模型驱动开发方法;再到实现,到测试等方面,都有很多的方法和技巧来提高软件的质量。这里面每一个环节的目的都是为了提高整个软件开发的质量。

开发过程中,什么样的问题会造成质量问题呢?其实最主要的就是沟通方面的问题,以及对系统复杂度把握程度的问题。我们逐渐发展了一些技术来帮助我们解决这些方面的问题,例如用 UML 这种标准化的语言来增强团队的沟通,用面向对象的技术来帮助加强对复杂度的控制能力。

原来这个系统很复杂,使用面向对象的方法,本身就是为了简化系统构建的复杂度。改变你看问题的角度,你对问题的把握程度就会不一样。譬如人看一个二维迷宫很容易就能找到出路,但蚂蚁在里面就走不出来,因为看问题的角度不一样。面向对象方法和可视化建模技术可以让开发人员可以更好地去把握系统,增强对系统的可控制能力,从而从这些维度上来提高和保证软件的质量。

现在有很多自动化的工具,如 IBM Rational RAD(Rational Application Developer)/ RSA(Rational Software Architect),都是支持 MDA 的开发方法,在模型这一级进行开发,从模型直接生成代码。在开发方面我们有很多辅助工具,帮助开发人员尽量将人工做的工作、复杂的重复性的工作、不具有创造性的工作让工具来做。让人去关注他应该关注的方面,比如开发人员应该关注业务逻辑的处理,但是软件的构建方面我们是尽量让工具来降低构建细节上的难度。这样也是有助于提高质量的。

然后产品出来了,需要进行测试,有测试流程、测试规范来帮助保证质量,这是最直接的。然后还有很多的环节还会发生错误,比如配置管理、版本的管理,也需要相关的支持来保证软件的质量。所以说软件质量保证不应该只是在一个环节上,比如测试环节来保证,而应该是整个的流程,我们应该全面地去改进流程来保证质量。

问: 做 SQA 这方面的人员,在沟通方面需要的什么样技巧和能力?

答: 首先从大的方面说,整个团队的沟通,首先是大家要讲同样的语言。UML 只是这种语言的一部分,我们不要狭义地理解这种沟通语言就是 UML。它还包括采用一个什么样的流程方法,整个团队都要理解。譬如你说项目正处于 “ 精化(Elaboration)” 阶段,这个团队都要能理解这个术语。

还有就是整个组织机构内部大家采用的流程都是要一样的。举个例子来说,Rational 有很多产品,其中很多都是收购来的。不同的产品团队采用的开发方法、开发工具都是不一样的,他们到了 Rational 之后做的第一件事就是整合。这个整合一方面是说产品要整合起来(我们有 Suite 产品);同时也是针对开发团队开发方法的整合,例如 Rational 花了一两年的时间把所有产品团队统一到 RUP 和 ClearCase/ClearQuest平台之上,这是我们的首选。实际上到了 IBM 之后也是一样,IBM 现在正在做的计划就是让所有的实验室、研发团队都要使用 IBM Rational 自己的开发工具,他们都在使用 IBM 自己的开发方法、开发平台。这就是让大家的沟通基于一个统一的基础架构 ―― 统一的软件开发平台,这也是增强沟通的一种方式。另外,讲到 SQA 的人员,在 RUP 里对应的就应该是 Process Engineer。他的主要的职能就是定义流程,保证流程的执行,并且不断地改进流程。对他的要求就是要对流程要比较了解,有实际项目的开发经验,不然没有办法理解流程,这是技能方面;另外就是与人的沟通能力要强,跟一般的开发人员和项目经理是有区别的,沟通的能力一定要强,他要负责说服项目团队来遵循标准。

问: QA 人员与目经理和开发人员之间的关系是怎样的?

答: 首先彼此之间是一个合作的关系。如果片面理解 QA 人员只是 “ 过程警察 ” 的话,就可能把他和其他的角色对立起来了。实际上在一个团队内部要避免这种认识。因为大家都是在一个组织架构内部的,大家的目标是一致的,就是要把公司的业务做好。所以 QA 人员的职责和任务就是帮助这个项目团队更好地进行软件的开发。既然已经定义的流程是比较适合企业的,项目就应该遵守这个流程来进行开发。如果有时候项目因为赶工,或是其它的原因违背一些流程上的规定的话,就会对软件的质量会造成一定影响,他就有责任来帮助开发团队来纠正这方面的一些错误。还有就是进度方面的问题。如果不按照流程来走的话,短期内看起来进度是快了一点,但从整个项目的周期来看,有可能是给以后的工作带来隐患,客观上肯定是延长整个开发的进度的。所以对于一些流程管理得比较好的企业,你会发现他们的 QA 部门和开发团队是相处得比较融洽的,配合是比较紧密的。在我们的客户里就看到过他们的开发团队非常感谢自己的质量控制人员,觉得他们对自己是给了很大的帮助。

QA 人员跟每一个角色的关系,如果你对应到 RUP 的话,RUP 里就定义好每一个角色是做什么工作的。RUP 里分了 9 个规程(discipline),流程工程师是在环境规程里边,项目经理是在项目管理规程里边。每一个规程其实就是一类开发活动,其中的角色和他们所产生的工件集合,是一个分类。可以把项目经理相关的工作,他所涉及到的工件,比如说软件开发计划、风险管理计划、质量保证计划都放在一起,放在这个规程里面。所以 QA 人员跟项目经理的关系就是去检查项目经理在这个岗位上所做的职责是否到位,是不是跟流程相符合。其他的角色也是一样的,譬如一个测试人员,就要看你有没有根据规定把缺陷按正确的测试流程汇报,发现缺陷之后是否能够得到改正,并作一个复审,还有回归测试的时候有没有考虑测试的完备性等问题,就是看测试人员有没有做好具体的工作。QA 人员和整个项目团队在工作中的关系就是看每一个角色是不是很好地完成了自身角色所应该完成的开发任务。标准是什么?就是这个组织的流程,流程是保证质量很重要的一个依据。

问: QA 人员如何判断其工作效果和质量?

答: 最直接就是 RUP 里的工件。可以去检查这些工件,可以根据检查的结果来判断角色是否达到了要求。既然是检查这个结果的话,就有必要涉及到统一流程和工具的问题。就是说开发团队有必要采用统一的开发方法和流程。不然的话每一个开发团队各自采用不同的开发流程,流程工程师就很难去评价,没有一个可对照的标准,没有可比性。另外,和采用的工具也有关系,就是说团队要尽量采用统一的开发平台。采用统一的开发平台,工具会帮助自动收集很多的信息。比如说我们的 Project Console 可以帮助收集很多量化的指标;现在有 Portfolio Manager,项目组合管理平台,可以帮助了解项目进度还有项目进行过程中产生的各种结果;还有包括测试的报告等等,这些都最好有一个统一的标准。打个比方来说,现在的航空公司都会选择相同飞机制造厂商的机型,就是要降低维护的成本。因为机型比较统一的话,就比较好进行管理。在一个软件企业的话,在内部采用统一的软件开发平台也能有助于企业判断项目的情况,判断的方法也会相对比较简单,工作量会降低。

这是从 QA 的角度来看,其次从整个团队的角度来说,今天是做这个项目,明天做另外一个项目,作为企业的管理人员肯定不希望员工今天做这个项目用一个工具,明天做另外一个项目用另外的工具,这样学习成本就太高了。

第四篇:稿件管理系统测试项目经验总结

稿件管理发布系统测试项目经验总结

经过近两周时间,稿件管理发布系统测试工作基本完成了,收获很多,但还有很多不足,希望在之后的学习中以此为借鉴,完善测试过程。收获:

(一)了解了做一个项目的大概步骤;要想做一个好的项目,测试要贯穿整个开发过程,在做项目之前要做好充分的准备,如环境配置、文档准备、资料收集等。在一个项目中至少要有以下几个文档:需求分析报告、测试设计报告、测试用例设计报告、bug报告及测试报告。对一个测试人员来说,测试设计报告是一个前提,首先要保证测试设计合理,并且内容齐全。这样才能更直接、准确地进入下一项目步骤。测试用例是整个项目的重点,在一个项目中测试用例必须经过三方面的评审,评审通过才能执行。一是自我检查,二是测试人员互相评审,三是项目经理评审。一个好的测试用例要覆盖全测试需求,测试用例的设计要合理、正规。测试用例不在于多,要在于覆盖全,测试用例的多少在一定程度上并不代表质量的高低,所以说,测试人员对于测试用例的设计一定要细心且全面。接下来是bug记录,在bug记录中一定要详细给出测试的重现步骤。一个bug报告中所包含的标题有:缺陷ID、缺陷标题、缺陷描述、缺陷的重现步骤、缺陷的严重级或者优先级、测试模块、缺陷提交人、缺陷的版本及证明是缺陷的视频或者截图等。最后是测试报告,在测试报告中最突出的问题就是测试缺陷的分析,测试用例中缺陷有多少,通过率是多少,有哪些建设性的意见,及最终得测试结果,是通过还是没通过。

(二)了解了如何写测试计划、测试用例、bug报告、测试报告等;

1、测试计划的内容包括引言、测试背景、测试组织结构、测试策略、测试计划、测试环境及测试总结。在整个测试计划中最重要是测试的详细计划,当然在测试之前,要评估好测试的工作量分配及进度安排,人员规划等,测试计划的书写要有一定得逻辑,要能够真实反应测试项目。测试进度的安排要合理。

2、测试用例报告是一个项目中的重点,描写一个测试用例包括测试需求ID、测试需求标题、用例ID、用例步骤、期望结果、测试结果、测试人员、所属模块、严重级、备注等。在测试用例报告中重点在于测试步骤

要尽可能地详细,测试需求、标题等要描述清楚。

3、Bug报告也是测试项目中的重点,也是最让人有成就感的报告,bug报告中缺陷要描述清楚、正确评估缺陷的严重级别。

4、测试报告是一个项目的总结性报告,测试报告主要包括引言、测试设计简介、测试结果分析、测试结论及建议。

(三)了解了如何有条理地书写测试用例;首先测试用例要覆盖需求,根据项目的需求分析或者软件,设计测试用例。其次,写复杂的测试用例要掌握一些方法。例如决策表法,要先把影响因素和测试用例的个数做成表格形式,以便于详细分析设置用例的多少。在设计测试用例的过程中最常用的是等价类划分法,基本上每个测试用例的设计都要考虑正反两个方面。在这划分过程中遵守着尽量覆盖尚未覆盖的有效等价类,仅覆盖一个尚未覆盖的无效等价类原则。

不足:

1)需求分解不彻底;在本次项目执行过程中,我们发现在需求手册中很多地方描述很模糊或者很简单,不能很好地向设计者呈现要设计软件的细节操作步骤,从而,对于软件测试人员来说就很难辨别测试结果是否符合要求,换句话来说,如果一个测试人员想把需求描写的很模糊的地方测试清楚就必须和客户不停的交流、沟通,在一定程度上影响项目的进度。以上是从客户需求角度来说的。对于客户只提供软件而没有需求的情况下,项目组人员就要人怎分析测试需求,详细分解。

2)测试用例覆盖不了测试需求;一开始感觉设计的测试用例可以覆盖需求了,但是执行后才发现很多细节部分没有写全,例如稿件管理发布系统用谷歌浏览器打开就会出现很多错误,稿件管理系统在浏览器的应用上存在一定得兼容性问题,等等。针对这种情况,我们需要在执行之前,详细地了解用户需求及真实软件的运用效果。两者相结合,设计更全面的用例。

3)对bug的辨识度还有待提高;在测试用例执行时,会发现很多细节性的问题,不容易判断它是不是一个bug。例如稿件管理发布系统中高级查询里的版本查询,虽然说它支持的是模糊查询,但是输入很多“.”时查询的结果仍然是正确的,如果把它归类为非法版本号,非法版本号输入后查询结果应该是查不到,而不是查询到正确的结果。在一开始我将其定义为bug,但是和其他人讨论之后,觉得可以不是bug,第二天又去考虑觉得还是bug。虽然说各人的判断标准不同,但是总该有一个统一的标准。想这类问题还要在以后的项目实行过程中不断总结经验。

4)测试执行方法及步骤还存在很大的改善空间;在测试用例设计中不只

是功能测试,它还包括性能测试、界面测试、安全测试等,对于这些测试,测试用例设计时步骤不是很详细,操作时就存在一定得困难。例如:性能测试中系统支持20人并发访问系统,这就要求我们要尽量组织20人去集体测试,怎么去组织,要做哪些事情,诸如此类准备工作一定要详细准备。

5)很多业务知识还不了解;这个问题在本次项目中体现不明显。这是做

软件测试学长给的意见。要做好一个项目,必须地相应项目的业务流程有一定的了解。

6)项目中组员间的交流不够;虽然很多时候大家都提出互相检查用例及

bug记录等,但在实际过程中并没有切实实行。交流是测试人员必备的沟通技巧,在项目进行过程中遇到问题要互相沟通,以便更好地解决问题。

7)对部分基础知识的理解不够透彻;在写测试用例时,我们采取的步骤

是先把可能考虑到得测试写全,但在写测试用例时,就发现对一些测试的概念记得不清楚甚至混淆。这就说明我们对基础问题的认识还不够深。因此,在之后的学习过程中我们要不端去记忆一些概念,或者在做项目过程中不断地发现相应的问题然后去解决。反复记忆,出现问题才能铭记于心。

8)报告书写技能有待提高;测试人员做项目时,很多问题的结果都是以

报告形式,我们要不断练习自己的公文写作能力,熟悉应用office办公软件。

9)数据库、服务器等其他知识了解太少;在测试执行中,遇到一些bug,不清楚其出现的原因,知识面太狭隘。在之后的过程中要多了解与测试相关的知识。

总之,这两个星期来,收获颇多,问题多多,革命尚未成功,同志仍需努力!我们要通过各种渠道主动去获取知识,多交流,多沟通,共同收获!

第五篇:测试工作经验总结

测试工作经验总结

功能测试最重要的是理解业务和需求。知道系统要实现什么功能,业务流程是怎样的,然后就可以根据需求编写测试计划和测试用例了。测试书籍上介绍常用的编写测试用例的方法有:等价类、边界值、因果图、判定表等,在实际工作中,我使用较多的有等价类、边界值、场景法和错误猜测法。在这里需要提一点,将测试用例按测试目的进行分类,比如用户界面、功能点、业务场景等,会让测试用例的结构看起来更清晰,执行测试用例的效率也更高。

要做好功能测试,还需要对整个系统的数据库结构比较清楚,每个功能点涉及哪些数据表,对数据的操作方式是怎样的。这样就不单从前台页面来进行测试,通过对数据库中数据的验证,可以发现隐藏的一些bug。比如库表没有进行关联删除,从前台页面是看不出来的,但实际可能导致程序出现问题。对一些比较复杂的组合查询或数据排序,也可以自己编写sql语句对结果进行验证。

了解程序的框架结构和一些开发知识也有助于更好地测试程序和定位错误。

测试用例的编写经验步骤和数据的分离

将输入的各种数据已参数的形式表达在操作步骤中,而不需要为每一种输入数据创建一个测试用例。

例如:atm存款

好的测试用例,在执行的步骤(Step)的表达上应该是尽可能和数据相分离。举例来讲,有一个ATM机取款的功能,可能有以下几个场景:

1.密码正确的登录

2.密码错误的登录

3.密码输入三次错误,卡被锁定

4.取少于余额的款项

5.尝试取大于余额的款项

6.尝试取等于余额的款项(考虑手续费)

6.取款额度大于当次的限制

7.取款额度大于当天的限制

7.取款次数大于限制次数

等等

不管你用什么用例设计的方法论来做指导,作为这个简单的例子,有经验的人都应该能看出,此处的很多步骤是可以重用的,总结下来如下(此处只列出了操作的步骤,略去了系统的交互中的反馈结果):

1.插入卡->A:输入密码->B:按“确定”键->重复A-B

2.A:选择取款功能->B:填写取款金额->C:点击“确定取款”的按钮->D:取现金->重复A-D

因此,我们只需要写出两套比较完整的步骤,将密码和取款金额多数字用参数来表达即可。这样是不是简单了很多呢?单独的测试基础数据准备工作

将测试基础数据提前准备好,写到你单独的测试数据准备文档中,而不是分散到 所有使用到它的case中才去描述。测试用例的前后置条件

除了第二点中谈到的数据需要准备外,在测试用例这个Level,必须有一些条件满足,您才能开始执行它。集中的把这些步骤整理成一个相对独立的操作单元,具体用例中只要引用就可以了,这样会便于对用例的理解和在多处复用。

顺便说一下,对于一些类似软件运行环境的条件,比如安装和配置测试中,需要3种操作系统和3种浏览器的组合等,我们可以把他放在Test Set这个Level上来,不用写多个用例,只是在测试计划和执行的管理系统中作为测试集的一个环境参数,恰当地表达出来就可以。

下载项目测试经验总结word格式文档
下载项目测试经验总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    手机测试经验总结

    手机测试经验总结 VPM主要是激励团队成员测试和学习,而不是自己去执行用例。当被委派为一个项目的测试经理时,VPM应该清楚项目计划和转折点、软件发布时间表、产品定义特征列......

    软件测试经验总结

    软件生命周期(SDLC)的六个阶段1、问题的定义及规划此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。2、需求分析在确定软件开发可行的情况下,对软件需......

    手机软件测试经验总结

    手机软件测试总结 沙晶晶 一个合格的手机软件测试工程师要掌握的东西是很多很多的。在我个人理解中,一个合格的高级手机软件测试工程师应该具有最基本的两点知识:软件测试理......

    项目经验总结

    项目经验总结 本人从事IT工作多年,亲身参与过多个项目。感到做这个工作最要紧的就是要明白什么的员工适合做什么样的事,合理分工、因地制宜,只有最合适的,项目经理最忌讳的就是......

    项目经验总结

    第一章 主 体 部 分 主体部分是指正负零以上的施工部分,不同主题有不同的施工工艺和放线方法,常见主题结构有框架结构【利用多个框架柱组成楼体受力传导体系,用框架梁连接分载......

    项目经验总结

    基于高速USB2.0的数据采集系统项目经验总结 王晓莉 这次关于《基于高速USB2.0的数据采集系统项目》我主要工作是协助项目经理对项目进行管理,负责了部分文档的整理以及整个项......

    BBS 银行测试经验总结

    因为有了应届生BBS,让我在找工作的时候得到了很多的帮助,在谢谢前辈们的贡献的同时,我也希望自己能够做点什么为别人找到一份好工作,所以我写下了自己的求职经历。 现在开始找工......

    手机软件测试的经验总结(★)

    手机软件测试的经验总结 1.在提交高通前务必要检查文档与实际程序的功能表现是否相同,比如说,游戏增加了密 技功能,在文档中就要有相应的说明。2.在模拟器上图像处理速度较快,所......