白盒测试

依据:LLD(详细设计)

目的:利用不同的逻辑率到达某种程度的代码覆盖率(考虑全部程度的代码覆盖率会增加本)

步骤:静态分析和动态分析

优点:迫使测试人员去了解软件的实现

     检测代码中的每条路径和分支

     揭示隐藏在代码中的错误

     对代码的测试进行比较彻底

缺点:白盒测试投入较大,成本较高

      白盒测试不验证规格的正确性

      无法检查代码中遗漏的路径和数据敏感性错误

黑盒测试

依据:SRS(Software requriement specification软件需求说明书)

目的:从质量特性的不同方面,对软件进行测试,检测该软件是否实现了SRS中所有显示和隐式的需求

步骤:构造输入和预期输出,通过一定的操作步骤来测试软件。

优点:对较大的代码单元来说,黑盒测试比白盒测试的效率高

      测试人员不需要了解实现得细节,包括特定的编程语言

      测试人员和编程人员是相互独立的

      从用户的角度进行测试,很容易被接受和理解

      有助于暴露任何与闺阁不一致或者歧异的地方

      测试用例可以在规格完成后马上进行

缺点:不能测试程序内部特定部位

          如果程序未执行的代码无法发现

          没有清晰的和简明的规格,测试用例很难被设计

 

via: http://www.ltesting.net/ceshi/ceshijishu/gncs/2009/0619/163872.html

从哲学观点看,分析问题和解决问题的方法有两种:白盒子方法和黑盒子方法。所谓白盒子方法就是能够看清楚事物的内部,即了解事物的内部结构和运行机制,通过剖析事物的内部结构和运行机制,来处理问题。所谓黑盒子方法是没有办法或不去了解事物的内部结构和运行机制,而把整个事物看成一个整体——黑盒子,通过分析事物的输入、输出以及周边条件来分析和处理问题。软件测试具有相类似的哲学思想。根据测试足针对系统的内部结构还是针对具体实现算法的角度来进行,分别称为白盒测试和黑盒测试。

1黑盒测试法(black-box testing)

     黑盒测试,也称功能测试或数据驱动测试。它不管程序内部结构是什么样的,只是从用户出发,根据产品应该实现的实际功能和已经定义好的产品规格,来验证产品所应该具有的功能是否实现,每个功能是否都能正常使用,是否满足用户的要求。

    在测试时,把程序看作一个不能扣开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试人员针对程序接El和用户界面进行测试,只检查程序功能足否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

黑盒测试主要用于发现以下情况:

·  是否有不正确或遗漏了的功能;

·  在接口上t能否正确地接受输入数据,能否产生正确的输出信息;

·  访问外部信息是否有错;

·  性能上是否满足要求;

·  界面是否错误,是否不美观;

·  初始化和终止错误。

黑盒测试方法主要用于软件确认测试。其其体方法有等价类划分、边界值分析、错误推测法、因果图等。

    黑盒测试方法着眼于程序外部结构,不考虑内部逻辑结构,针对软件界面和软件功能进行测试。在用黑盒法测试时,必须在所有可能的输入条件和输出条件中确定测试数据。

   黑盒测试中不可能做到穷举测试,因此局限于功能测试是远远不够的,还要结合白盒测试方法,进行逻辑和路径测试。

2白盒测试法(white—box testing)

    白盒测试,也称结构测试或逻辑驱动测试,也就是己知产品的内部工作过程,清楚最终生成软件产品的计算机程序的结构和语句,按照程序内部的结构测试程序·测试程序内部的变量状态、逻辑结构、运行路径等,枪验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。主要用于软件验证。白盒测试的主要方法有逻辑覆盖、基本路径测试等。

    白盒测试要求全面了解程序内部逻辑结构和处理过程,以检查处理过程的细节为基础,要求对程序的结构特性做到一定程度的覆盖,对所有逻辑路径进行测试,并检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。自盒测试法是穷举路径测试,但贯穿程序的独立路径数可能是一个天文数字,所以也不可能进行穷举测试。企图遍历所有的路径是很难做到的,即使每条路径都测试了,覆盖率达到100%,程序仍可能出错。

    .  穷举路径测试绝不能查出程序违反了设计规范,即程序在实现一个不是用户需要的功能。

    .  穷举路径测试不可能查出程序中因遗漏路径而出错。

    .  穷举路径测试可能发现不了一些与数据相关的错误。

     白盒法是“基于覆盖的测试”,应朝着提高覆盖率的方向努力,尽可能多地进行测试,找出那些被忽视的错误。一般来说,白盒测试的原则是:

    ·  保证每个模块中所有独立路径至少被使用一次。

    .  对所有逻辑值均测试为真值(true)和假值(false)。

    .  在EF边界及可操作范围内运行所有循环。

    ·  检查内部数据结构以确保其有效性。

     综上所述,白盒测试用例的常见设计方法有逻辑覆盖、循环覆盖和基本路径测试。逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组台覆盖和路径覆盖。

 

via: javascript:void(0)

白盒测试

一、定义

白盒测试是一种测试用例设计方法。在这里,盒子指的是被测试的软件,白盒,顾名思义即是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。因此,白盒测试需要对系统内部的结构和工作原理有一定的了解,并且基于这个知识来设计你的测试用例。 

二、使用白盒测试方法产生的测试用例能够完成的功能

(1)保证一个模块中的所有独立路径至少被使用一次。

(2)对所有逻辑值均测试true和false。

(3)在上下边界以及可操作范围内运行所有循环。

(4)检查内部数据结构以确定其有效性。 

三、白盒测试的常用技术

(1)静态分析技术

(2)动态分析技术

(3)测试数据生成

(4)覆盖率:语句覆盖,判定覆盖,条件覆盖,路径覆盖 

黑盒测试

一、定义

黑盒测试又叫功能测试。这是因为在黑盒测试中,主要关注于被测试软件的功能的实现,而不是内部逻辑。 

二、黑盒测试用于发现的错误 

(1)功能错误或遗漏

(2)界面错误

(3)数据结构或外部数据库访问错误

(4)性能错误

(5)初始化和终止错误 

三、黑盒测试的常用技术

(1)没有用户参与的黑盒测试

(2)有用户介入的黑盒测试 

四、黑盒测试的方法

在黑盒测试中,我们不依据代码来决定测试用例,而是在了解需要解决的问题的情况下,组织四个方面的测试数据:易于计算的数据,典型数据,边界/极端数据,假数据。