软件测试中的“黑盒”与“白盒”

 软件测试中,最常听到“黑盒测试”与“白盒测试”,它们是软件测试中最基本的测试方法。

  那么究竟何为“黑盒”,何为“白盒”呢?下面就对其概念与常用方法进行一下介绍。

  黑盒测试:

  也称功能测试、数据驱动测试,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。

  概念:黑盒测试是从一种从软件外部对软件实施的测试,也称功能测试或基于规格说明的测试。其基本观点是:任何程序都可以看作是从输入定义域到输出值域的映射,这种观点将被测程序看作一个打不开的黑盒,黑盒里面的内容(实现)是完全不知道的,只知道软件要做什么。因无法看到盒子中的内容,所以不知道软件是如何实现的,也不关心黑盒里面的结构,只关心软件的输入数据和输出结果。

  检测软件功能能否按照需求规格说明书的规定正常工作,是否有功能遗漏;

  检测是否有人机交互错误,是否有数据结构和外部数据库访问错误,是否能恰当地接收数据并保持外部信息(如数据库或文件)等的完整性;

  检测行为、性能等特性是否满足要求等; 检测程序初始化和终止方面的错误等。

  优点:

  ① 与软件具体实现无关,如果软件实现发生了变化,测试用例仍可用;

  ② 设计黑盒测试用例可以和软件实现同时进行,因此可压缩项目总开发时间。

  黑盒测试常用方法

  等价类划分

  边界值分析

  因果图

  决策表分析

  等价类划分

  完全不考虑程序的内部结构,只根据程序规格说明书对输入范围进行划分,把所有可能的输入数据,即程序输入域划分为若干个互不相交的子集,称为等价类,然后从每个等价类中选取少数具有代表性的数据作为测试用例,进行测试。

  划分原则:区间、数值、数值集合、限制条件或规则、细分等价类

  边界值分析

  边界值和等价类密切相关,输入等价类和输出等价类的边界是要着重测试的边界情况。在等价类的划分过程中产生了许多等价类边界。边界是最容易出错的地方,所以,从等价类中选取测试数据时应该关注边界值。

  在等价类划分基础上进行边界值分析测试的基本思想是,选取正好等于、刚刚大于或刚刚小于等价类边界的值作为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。

  对于一个n变量的程序,边界值分析测试会产生4n+1个测试用例。

  因果图

  (1)确定软件规格中的原因和结果。分析规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

  (2)确定原因和结果之间的逻辑关系。分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。

  (3)确定因果图中的各个约束。由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。

  (4)把因果图转换为决策表。

  (5)根据决策表设计测试用例。

  决策表分析

  在所有的黑盒测试方法中,基于决策表的测试是最严格,最具有逻辑性的测试方法。

  决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。

  它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。

  步骤: 

  (1)列出所有的条件桩和动作桩。

  (2)确定规则的个数。

  (3)填入条件项。

  (4)填入动作项,得到初始决策表。

  (5)简化决策表,合并相似规则。

  对于n个条件的决策表,相应有2n个规则

  决策表合并原则:即若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。

  白盒测试:

  也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

  白盒测试常用方法

  基本覆盖标准:逻辑驱动、循环、基路测试等,主要用于软件验证。

  “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

  “白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。

  原因:

  第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

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

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

  白盒测试逻辑驱动方法

  语句覆盖

  判定覆盖

  条件覆盖

  判定/条件覆盖

  条件组合覆盖

  路径覆盖

如果有任何疑问,欢迎添加qq群测试入门大神 755431660 共同学习~
??

原文地址:https://www.cnblogs.com/testor/p/9001693.html

时间: 2024-10-04 08:49:52

软件测试中的“黑盒”与“白盒”的相关文章

黑盒、白盒、灰盒测试的基本概念

黑盒: 对于一段程序,对其测试时,不需要知道内部结构和特性,在输入接口处输入激励,观察输出是否正确. 主要用于软件界面和功能测试. 实际应用中,由于输入为无穷个,不仅要测试所有合法的输入,也要测试不合法但是可能发生的输入. 白盒: 白盒测试也称结构测试和逻辑驱动测试,知道程序内部结构,验证内部每条通路是否能正常工作. 也就是穷举路径测试,从检查程序的逻辑出发.主要用于软件验证. 但是, 第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序. 第二,穷举路径测试不可能查出程序中

