软件测试流程(转)

上一篇 / 下一篇  2011-07-08 10:28:00 / 个人分类:测试管理

软件需求分析-----设计测试计划(获得测试需求------确定测试策略)-----设计测试用例-----搭建测试环境-----执行测试用例-----bug统计分析-----出具测试分析报告。
    
需求分析
需求分析(Requirment Analyzing)应该说是软件测试的一个重要环节,测试开发人员对这一环节的理解程度如何将直接影响到接下来有关测试工作的开展。
可能有些人认为测试需求分析无关紧要,这种想法是很不对的。需求分析不但重要,而且至关重要!
 
一般而言,需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等。
 
其中最基本的是软件功能需求分析,测一款软件首先要知道软件能实现哪些功能以及是怎样实现的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我们就应该知道软件是怎样来实现这些功能的,为了实现这些功能需要哪些测试设备以及如何搭建相应测试环境等,否则测试就无从谈起!
 
既然谈了需求分析,那么我们根据什么来分析呢?总不能凭空设想吧。
 
总得说来,做测试需求分析的依据有软件需求文档、软件规格书以及开发人员的设计文档等,相信管理一些规范的公司在软件开发过程中都有这些文档。
 
测试计划   
测试计划(Test Plan)一般由测试负责人来编写。
   测试计划的依据主要是项目开发计划和测试需求分析结果而制定。测试计划一般包括以下一些方面:
 
1. 测试背景
a.        软件项目介绍;
b.        项目涉及人员(如软硬件项目负责人等)介绍以及相应联系方式等。
2. 测试依据
a.        软件需求文档;
b.        软件规格书;
c.        软件设计文档;
d.       其他,如参考产品等。
3. 测试资源
a.        测试设备需求;
b.        测试人员需求;
c.        测试环境需求;
d.        其他。
4. 测试策略
a.        采取测试方法;
b.        搭建哪些测试环境;
c.        采取哪些测试工具以测试管理工具;
d.        对测试人员进行培训等。
5. 测试日程
a.        测试需求分析;
b.        测试用例编写;
c.        测试实施,根据项目计划,测试分成哪些测试阶段(如单元测试、集成测试、系统测试阶段,α、β测试阶段等),每个阶段的工作重点以及投入资源等。
6. 其他。
 
测试计划还要包括测试计划编写的日期、作者等信息,计划越详细越好了。
计划赶不上变化,一份计划做的再好,当实际实施的时候就会发现往往很难按照原有计划开展。如在软件开发过程中资源匮乏、人员流动等都会对测试造成一定的影响。所以,这些就要求测试负责人能够从宏观上来调控了。在变化面前能够做到应对自如、处乱不惊那是最好不过了。
 
测试设计
测试设计主要包括测试用例编写和测试场景设计两方面。
 
一份好的测试用例对测试有很好的指导作用,能够发现很多软件问题。关于测试用例编写,请参见前面写的《也谈测试用例》一文,里面有详细阐述。
测试场景设计主要也就是测试环境问题了。
测试环境搭建
 
不同软件产品对测试环境有着不同的要求。如C/S及B/S架构相关的软件产品,那么对不同操作系统,如Windows系列、unix、linux甚至苹果OS等,这些测试环境都是必须的。而对于一些嵌入式软件,如手机软件,如果我们想测试一下有关功能模块的耗电情况,手机待机时间等,那么我们可能就需要搭建相应的电流测试环境了。当然测试中对于如手机网络等环境都有所要求。
 
测试环境很重要,符合要求的测试环境能够帮助我们准确的测出软件问题,并且做出正确的判断。
 
为了测试一款软件,我们可能根据不同的需求点要使用很多不同的测试环境。有些测试环境我们是可以搭建的,有些环境我们无法搭建或者搭建成本很高。不管如何,我们的目标是测试软件问题,保证软件质量。测试环境问题,还是根据具体产品以及开发者的实际情况而采取最经济的方式吧。
 
