V模型与测试级别[1]

2015-06-24

目录

2.1.1 V模型
2.2.1 单元测试
2.2.2 集成测试
2.2.3 系统测试
2.2.4 验收测试

2.1.1 V模型


返回

  • 单元测试:验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。单元测试一般由开发人员来执行,首先设定最小的测试单元,然后通过设计相应的测试用例来验证各个单元功能的正确性;
  • 集成测试:检查多个单元是否按照系统概要设计描述的方式协同工作。集成测试的主要关注点是系统能够成功编译,实现了主要的业务功能,系统各个模块之间数据能够正常通信等;
  • 系统测试:验证整个系统是否满足需求规格说明;
  • 验收测试:从用户的角度检查系统是否满足合同中定义的需求或者用户需求;

V模型的特点

  • V模型体现的主要思想是开发和测试同等重要,左侧代表的是开发活动,而右侧代表的是测试活动;
  • V模型针对每个开发阶段,都有一个测试级别与之想对应;
  • 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应;
  • V模型适用于需求明确和需求变更不频繁的情形;

2.2.1 单元测试


返回

基本含义

  • 单元测试的对象:可以是模块、类、函数和对象等,不同的软件语言来决定;
  • 单元测试的主要目的:是验证单元是否满足了详细设计规格说明,发现需求和设计中的错误;
  • 单元测试设计的主要输入(测试依据):是详细设计规格说明、软件设计和数据模型等;
  • 单元测试的测试技术:主要采用白盒测试技术,黑盒测试技术作为单元测试的辅助;
  • 单元测试应该覆盖功能需求和非功能需求;
  • 单元测试经常会使用测试驱动的方法(测试驱动开发);

测试环境

  • 单元测试处理的对象直接来自开发人员,通常由开发人员来开展单元测试;
  • 单元测试可能并不能形成完成的系统,因此需要驱动模块和桩模块的支持: 
    • 桩模块:用以模拟被测模块工作过程中所调用的模块,他们一般只进行很少的数据处理,例如打印入口和返回;
    • 驱动模块:用以模拟被测模块的上级模块,它接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印相应的结果;
  • 驱动模块和桩模块是测试使用的软件,而不是软件产品的组成部分,但它需要一定的开发费用;

单元测试关注点

  • 单元模块接口参数;

    • 实际参数和形式参数的个数是否相同;
    • 实际参数和形式参数的属性是否匹配;
    • 调用函数的参数顺序、个数和属性是否匹配;
  • 单元模块局部数据结构;
    • 不合适或者不相容的类型说明;
    • 变量没有初始化;
    • 不正确的变量名;
  • 单元模块的独立路径测试;
    • 误解或者用错了算符优先级;
    • 混和类型运算;
  • 与控制流相关的测试;
    • 错误的修改了循环变量;
    • 循环中止条件不可能出现;
  • 与异常处理相关的测试;
    • 输出的错误信息难以理解;
    • 错误的信息和实际的错误不符;

2.2.2 集成测试


返回

基本含义

  • 集成测试,又叫组装测试、联合测试等;
  • 集成测试是对组件之间的接口进行测试,以及和系统其他部分的相互作用;
  • 最简单的形式是两个已经测试的单元组合成一个组件,来测试它们之间的接口和数据交换;
  • 集成测试的主要工作:把单元测试通过的各个模块逐步集成在一起,来测试数据是否能够正确传递和调用,以及各个模块是否能正确的协同工作;
  • 集成测试可以应用在不同的测试级别,比如单元集成测试、系统集成测试等;

集成测试的关注点

  • 单元模块是否传输了错误的数据,或者没有传输数据;
  • 接受数据的单元不能操作或者崩溃,比如单元功能缺陷、接口格式不兼容、协议不兼容等;
  • 单元之间通讯正常,但是使用不同的方法来解析收到的数据,比如规格说明矛盾、理解错误等;
  • 数据能正常传输,但是传输时间错误,比如时序问题,或者传输的时间间隔太短,比如吞吐量、负荷、容量等问题;

2.2.3 系统测试


返回

基本含义

  • 系统测试是将已经集成好的软件系统,作为计算机系统的一部分,与计算机硬件、某些支持软件、数据和人员等系统元素结合起来,在实际运行环境下对计算机系统进行一系列严格有效的测试;
  • 系统测试关注的是项目或产品范围中定义的整个系统或产品的行为;
  • 在系统测试中,测试环境应该尽量和最终使用的目标或产品使用的环境相一致,从而减少和环境相关的失效;

测试目标

  • 系统测试的目标是确认整个系统是否满足了规格说明中的功能和非功能需求,以及满足的程度;
  • 系统测试应该发现由于需求不正确、不完整或实现和需求不一致而引起的失效,并识别没有文档化或被忘记的需求;
  • 常见的系统测试包括压力测试、容量测试、性能测试、安全测试、容错测试等;

为什么系统测试

  • 在较低的测试级别,测试主要是针对技术规格说明的,即从软件开发者的技术观点角度加以考虑。而系统测试从客户或用户的观点来考虑整个系统。测试人员确认系统是否完全正确的满足了需求。
  • 许多功能和系统属性是从系统的所有组件相互调用的过程中得到的,因而只能在整个系统级别才能看到,也只能在这个时候才能进行观察并测试。

2.2.4 验收测试


返回