黑盒和白盒

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求. 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 白盒测试和黑盒测试是根据对软件代码的可见性,采用的测试方法:凡是针对代码本身的测试,都可以看做是白盒测试,凡是不考虑代码如何实现,只对代码能实现的功能进行的测试都可以看作黑盒测试. 1.黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在

软件测试不再黑盒— threadingtest带来第二代白盒覆盖率技术

软件测试不再黑盒- threadingtest带来第二代白盒覆盖率技术 穿线测试对于测试界的一个重大创新在于,在白盒测试理论出现数十年以后,上海零一拼装信息技术有限公司结合在测试理论方面十余年的潜心研究,率先提出了第二代覆盖率技术,这绝对不是一个口号,而是ZOA真正对于白盒测试的理解以及对于标准第三方测试服务的深度理解经过数年的基础研究以及2年有余的研发而推出的达到商用标准的技术.现在先让我们温习下经典的测试理论: 1.测试方法论 黑盒功能测试法 黑盒功能测试法, 是把要测试的软件看成一个 "黑

关于白盒与黑盒

开通黄钻 什么是黑盒测试和白盒测试? 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试.黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查. 黑盒测试软件的黑盒测试意味着测试要在软件的接口处进行.这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说

浅析白盒审计中的字符编码及SQL注入

尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk,作为自己默认的编码类型.也有一些cms为了考虑老用户,所以出了gbk和utf-8两个版本. 我们就以gbk字符编码为示范,拉开帷幕.gbk是一种多字符编码,具体定义自行百度.但有一个地方尤其要注意: 通常来说,一个gbk编码汉字,占用2个字节.一个utf-8编码的汉字,占用3个字节.在php中

JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台

近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对自己或身边开发人员,对java语言更熟悉,为了后期维护打算采用java写一个这样的平台.另外白盒代码安全扫描也有Fortify等收费软件,或依赖PMD做代码分析,不过比如新增了什么安全问题,需要自定义或扩展就比较麻烦. 比如一个简单的:现在用struts2存在漏洞,现在需要升级到2.3.28版本,于

揭秘白盒与黑盒测试之间的秘密!-附加思维导图

结合了工作经验,写出了这篇文章,全是干货和经验分享.用您5分钟时间阅读完,希望能对您有帮助! 白盒测试 白盒测试(White-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能. 对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析.静态错误分析.动态检测等.目前测试工具主要支持

SafeNet推出行业首款白盒password软件保护解决方式

数据保护领域的全球率先企业SafeNet公司日前宣布,推出行业首款採用白盒安全技术的的软件保护方案.SafeNet 圣天诺 软件授权与保护解决方式如今纳入了新的功能,可在"白盒" 环境中保护安全算法免受攻击.此前,攻击者一般会随心所欲地观察和改变当中动态源代码的运行和内部算法的细节. 传统上,在软件保护技术中,安全算法一般会在攻击者的眼皮底下运行.没有黑盒保护密钥,因此应用程序的运行可一步一步地监视,全部訪问过的数据均为可见.为了更好地保护密钥不受损害,我们须要採用一种不同的方法. S

白盒測试

大家都熟知软件測试的方法分为黑盒測试和白盒測试,当中的黑盒測试是功能測试比較简单这里就不再赘述.以下主要区分白盒測试中的几种比較easy弄混的測试方法. 软件測试中最经常使用的是逻辑覆盖法,全部可用的方法按覆盖程度从弱到强的顺序分为:语句覆盖.判定覆盖.条件覆盖.判定-条件覆盖.条件组合覆盖.路径覆盖. 仅仅要搞清楚本质,事实上这几种的測试方法就没那么难了. 例如以下图 这张图有两个推断语句分支形成4条路径.分析各种覆盖所能覆盖的路径条数. 语句覆盖:每一条语句 都要运行一遍比如:ace路径运行