软件测试流程进阶----两年软件测试总结

 

  工作两年了,我一直希望让自己每年对测试的理解更深入一层。工作一年的时候我写了《谈软件测试---一年工作总结》 ,谈轮了自己对各种测试的理解,这一年来,虽然对那些理概念的有所加强,自我感觉没有什么质的变化。前些天听我们公司的一位测试经理讲《敏捷测试》豁然开朗。他在学造飞机,而我一直在学造飞机里的一个发动机。我从来没想过,一个完整飞机的架构应该是怎样的。

  如果想让测试在公司的项目中发挥出它最大的价值,并不是招两个测试技术高手,或引入几个测试技术,而是测试技术对项目流
程的渗透,以及测试流程的改进与完善。虽然,当然测试行业前景乐观,许多中小企业也都在引入测试,但一百个公司就有一百种测试,每个公司对测试的看法不
同,公司对测试的定位也不完全一样。本人前后经历两个公司,以自己的拙见浅谈一下对测试流程的看法。

 这几天整理思路,回顾了前两份测试工作的流程与架构。

 

简陋的测试流程                                                                                     

  先说笔者入职的第一个家公司,笔者是第一个入职的专职测试人员,相信一两个测试的公司还是不少的,入职后各种项目都在进行当中,上面给我的定位是并没完全融入到项目中去。而通过指派任务的方式。

下面是简陋的流程图:

需求分析与架构设计

  我们做的是某一移动公司内部使用的项目,需求分析与架构全部由项目经理完成,之后由项目经理给具体某个开发人员分配任务,具体对某个功能模块的实现。这个对项目经理的经验与技术要求很高,他既然担任了需求分析师,又担任架构师的角色。

程序员编码

  因为我们开发语言用的是JAVA 语言,IDE用myeclipse 中自带的CVS版本管理工具,开发人员完成代码后,提交到版本库中。

测试

  笔者入职后的第一个任务是搭建缺陷管理工具,禅道项目管理,通过推广对发现的问题进行跟踪。后来正明效果并不好,因为对于一个六七人的开发团队项目,开发人员更喜欢测试人员能当面反馈,这样更能提高效率。对一个小bug 通过当面交流的方式就可以将问题修复。

  对于当时的环境,并没有测试线。开发人员在本机上将项目进行部署运行。测试人员通过局域网访问开发人员的机子进行访问。
或在测试人员本机上进行部署测试。这也是一个致命的缺点。因为开发人员测试人员使用的电脑存在太多不稳定性,这些都会造成问题的出现,有时候难以判定是系
统问题还是环境问题。

上线

  经过测试人员测试通过后,开发人员部署上线。

A程序员流程

  你会发现在流程图中,A程序员是先发上线之后,再进行测试。这是我们一个面向大众用户的网站,上面给于测试人员的定位是测试员兼用户体验员,测试员将发现的bug和体验问题提交到缺陷管理系统,由经理对问题进行分析,指派开发人员解决。定期对系统进行更新。

 

流程分析:

  这个流程唯一的优点,就是能快速的发现并修复问题。

  缺点就非常多了,相信许多小软件公司也有类似的流程。

  这个流程中,项目经理是核心,项目经理也确实是有多年开发与项目经验的牛人,他喜欢不定期分享上些前沿的技术。我很崇拜他。

  对于测试来说,需求很不明确,测试文档与用例也是可有可无的产物,没有需求文档,或非常简陋,根据需求文档根本无法编写
用例。笔者只能收集一些通用的测试用例,如登录、文件上传下载、列表翻页、日期选择、输入框验证、搜索等有一些“通用型”用例,以便在测试过程中做参考。
功能测试的多了,拿到一个功能,测试思路也就出来了。

 

 

规范的测试流程                                                                                       

 

  放弃上份悠闲的工作,感谢那个带我入行公司,我想了解真正的测试在公作中如何进行的。所以,来到了现在这家公司。我很欣喜的是这测试有自己的团队,专业(对当时的我来说)的流程,以及与开发等同的地位。

现在的测试流程:

需求分析

  需求分析由产品人员制定,他们要做的不是一份简单的文档,而是细化每一个功能的细节,每一个按钮的位置,对于稍大或复杂一点的需求都进行建模。

需求评审

  这里会叫上所有参与项目人员进行,开发人员、测试人员、QA人员。测试人员提出需求,开发人员考虑功能实现的方案与可行性、当然开发负责也是要参与的。测试人员主要是对需求的理解提出疑问,以便才能根据需求写用例。QA人员是最终对软件质量进行验证的人,所以也需求了解需求

开发人员编写排期

  开发人员需求根据需求功能点进行排期。然后将开计划转交给测试人员。

测试计划排期

  测试人员根据开发计划,对测试具体测试时间,也就是开发功能完成后的时间,进行几轮测试等。然后,把项目的开发与测试计划发送给各部门负责人及参与项目的所有人员。

编写测试用例

     根据详细的需求分档,开始进行用例的编写。