测试执行     
测试执行过程又可以分为以下阶段:
单元测试→集成测试→系统测试→出厂测试,其中每个阶段还有回归测试等。
从测试的角度而言,测试执行包括一个量和度的问题。也就是测试范围和测试程度的问题。 比如一个版本需要测试哪些方面?每个方面要测试到什么程度?
 
从管理的角度而言,在有限的时间内,在人员有限甚至短缺的情况下,要考虑如何分工,如何合理地利用资源来开展测试。当然还要考虑以下问题:
1. 当测试人员测试的执行不到位、敷衍了事时该如何解决?
2. 测试效率问题,怎样提高测试效率?
3. 根据版本的不同特点是只做验证测试还是采取冒烟测试亦或是系统全面测试?
4. 当测试过程中遇到一些偶然性随机问题该怎样处理?
5. 当版本中出现很多新问题时该怎样对待?测试停止标准?
6. ……
总之,测试执行过程中会遇到很多复杂的问题,还是那句话,具体问题具体解决!本文不做过多阐述。
 
测试记录
缺陷记录总的说来包括两方面:由谁提交和缺陷描述。
 
一般而言,缺陷都是谁测试谁提交,当然有些公司可能为了保证所提交缺陷的质量,还会在提交前进行缺陷评估,以确保所提交的缺陷的准确性。
[FS:PAGE]
 
在缺陷的描述上,至少要包括以下一些方面内容:

序号
 
    
标题
    
前置条件
    
操作步骤
    
预期结果
    
实际结果
    
注释
    
严重程度
    
概率
    
版本
    
测试者
    
测试日期

 以上是描述一个bug时通常所要描述的内容,当然在实际提交bug时可以根据实际情况进行补充,如附上图片、log文件等。
另外,一个版本软件测试完毕,还要根据测试情况出份测试报告,这也是所要经过的一个环节。
 
缺陷管理
缺陷管理方面,很多公司都采取缺陷管理工具来进行管理,常见缺陷管理工具有Test Director、Bugfree等。
 
 
软件评估
     这里评估指软件经过一轮又一轮测试后,确认软件无重大问题或者问题很少的情况下,对准备发给客户的软件进行评估,以确定是否能够发行给客户或投放市场。
软件评估小组一般由项目负责人、营销人员、部门经理等组成,也可能是由客户指定的第三方人员组成。
 
测试总结
   每个版本有每个版本的测试总结,每个阶段有每个阶段的测试总结,当项目完成RTM后,一般要对整个项目做个回顾总结,看有哪些做的不足的地方,有哪些经验可以对今后的测试工作做借鉴使用,等等。测试总结无严格格式、字数限制。应该说,测试总结还是很总要的。
 
测试维护
     由于测试的不完全性,当软件正式release后,客户在使用过程中,难免遇到一些问题,有的甚至是严重性的问题,这就需要修改有关问题,修改后需要再次对软件进行测试、评估、发行。
做事情,都有一个循序渐进的过程,从计划到策略到实现。软件流程就是按照这种思维来定义我们的开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。
  目前流行的流程方法有很多种,如瀑布模型、螺旋模型、RUP模型、IPD流程等,不同的过程模型适合于不同类型的项目。
  2.测试工作流程图

    2.1测试工作总体流程图
  说明:集成测试和系统测试的反馈意见可能导致设计文档(需求或数据库)的修改。
  2.2需求阶段流程图

  2.3单元/集成测试阶段流程图

   2.4系统测试阶段流程图

   2.5压力测试流程图
  说明:压力测试为模拟用户正常使用时,系统正常工作的最小时间。

  2.6性能测试流程图
  说明:测试系统的崩溃极限(最多使用人数和数据库的极限容量)。


TAG:

 

评分:0

我来说两句

日历

« 2024-04-13  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 16104
  • 日志数: 29
  • 建立时间: 2011-05-23
  • 更新时间: 2012-02-14

RSS订阅

Open Toolbar