软件测试之

软件测试过程 1、按测试阶段划分 按测试阶段将测试过程划分为:单元测试、集成测试、系统测试,同时回归测试也可以看成是一种特殊的阶段性测试,可以发生在软件测试的

软件测试过程

1、按测试阶段划分

按测试阶段将测试过程划分为:单元测试、集成测试、系统测试,同时回归测试也可以看成是一种特殊的阶段性测试,可以发生在软件测试的任何一个阶段,也可以贯穿于整个测试阶段。

1)单元测试

     工作内容:是针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作。
     目的:检测软件模块对《详细设计说明书》的符合程度。          

2)集成测试

     工作内容:是在单元测试的基础上,将所有模块按照概要设计要求组装成子系统或者系统,验证组装后功能以及模块间接口是否正确的测试工作。
     目的:检测软件模块对《概要设计说明书》的符合程度。

3)系统测试

     工作内容:是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的测试工作.
     目的:通过与《需求规格说明书》作比较,发现软件与系统需求定义不符合或与之矛盾的地方。

4)回归测试

     工作内容:软件在测试或其他活动中发现的缺陷进行修改后,应该进行回归测试,可以发生在软件测试任何一个阶段,包括单元测试、集成测试、系统测试.
     目的:验证缺陷是否得到了正确的修复,同时确认对系统的变更没有影响以前的功能。

回归测试的策略包括:完全重复测试和选择性重复测试。

    (1)完全重复测试
          工作内容:重新执行所有在前期测试阶段建立的测试用例
          目的:确认问题修改的正确性和修改的扩散局部影响性
          特点:正确性高,但是工作量大
    (2)选择性重复测试
          工作内容:有选择地重新执行部分在前期测试阶段建立的测试用例
          目的:测试被修改的程序
          特点:工作量小,效率高,但是风险性大
       选择性重复测试具体可以细分为:
           <1>覆盖修改法:针对被修改的部分,选取或重新构造测试用例,验证没有错误再次发生的用例选择方法。
                适用项目:功能相互独立,进度压力大,系统结构设计耦合性很小的项目
           <2>周边影响法:既要包含覆盖修改法确定的用例,还要分析修改的扩散,比覆盖修改法全面
                适用项目:功能交互的项目
           <3>指标达成法:类似于单元测试方法,在重新执行测试前,先确定一个要达成的指标

回归测试的流程(以下流程适合于单元测试、集成测试和系统测试)

    (1)在测试策略制定阶段,制定回归测试策略
    (2)确定需要回归测试的版本
    (3)回归测试版本发布,按照回归测试策略执行回归测试
    (4)回归测试通过,关闭缺陷跟踪单(问题单)
    (5)回归测试不通过,缺陷跟踪单(问题单)返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试

2、按用户参与情况分

1)验收测试(UAT)

通过内部系统测试及软件配置审查后,可以开始验收测试。

     特点:(1)以用户为主。
          (2)原则上在用户所在地进行,但如经客户同意也可以在公司内模拟用户环境进行
          (3)产品验收依据是合同、《需求规格说明书》或《验收测试计划》
          (4)验收测试的结果有两种:
               软件功能、性能等质量特性与用户的要求一致,软件可以接受;
               软件功能、性能等质量特性与用户的要求不一致,软件不可以接受          

2)α测试

是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试。

     特点:在受控的环境下进行测试,开发者在用户旁,随时记下错误情况和使用中的问题
     目的:评价软件产品的FLURPS(即功能、局域化、可用性、可靠性、性能等),尤其注重产品的界面和特色。 

3)β测试

是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。

     特点:开发人员不在现场,是在开发人员无法控制的环境下进行的测试         

3、测试过程子阶段

1)单元测试

       (1)UT测试计划
            依据:LLD
            主要内容:制定单元测试计划
            输出结果:UT测试计划
       (2)UT测试设计
           依据:LLD、UT测试计划
            主要内容:制定单元测试方案
            输出结果:UT测试方案 
       (3)UT测试实现
            依据:LLD、UT测试计划、UT测试方案 
            主要内容:设计UT测试用例和规程,UT预测试项
            输出结果:UT测试用例和规程          
       (4)UT测试执行
            依据:LLD、UT测试计划、UT测试方案、UT测试用例和规程 
            主要内容:搭建测试环境UT预测试
            输出结果:UT缺陷报告、UT测试报告

2)集成测试

       (1)IT测试计划
            依据:HLD
            主要内容:制定集成测试计划
            输出结果:IT测试计划
       (2)IT测试设计
            依据:HLD、IT测试计划
            主要内容:制定集成测试方案
            输出结果:IT测试方案 
       (3)IT测试实现
            依据:HLD、IT测试计划、IT测试方案 
            主要内容:设计IT测试用例和规程,IT预测试项
            输出结果:IT测试用例和规程、
       (4)IT测试执行
            依据:HLD、IT测试计划、IT测试方案、IT测试用例和规程 
            主要内容:搭建测试环境IT预测试
            输出结果:IT缺陷报告、IT测试报告

3)系统测试

       (1)ST测试计划
            依据:SRS
            主要内容:制定系统测试计划
               从管理角度:人,资源,时间,工作量,任务分配,风险,标准
               角色: 测试经理、测试组长
            输出结果:ST测试计划
       (2)ST测试设计
            依据:SRS、ST测试计划
            主要内容:制定系统测试方案
               从技术角度:策略,方法,技术,工具,数据和环境
               角色:高级测试工程师、测试技术专家
            输出结果:ST测试方案
       (3)ST测试实现
            依据:SRS、ST测试计划、ST测试方案
            主要内容:设计ST测试用例和规程,ST预测试项
            输出结果:ST测试用例和规程、ST预测试项
       (4)ST测试执行
            依据:SRS、ST测试计划、ST测试方案、ST测试用例和规程、ST预测试项
            主要内容:搭建测试环境ST预测试,全面系统测试
            输出结果:ST缺陷报告、ST预测试报告、ST测试报告

4、测试过程模型

测试过程模型有:瀑布模型、H模型、双V模型(W模型)。

1)瀑布模型

       特点:测试活动介入的比较晚
            测试活动无组织无计划,没有体现测试过程的各种活动
       适用项目:适合小型的需求比较稳定的项目

2)H模型

       特点:增量、反复、迭代、触发
       适用项目:大型的,需求变更频繁的项目

3)双V模型(W模型)

       特点:测试执行活动在开发活动之后
            测试准备活动和开发活动是并行
            测试介入较早,在需求阶段已经介入
            测试活动是有组织,有计划,流程里面体现出测试各个阶段的活动:测试计划,设计,实现和执行
            测试活动是一个验证和确认的过程
       适用项目:中型的,需求相对比较稳定的,项目的进度压力较小