用例评审

      在用例进行评审之间,先以邮件形式将用例发送给相关人员,以便他们事先了解用例对哪些功能进行验证以及验证的细节。

  然后,测试人员组进行用例评审,开发人员对用例与实际功能不符合有哪些,产品人员对会通过用例对功能的具体实现进行把握等等。

提交基线

    开发人员完成所有功能后,会对自己的功能进行一个自测。自测完成后提交测试人员进行基线。

具体测试流程

      开发人员对于基到测试线的功能进行测式,发现的问题通过缺陷管理工具进行反馈,开发人员对问题进行修复,然后,准备第二轮基。

  测试人员完成第一轮测试后,需要写测试结论,发到相关人员。然后对基线后的第二轮进行测试,第二轮会对第一轮中发现的问题进行重点回归。

测试通过

  经过两到三轮或四轮的测试后,直到没发现新的问题,或暂时无法解决,或不紧急的问题。通过上级确认,可以通过。编写测试报告与验收方案。

  验收方案是交由QA进行验证的。在现公司的流程中是将测试与QA分开的,测试人员重点关注的是功能是否可以正常运行。QA关注的是整个流程的质量以及最终用户的质量。有些公司QA与测试是不区分的,但这对测试的要求会更高,除了关心功能,还需要关心整体流程与质量。

 

流程分析:

  对于刚接触这个流程的我来说,这个流程是规范的,测试真正融入了整个流程,而且还担任了很重的角色,从而也有效的保证了软件产品的整体质量。

  那么这个流程是不是完美的呢?不,这个项目流程太强化各种文档。我们来看测试的工作内容,测试计划、测试用例、测试结
论、测试报告、验收方案、问题的提交跟踪。其实,我们真用于测试的时间是非常少的,在一周的时间,也许只有一天或不到一天的时间是在进行测试的。测试人员
只有在测试的时候才会体现出他的价值。而大部分工作却不能体现他的价值。

  当然,我这里会省略与测试主流程无关的东西,真正的测试工作中琐事很多。

 

敏捷测试流程                                                                                       

  

  下面来看敏捷测试,本人并没有接触过敏捷,对敏捷也没花时间学习与研究。唯一接触就是听我们测试经理对测度流程讲了两个半小时,听讲的人很多,我站着听的。受益匪浅,凭着记忆也简单谈谈。 

  前面讲的第一种流程,还是第二种流程都是瀑布式的,严格来说第一种简陋的都不能称为瀑布式,对于一个三个月的项目说,产
品把需求分析完了给开发,然后产品就没事儿了;开发开发完成之后给测试,然后开发人员也不忙了。测试完成之后上线。那么在产品分析的阶段,开发和测试都是
没事干的(这里只对单一项目)。开发阶段,产品和测试也基本没事儿。同样在测试阶段,产品与开发也是没什么事儿的。

  敏捷测试的一个核心是迭代,在每个时间点上,所有项目人员都是有事可做的。

1、下面是我理解中的敏捷测试流程图:

 

第一阶段

  通过上面的流程图,对于一个月的需求分析,在敏捷中,可能三五天就确定下来。这个需求定得会很模糊,但整体框架确定。产
品对其中某一模块功能确认,开发人员开始对确认的功能编码,开发人员编码的过程中,测试进行功能分解,因为根据模糊的需求很难写出具体的用例,所以,只能
尽量对功能进行分析得细些,标注需要验证的内容。

第二阶段

  开发完成后交给测试人员进行测试,开发人员继续开发新的功能。那么测试人员发现的问题怎么办呢?会从开发团队中抽出一个人员来用于解决测试发现的问题。但开发进度并没有因为测试而停止。

 

流程分析:

  在这个流程中弱化了文档,强调了各个人员的沟通,通过这种迭代的方式,三个月的项目,可以能两个月和两个半月就会完成。

但这种流程并非完美,加入一个功能在需求分析阶段就是错误的,因为它是一个迭代渐进的过程。也只能一路错下去。

 

2、对测试问题的处理

 

上面的图更能清晰看出对问题的处理过程。

  第一块面板中是开发人员未实现的功能,第二块面板中是开发完成功能,测试人员对其进行测试,发现不通过的就放回未开发的面板中,测试通过的将放到第三块面板中。

     
需要说明的是,敏捷测试在国外很流程,在内容,雷声大雨点小,推行的人很多,真正有公司引入的不多。我们所在公司千差万别,测试流程也可能有很大的不同。
对于已经工作两年一个测试员来说,从来没关注过测试流程与结构应该是个悲剧。我希望不被思想局限,所以,努力冲破一个又一个的局限。

 

 

时间: 2024-09-17 04:47:40

软件测试流程进阶----两年软件测试总结的相关文章

谈软件测试人员定位---三年软件测试总结

因为一直从事web产品的测试,我的观点并不一定适合所有的类型项目.   工作已将近三年了,虽然这三个年头里我都在积极的学习着与测试相关的技术:但是能沉淀的东西很少.相信测试同学都有类似的感觉.     不要为了测试而测试 前几天做了一个测试的PPT ,就是讲项目中要用到的测试技术,总结了半天其实实际的产品中没什么技术,熟悉需求,转化成用例,待项目上线后验证功能就OK 了:对一个自身质量要求不高的项目,我们有时候为了体现自己价值,非要在一些不痛不养的问题上揪着不放. 举个不恰当例子,某钢琴高手开了

