测试驱动开发

 

相信大家都知道瀑布模型(Waterfall Model),它将软件生命周期划分为计划、分析、设计、构建、测试和维护六个阶段,且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。由于早期的错误可能要等到开发后期的测试阶段才能发现,所以带来严重的后果。 V-Model就是针对瀑布模型的一个改进方案,它提倡尽早制定测试方案,尽早发现错误,尤其是严重错误。因为越到后期发现问题,返工的成本就越高。V-Model 在风险管理中有明显的效果,它每层都会对自己的输入数据和输出产物进行校验,并且会对其上一层的输出进行验证,故能在早期发现项目需求的缺陷,增加了项目可控性。 V-Model的价值在于它非常明确地展示了测试过程会存在不同级别,及这些级别和开发过程期间各阶段之间的对应关系。它告诉了我们并不是开始执行测试的时候才真正想到了测试。而是需要不断未雨稠谋来减低风险的发生。

二、 详述

1.每项测试的关注点 

(1)由谁来准备和执行这项测试; 

(2)这项测试的目标是什么; 

(3)如果缺少这项测试的话会带来什么风险; 

(4)这项测试必须的输入数据时什么; 

(5)这项测试可交付的输出产物是什么;

2.单元测试 

由程序员来负责编写单元测试计划和用例,保证被测试的程序中每一个可执行语句都被覆盖到。按过往经验统计, 每1000行代码就需要至少75个用例,可以有20%左右的浮动,大约就是60-90个用例之间。 单元测试情形大概有: 逻辑线路测试,数据测试,UI测试,模块接口测试,异常情况测试等。 

3.集成测试 

由系统设计人员来负责集成测试。将已经分别通过测试的单元按设计要求组合起来再进行测试,保证在系统相关组件在集成后各功能与与用户业务需求的一致性。包括测试每个功能需求点,整个运行流程,数据分发,和检查单元接口,保证测试数据完整性等。 集成测试分为自顶向下和自底向上两种方法。自顶向下是从主控模块开始,沿着控制层次向下集成,逐渐把各个模块结合起来。底部向上是从“原子”模块开始集成以进行测试。 集成测试与单元测试的区别是: 单元测试是保证所测试的每个独立单元在功能上的正确性,主要从输入条件和输出结果进行判断。集成测试不仅需要考虑各单元模块之间的相互作用,而且需要考虑到整个系统的应用环境,其衡量标准是集成测试计划中要求的内容。 

4.系统测试

由系统设计人员来负责测试。系统测试是在集成测试之后,与某些硬件,软件,数据和人员等系统相关元素结合起来,在实际运行环境下对系统进行严格的测试,来发现软件的潜在问题,保证系统的运行。系统测试一般由若干个不同测试组成,目的是验证系统各部件能否正常工作。 

5.性能测试 

性能测试由系统架构人员来负责测试。性能测试包括了压力,容量,性能,容错性和安全方面的测试。 

(1)压力测试是模拟实际应用的环境及用户使用过程的负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。 

(2)容量测试是预先分析出反映软件系统应用特长的某项指标的极限量。 

(3)性能测试是通过测试确定系统运行时的性能表现,如得到运行速度、响应时间、占有系统资源等方面的系统数据。 

(4)容错测试是检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。 

(5)安全测试是检查系统对非法侵入的防范能力。安全测试期间人员假扮非法入侵者,采用各种办法试图突破防线。

6.用户验收测试 

验收测试直接邀请用户参与测试,通常由业务专家或用户进行,以确认产品能真正符合用户业务上的需要。可以让最终用户将其用于执行软件的既定功能和任务。根据验收测试计划和项目验收准则编制的测试用例进行评审。 

7.上线测试 

上线测试是保证软件能正确地被安装和配置到实际环境下或者是新环境下,所有的功能都能运行正常。


你可能感兴趣的:(测试驱动开发)