相信大家都知道瀑布模型(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.上线测试
上线测试是保证软件能正确地被安装和配置到实际环境下或者是新环境下,所有的功能都能运行正常。
分享到:
相关推荐
测试驱动开发(Test-Driven Development,简称TDD)是一种敏捷软件开发的技术,以测试作为开发过程的中心环节。它倡导在编写产品代码之前先编写测试代码,确保产品代码能够通过这些测试。这种方法与传统的开发方式...
《Java测试驱动开发》介绍如何将各种TDDzui佳实践应用于Java开发,主要内容包括:用Java语言进行TDD会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD优点及开发中应注意的主要问题;TDD是如何通过...
要使测试驱动开发在软件行业中得以繁荣兴盛,需要一些条件,《C#测试驱动开发》从讨论这些条件开始。软件开发发展到今天,有其历史和特定的条件,理解这些很重要。避免重复过去的错误也很重要。在自己当前的开发实践...
极限编程反其道而行之,主张采用测试驱动开发(TDD)的方法,即通过测试定义所要开发的功能的接口,然后实现功能的开发过程。TDD通过不断地测试推动代码的开发,既简化了代码,又保证了软件质量。本书采用“手把手”...
《测试驱动开发》是Kent Beck的经典著作,这本书深入探讨了测试驱动开发(TDD)这一软件开发实践。TDD是一种编程方法论,它强调在编写实际功能代码之前,先编写测试用例,以此来指导软件设计和编码过程。通过这种...
### 测试驱动开发(TDD)概述 测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法论,它要求在编写实际功能代码之前先编写测试用例。这种方法有助于确保代码的质量,并使得代码更加健壮、易于维护...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,它的核心思想是先编写测试用例,再编写满足这些测试用例的代码。这种方法强调在编码之前,先明确需求并创建能够验证功能是否正确的测试。TDD...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,由Kent Beck在其著作《测试驱动开发:通过实例》中提出并详尽阐述。这种方法主张先编写自动化测试用例,然后再编写满足这些测试的代码,从而...
花井志生*的《C现代编程(集成开发环境设计模 式*限编程测试驱动开发重构持续集成)》从使用C语 言进行嵌入式开发的特点入手,主要讲解了如何将集 成开发环境、设计模式、*限编程、测试驱动开发、 重构、持续集成这些...
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,由Kent Beck在其同名著作《测试驱动开发》中提出。这种方法主张先编写测试用例,再编写实现功能的代码,以此来驱动开发过程,确保代码的质量...
《java测试驱动开发》 源码 本书介绍如何将各种TDD最佳实践应用于Java开发,主要内容包括:用Java语言进行TDD会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD优点及开发中应注意的主要问题;TDD是...
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。本文从开发人员使用的角度,介绍了 TDD 优势、原理、过程、原则、测试技术、Tips 等方面。 背景 一个...
"TDD测试驱动开发.pptx" TDD 测试驱动开发是一种软件开发方法,它强调通过编写自动化测试来驱动整个开发过程。TDD 是敏捷开发中的一个核心实践和技术,也是一种设计方法论。其主要包括两方面:测试先行和代码重构。...
### Python测试驱动开发 #### 知识点概览 1. **测试驱动开发(TDD)的概念** - 定义与原则 - TDD在软件开发生命周期中的作用 - 实施TDD的好处与挑战 2. **Python与测试驱动开发** - Python作为TDD的理想语言 -...
测试驱动开发(TDD)是一种敏捷软件开发技术,它要求开发者在编写功能代码之前先编写测试代码。这种方法提倡先写失败的单元测试,然后编写刚好足够使测试通过的代码,最后通过重构来提高代码的质量。王晓毅所著的...