软件测试概述

首先从软件质量开始,一切围绕软件质量去开展我们的测试。软件技术、组织、流程是软件质量的铁三角。软件质量体系是软件开发的依据标准,软件开发的标准流 程有大爆炸式开发、边写边改的原始模型、瀑布模型、螺旋模型、RUP模型、IPD模型等..;软件测试模型主要以双V模型为主。针对软件开发的SRS(需 求规格说明书)、HLD(概要设计说明书)、LLD(详细设计说明书)进行需求评审,建立SRS、HLD、LLD基线,并以SRS做为ST(系统测试)的 入口准则,进行ST计划、ST设计、ST实现(测试用例、测试规约、预测试项的编写)、ST执行;以HLD做为IT(集成测试)的入口准则,进行进行IT 计划、IT设计、IT实现(IT测试用例、IT测试规程的编写)、IT执行;以LLD做为UT(单元测试)的入口准则,进行进行UT计划、UT设计、UT 实现(UT测试用例、UT测试规程的编写)、UT执行;

System Testing–系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正 确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软 件系统测试方法很多,主要有功能测试、性能测试、随机测试等等。

Integration Testing–集成测试:也叫组装测试、联合测试、部件测试、子系统测试。集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间 的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合 拍。集成测试的策略主要有大爆炸、自顶向下、自底向上、三明治、基干、基于功能等等。

Unit Testing–单元测试:单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分 之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主 要方法有控制流测试、数据流测试、排错测试、分域测试等等。

一般来讲,系统测试是黑盒测试范畴,把被测对象看做是一个黑盒子(看不到内部构造),根据SRS去测试它的功能(显示需求、隐式需求、特殊需求等..)评 价ST测试的标准也是看测试用例对SRS的覆盖度。而单元测试则相对于系统测试则不关注它的功能,而是判断程序的逻辑覆盖率,也就是说把被测对象看做一个 白盒子、透明盒子、玻璃盒子。我们能清楚的看到它的内部构造,我们评价UT测试的标准则是看Unit Test Case(单元测试用例)对程序的逻辑覆盖度。那么IT则是借于ST和UT之间的测试,主要关注于模块间,模块内部,模块于子模块的接口覆盖率,它就像一 个灰盒子,我们能看到的只有齿轮于齿轮间的咬合,而不是去分析齿轮内部构造,也不必要测试它到底能完成什么功能。