温故而知新。实践出真知。

浅析“软件测试生命周期”的影响因素

上一篇 / 下一篇  2011-04-03 22:07:03 / 个人分类:测试管理

      软件测试生命周期(Software Testing Life Cycle)定义了软件生命周期(System Development Life Cycle)内的全部或主要测试活动,搞清楚软件测试生命周期定义的背景和出发点,对于指导和规范测试活动具有重要意义。

查阅了国外同行对软件测试生命周期的描述,比较有代表性的有以下几个版本:

版本一(Title: Software testing life cycle)

从严格划分软件生命周期内开发和测试活动的角度,将STLC划分为以下阶段:

l      Test Planning

l      Test Analysis

l      Test Design

l      Construction and Verification

l      Testing Cycles

l      Final Testing and Implementation

l      Post Implementation

浅析:

该划分过于强调测试活动在项目团队活动中的独立性,测试活动可定义、可重复。缺点似乎也比较明显:测试活动的管理缺乏灵活性,测试活动对产品定义、开发等活动工作输出的依赖性比较强,测试进度可能因此而变得不可控。本划分,适用于产品开发各阶段边界定义清晰的软件开发模式,同时要求项目中各方(产品定义、开发、测试等)的进度可控。

可参考:http://editorial.co.in/software/software-testing-life-cycle.php

版本二(Title: Software testing life cycle)

从建立测试过程模型的角度对软件生命周期内的测试活动进行划分:

l      Models for testing, economics of testing

l      High level test planning

l      Component Testing(also known as unit, module, program testing)

l      Integration testing in the small

l      System testing(non-functional and functional)

l      Integration testing in the large

l      Acceptance testing

l      Maintenance testing

浅析:

该划分类似W模型(V模型的改进型),强调宏观测试活动(绿色部分)的指导意义,突出微观测试活动的细微差别(蓝色部分),并将软件维护阶段的测试活动纳入软件测试生命周期。不足之处:测试过程的可重复性比较差。本划分,适用于规模比较大或系统比较复杂的软件产品,测试和开发模式都倾向于增量模型(Incremental Model)。

可参考:http://www.slideshare.net/gueste730d5/software-testing-life-cycle

版本三(Title: Life Cycle of Testing Process)

从协调项目内产品定义、开发、测试活动同步展开的角度,将STLC划分为以下阶段:

l      Requirements stage

l      Test Plan

l      Test Design

l      Design Reviews

l      Code Reviews

l      Test Cases preparation

l      Test Execution

l      Test Reports

l      Bugs Reporting

l      Reworking on patches

l      Release to production

浅析:

该划分强调测试全程参与整个软件的开发周期,保持测试活动独立性(蓝色部分)的同时,也体现了测试应尽早介入的原则,是比较理想的一种开发测试模式。本划分,适用于敏捷等开发模式,但对项目团队的人员能力和项目管理成熟度要求比较高。

可参考:http://www.exforsys.com/tutorials/testing/life-cycle-of-testing-process.html

比较以上三个不同版本的描述,似乎可以发现软件测试生命周期的定义受以下因素的影响:

(1)      软件开发过程模型。

(2)      软件规模和复杂度,甚至软件体系结构(比如Component Testing,不是所有的软件都适用)。

(3)      项目团队整体人员能力水平和项目管理成熟度(比如敏捷开发模式)。

当我们接手一个新的测试任务时,对项目的上述特点进行分析,灵活运用各版本定义的优点,规划适合项目自身特点的软件测试生命周期,对于指导我们从全局来规范和优化测试活动是很有意义的。

 

初次发布:2011-04-03

本次修改:2012-02-01 


TAG: STLC

 

评分:0

我来说两句

Open Toolbar