基本含义

  • 验收测试通常是由使用系统的用户来进行,同时系统的其他利益相关者也可能参与其中;
  • 验收测试目的是通过验收测试,对系统功能、系统特定部分或特定的系统非功能特征进行测试;
  • 发现缺陷不是验收测试的主要目标,验收测试也可以用来评估系统是否可以在市场部署、用户使用系统的准备情况等;

验收测试类型

  • 合同验收测试
  • 规范验收测试
  • Alpha和Beta测试
  • 用户验收测试
  • 运行(验收)测试

参考

[1] 软件生命周期中的测试 [下载]

V模型与测试级别的更多相关文章

  1. V模型

    V模型是Kevin Forsberg & Harold Mooz在1978年提出的,V模型强调测试在系统工程各个阶段中的作用,并将系统分解和系统集成的过程通过测试彼此关联.V模型从整体上看起来 ...

  2. 8、V模型、W模型、H模型

    软件测试&软件工程 ·软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分.·在软件工程.项目管理.质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值 ...

  3. 测试V模型

    一:测试V模型 RAD(Rap Application Development 快速引用开发)模型是软件开发过程中的一个重要模型,由于模型构图形似字母V,所以又称软件开发的V模型.他通过开发和测试同时 ...

  4. 测试模型---V模型

    软件测试&软件工程 软件测试是软件工程不可缺少的一部分. 一.V模型简介 需求分析 验收测试 概要设计 系统测试 详细设计 集成测试 编码 单元测试   (1)单元测试: 又称模块测试,针对软 ...

  5. 软件测试模型汇总-V模型,W模型,X模型,H模型

    V模型 在软件测试方面,V模型是最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它的模型.V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性,由此也和瀑布模型一样地受到 ...

  6. 开发模型之V模型

    1.模型目的: V模型的目的在于改进软件开发的效率和效果. 2.常见理论性描述:  V模型从整体上看起来,就是一个V字型的结构,由左右两边组成. 左边的下划线分别代表了需求分析.概要设计.详细设计.编 ...

  7. 什么是V模型?使用SDLC和STLC学习案例研究

    本教程详细介绍了软件/系统开发生命周期(SDLC),如瀑布循环和迭代循环,如RAID和Agile.此外,它继续解释测试的V模型和STLC(软件测试生命周期). 假设为您分配了一项任务,即为客户开发自定 ...

  8. 软件测试模型---V模型、W模型、H模型、X模型

    人活着一定要有目标,确定自己喜欢什么,再坚持做下去,那么他过得一定不会太差. 煽情的话,不多说,本文主要讲解:"软件测试模型-V模型.W模型.H模型.X模型". 1.V模型 V模型 ...

  9. RAD,V模型

    介绍: RAD(Rap Application Developmen快速应用开发t)模型是软件开发过程中的一个重要模型,由于模型构图类似字母V,所以又称为软件开发的V模型.它通过开发和测试同时进行的方 ...

随机推荐

  1. 查看和调试Qt源码(动态编译的QT也可进入源码)good

    简述 在调试程序的时候,有时需要调试进入 Qt 源码,这不仅有利于我们了解内部实现机制,而且对于解决一些隐蔽性问题很有帮助. 都知道 F11 是“单步进入”,可是在调试的过程中,按下 F11 却无法进 ...

  2. curl教程

    转载自:http://inspire.twgg.org/c/programming/php-curl-teaching.html 目前最完整的CURL中文说明,学PHP的要好好掌握,有很多的参数,大部 ...

  3. C#应用视频教程2.3 OPENGL虚拟仿真介绍

    本节最重要的一个内容,就是让视野可以平移+旋转+缩放(就像打CS游戏一样以第一人称视角去观察物体,如果可能的话W,S,A,D四个按键控制人物移动,还有鼠标控制视角),本节最重要的一个概念就是设置观察视 ...

  4. Scala数据类型中的Symbol(符号文本)

    1.属于基本类型,被映射成scala.Symbol 2.当两个Symbol值相等时,指向同一个实例 3.Symbol类型存在的意义:作为不可变的字符串,同时不必重复地为相同对象创建实例,节省资源.这类 ...

  5. 算法笔记_047:复数运算(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 编程实现两个复数的运算.设有两个复数 和 ,则他们的运算公式为: 要求:(1)定义一个结构体类型来描述复数. (2)复数之间的加法.减法.乘法和除法 ...

  6. android 实现摇一摇功能

    实现“摇一摇”功能,其实很简单,就是检测手机的重力感应,具体实现代码如下: 一.在 AndroidManifest.xml 中添加操作权限 二.实现代码 package com.xs.test; im ...

  7. 在 HTML 中使用JavaScript

    <script>元素 属性     async:可选.async 属性规定一旦脚本可用,则会异步执行,表示应该立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本.a ...

  8. [转发]MVC WebAPI get和post请求

    转自:http://www.cnblogs.com/babycool/p/3922738.html 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用J ...

  9. [转发]jQuery Validation范例

    验证操作类formValidatorClass.js参照文件有: http://www.cnblogs.com/easyinsc/archive/2009/02/27/1407826.html htt ...

  10. Windows Store GIF player 诞生记

    在Win8上面,Image source切换的时候有bug.当我们短时间定时切换的时候,Image不能正常地显示对应的图片.Image控件又不支持GIF播放,所以GIF图片的播放就是一个非常头痛的问题 ...