基于开发流程的软件测试流程管理

0.引言 随着软件行业的发展.软件产品已经影响到我们社会的诸多领域,人们对软件作用的期望值也越来越高,对软件质量重要性的认识也逐渐增强. 然而,软件缺陷(bug)是伴随软件产品开发过程而产生的敷衍品,采用新的技术和方法,也不能完全消灭软件缺陷.因此,在软件开发过程中尽早地引入软件测试技术来保证软件质量,降低软件缺陷率,已经得到软件业的认可.软件开发过程中的每-个阶段都会有相应的文档和产品产生,对这些文档和产品进行严格评审和测试,可以尽早发现问题.及时找出与需求分析和项目计划中的不符合项.对软件的

protel99与protel99se两款软件对比评测

  protel99与protel99se两款软件对比评测 protel99与protel99se的区别在于内核版本差异. Protel99是一个过渡版本,其内部版本仍为3.0,即Protel98,只不过将其用Access数据库进行封装,集成到一个DDB文件之内. Protel99SE的内核是4.0的.SP6是最终版本,比较完善. 注意Protel99不能打开Protel99SE创建的DDB文档中的PCB.Sch等文档,反之而可以.

求两个软件同时监听一个端口的方法

问题描述 硬件:酒店的身份证阅读器,USB接口说明:现在有一酒店软件,可以正常刷卡读取身份证.我要另外做一个小软件,监听身份证阅读器,当这套酒店软件刷身份证的时候,我的软件能感应到有刷卡动作就行了.现在难题是,酒店软件已经占用了身份证阅读器,两个软件不能同时占用一个端口.求各位大神有没有什么好的解决办法呢 解决方案 解决方案二:无解那东西即使是USB接口也USB转COM的同一时间只能有一个程序监听端口还是从软件上下工夫吧如果那个酒店软件不是你自己的那就考虑下注入吧类似于网游外挂那种方式不过那属于

vs2008 父窗口 子窗口-用c#编写一个登陆注册系统,利用vs2013和sql server2008两个软件如何实现

问题描述 用c#编写一个登陆注册系统,利用vs2013和sql server2008两个软件如何实现 注册窗口应在哪个软件里编写,然后如何实现跳转到注册界面以及如何连入数据库,越详细越好,拜托大神指点,本人是新手,以前没用过sql server2008 解决方案 vs2013里写代码,server 2008里添加数据库建表建约束 解决方案二: vs2013是软件啊!肯定是用vinform里面写啊 解决方案三: 没有太明白你的问题,尝试回答一下看看有没有帮助,sql Server作为服务器端,和数

软件测试总结(一)

       软件测试是软件生存周期中必不可少的环节,软件的典型生存周期可以用下图来形容:                        软件测试的目的是尽可能早的发现软件缺陷并确保其得以修复,因此软件测试是提高软件质量的重要手段,大量的经验实践证明,软件测试越早参与到软件开发过程中,开发出来的软件质量相对越高,时间和物力也越经济.     根据软件工程的基本理论,多模块程序的测试共包括以下4个层次:       各阶段测试的具体内容会在以后章节具体介绍,下面介绍一下软件测试的经典技术.    

CAXA两款软件获中软协优秀软件产品奖

近日,中国软件行业协会揭晓的"2011年度优秀软件产品终审结果"名单中, CAXA实体设计软件V2011和CAXA协同管理软件V2011皆榜上有名,两款软件被授予"2011年度优秀软件产品"奖.中国软件行业协会举办的2011年度软件产品推优评选活动,是以在全国范围选拔优秀软件产品,培育著名软件品牌为目的,为广泛实施的政府采购.公共大宗采购.大型重点信息工程招标评标.遴选优秀软件产品出口做准备,经过企业申报.用户论证.技术审核.专家评审等程序阶段最终评选出来.在数千种

软件测试流程规划

一.引言 本文档规范了软件测试过程中的整体流程,明确了软件测试从开始到结束的各个阶段,以及在各阶段中的负责人.具体工作内容和必需的输入输出文档.另外,本文还介绍了各测试阶段需要的测试工具.测试点和测试步骤,并提供了各类测试文档的参考模板. 二.测试流程概述 1.流程介绍 一般来讲,软件测试是伴随着项目的立项而开始的.也就是说,软件项目一旦确立,测试工作也就开始了.在测试的过程中,前后要经过以下主要环节: 需求分析->制定测试计划->搭建测试环境->测试用例设计->测试执行->

微软的软件测试工程师——《微软的软件测试之道》

   好多人极力推荐<微软的软件测试之道>这本书,于是在网上搜索了一番,英文版的阅读起来有难度,在51CTO上发现了前第二章和第三章中文的内容.     在这个世界顶级的企业里,软件测试工程是的测试是怎样的. ------------------------------------------------------------------------------------------------      一.职位名称含义: 即使你给玫瑰花起不同的名字,它闻起来可能还是同样的香.但是,如果