什么是白盒测试_什么是白盒测试什么是黑盒测试 - CSDN
精华内容
参与话题
  • 什么是白盒测试什么是黑盒测试?

    千次阅读 2011-12-09 16:37:09
    答:白盒测试和黑盒测试是根据对软件代码的可见性,采用的测试方法;凡是针对代码本身的测试,都可以看做是白盒测试,凡是不考虑代码如何实现,只对代码能实现的功能进行的测试都可以看作黑盒测试。 black box ...
    答:白盒测试和黑盒测试是根据对软件代码的可见性,采用的测试方法;凡是针对代码本身的测试,都可以看做是白盒测试,凡是不考虑代码如何实现,只对代码能实现的功能进行的测试都可以看作黑盒测试。
    black box testing focus on functional requirements,attempts to find following errors:
    1.incorrect or missing functions;
    2.interfaces errors;
    3.errors in data structures or extenal database access;
    4.performance errors;
    5.initialisation and termination errors

    white box testing test control structure of a procedural design can derive test cases to ensure:
    1.all independent paths are exercised at least once;
    2.all logic decisions are exercised both ture and false paths;
    3.all loops are executed at their boundaries and within operational bounds;
    4.all internal data structure are exercised to ensure validity;

    白盒与黑盒测试什么区分?

    1、黑盒测试

      黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。


    2、白盒测试

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

      “白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。

    软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:
    – 对程序模块的所有独立的执行路径至少测试一次;
    – 对所有的逻辑判定,取 “ 真 ” 与取 “ 假 ” 的两种情况都至少测试一次;
    – 在循环的边界和运行界限内执行循环体;
    – 测试内部数据结构的有效性,等。
    具体包含的逻辑覆盖有: – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。

    a、白盒测试技术 (White Box Testing) :深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,在 JAVA平台使用 Xunit 系列工具进行测试, Xunit 测试工具是类一级的测试工具对每一个类和该类的方法进行测试。

    b、黑盒测试技术( Black Box Testing):黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面

    c、正确性 (Correctness) :计算结果,命名等方面。

    d、可用性 (Usability) :是否可以满足软件的需求说明。

    e、边界条件 (Boundary Condition) :输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。

    f性能 (Performance) : 正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。 J2EE技术实现的系统在性能方面更是需要照顾的,一般原则是 3 秒以下接受, 3-5 秒可以接受, 5秒以上就影响易用性了。如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题

    g、压力测试 (Stress) :多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。如果有负载平衡的话还要在服务器端打开监测工具 , 查看服务器 CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息。如果有必要的话必须进行性能优化 ( 软硬件都可以 )。这里的压力测试针对的是某几项功能。

    h、错误恢复 (Error Recovery) :错误处理,页面数据验证,包括突然间断电,输入脏数据等。

    i、安全性测试 (Security):这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。破坏性测试时任意看了一些资料后得知 , 这里面设计到的知识 \内容可以写本书了 , 不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的 web更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。

    j、 兼容性 (Compatibility) :不同浏览器,不同应用程序版本在实现功能时的表现不同的上网方式,如果你测试的是一个公共网站的话。 
    展开全文
  • 什么是白盒测试

    千次阅读 2007-05-21 21:51:00
    白盒测试,也称为结构化测试、基于代码的测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。用白盒测试产生的测试用例能够: 1)保证一个模块中的所有独立路径至少被使用一次; 2)对所有逻辑值均需...
    白盒测试,也称为结构化测试、基于代码的测试,是一种测试用例设计方法,它从程序的控制结构导出测试用例。用白盒测试产生的测试用例能够: 

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

      2)对所有逻辑值均需测试true和false;

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

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

      “我们应该更注重于保证程序需求的实现,为什么要花费时间和精力来担心(和测试)逻辑细节?”答案在于软件自身的缺陷:

      ·逻辑错误和不正确假设与一条程序路径被运行的可能性成反比。当我们设计和实现主流之外的功能、条件或控制时,错误往往开始出现在我们工作中。日常处理往往被很好地了解,而“特殊情况”的处理则难于发现。

      ·我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行。程序的逻辑流有时是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路径测试才能发现这些错误。

      ·笔误是随机的。当一个程序被翻译为程序设计语言源代码时,有可能产生某些笔误,很多将被语法检查机制发现,但是,其他的会在测试开始时才会被发现。笔误出现在主流上和不明显的逻辑路径上的机率是一样的。

      正如Beizer所说的:“错误潜伏在角落里,聚集在边界上”,而白盒测试更可能发现它。 
    展开全文
  • 白盒测试能做什么

    千次阅读 2019-04-12 15:49:19
    最近和学员们讨论白盒测试,大家都觉得很陌生很远,而且技术难度大,应该是开发做的吧?今天我们先撇开白盒测试需要的技术手段,先讨论一下白盒测试如何保证产品的质量。 首先,我们先思考一个问题。比如一个产品...

    最近和学员们讨论白盒测试,大家都觉得很陌生很远,而且技术难度大,应该是开发做的吧?今天我们先撇开白盒测试需要的技术手段,先讨论一下白盒测试如何保证产品的质量。

    首先,我们先思考一个问题。比如一个产品测试A写了500条用例,而测试B只写了200条用例。那如何评判和证明是A还是B的测试用例覆盖率更高呢?

    有同学回答:通过bug数来衡量。这是一个好的想法,但是我觉得还是不够严谨。很多时候产品的bug并不是测试用例发现的,而是随机测试或者fuzzing 测试发现的。完全通过bug来衡量测试用例的覆盖率有作弊嫌疑。另外,假设200个用例覆盖的场景发现了2个bug,而500个用例仅覆盖了部分200个用例的覆盖的场景和另外一些场景,但是500个用例只发现了1个bug。那能证明200个用例的覆盖率就高于500个吗?显然不行的,我们还需要更加科学的方式和硬性的指标。

    那么,我们看一下白盒测试,白盒测试的第一步是对被测试的代码进行instrument(俗称:打桩)。打桩其实就是对每一行代码和每一个函数进行标记,然后再重新编译。第二步就是执行所有的测试用例(包括:自动化和功能的用例),这里请注意,不是仅仅跑自动化的用例或者单元测试用例,还包括功能测试用例。当所有的测试用例都跑完后,再通过代码覆盖率工具将覆盖率计算出来。那么,这份代码覆盖率就是所有测试用例的代码覆盖率,通过这份代码覆盖率能够准确的衡量测试用例对产品的功能的覆盖。

    一般情况下,通过查看代码覆盖率,将未覆盖的代码片段,再有针对性的设计测试用例进行覆盖。尽可能的覆盖所有产品代码。当然,一些try catch或者异常场景可能也是没有办法覆盖的。通常情况下,函数覆盖率需要达到80%以上,行覆盖率需要达到70%以上

    另外,函数覆盖率即是达到了90%,也并不能说明测试用例就完美了。有一些多线程,互斥的场景仅通过函数覆盖率是没法完全保证的,还需要更多测试的经验。

    免费电子书
    链接:https://pan.baidu.com/s/1STgh891H8jjSDKaKRUA1kQ
    提取码:frce
    在这里插入图片描述

    更多免费学习资源,如下:
    在这里插入图片描述

    展开全文
  • 什么是黑盒测试和白盒测试? 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知...
    什么是黑盒测试和白盒测试?

    任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。
    黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
    白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

    黑盒测试
    软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。

    黑盒测试主要是为了发现以下几类错误:
    1、是否有不正确或遗漏的功能?
    2、在接口上,输入是否能正确的接受?能否输出正确的结果?
    3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
    4、性能上是否能够满足要求?

    5、是否有初始化或终止性错误?

    具体的黑盒测试方法包括等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法功能测试等。
    1、等价类划分 :
    等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例可以不用考虑程序的内部结构,只以对程序的要求和说明,即需求规格说明书依据,仔细分析和推敲说明书的各项需求,特别是功能需求,把说明中对输入的要求和输出的要求区别开来并加以分解。
    2、边界值分析 :
    软件测试常用的一个方法是把测试工作按同样的形式划分。对数据进行软件测试,就是检查用户输入的信息、返回结果以及中间计算结果是否正确。边界值分析(Boundary Value Analysis,BVA)是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。
    3、错误推测法:是基于经验直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.
    4、因果图:考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型).
      因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
     就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法,目的是用最少的测试用例达到最高的测试覆盖率


    白盒测试
    软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。

    白盒测试主要是想对程序模块进行如下检查:
    1、对程序模块的所有独立的执行路径至少测试一遍。
    2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
    3、在循环的边界和运行的界限内执行循环体。

    4、测试内部数据结构的有效性,等等。

    白盒测试方法包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。


    以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。

    灰盒测试

    灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。


    转载地址:http://www.lmwlove.com/ac/id1105

    展开全文
  • 一、什么是白盒测试白盒测试也称结构测试或逻辑驱动测试,通过分析被测组件内部工作原理,通过测试来检测被测组件内部的运行是否符合产品规格说明书的规定 对应于黑盒测试,白盒测试要求测试人员打开软件...
  • 白盒测试是正好和黑盒测试相反的一种测试方法。 在测试一个应用的功能时,主要关注功能内部的具体实现或者工作过程。 白盒测试一般是针对代码级别的测试。 白盒测试很少有单独招聘的岗位。 ...
  • 白盒测试(white-box Testing,又称逻辑驱动测试,结构测试),它是知道产品内部过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有...
  • 黑盒测试与白盒测试的定义、方法

    千次阅读 2019-06-06 15:23:33
    黑盒测试又叫功能测试,它主要关注被测试软件功能的实现,而不是其内部逻辑。在黑盒测试中,被测对象的内部结构、运作情况对测试人员是不可见的。在黑盒测试里,测试人员把被测试的软件系统看作是一个黑盒子,并不...
  • 白盒测试与黑盒测试的联系与区别

    万次阅读 2017-12-20 10:53:38
    简单介绍一下在软件测试过程中白盒测试和黑盒测试的定义,区别,联系,以及各自测试的目的。
  • 白盒测试与黑盒测试的定义与区别

    万次阅读 2014-06-24 19:37:17
    白盒测试方法按照程序内部的结构测试程序,检验程序中的meitiao
  • 白盒测试和黑盒测试的优缺点

    万次阅读 2013-11-19 10:40:22
    白盒测试和黑盒测试是软件测试的两种基本方法   =================================黑盒测试===========================================  1. 黑盒测试的优点有 : 1) 比较简单,不需要了解程序的内部的代码及...
  • 白盒测试----六种覆盖方法

    万次阅读 多人点赞 2017-12-12 22:44:12
    白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,白盒指的是程序的内部结构和运作机制是可见的。白盒测试的目的: 通过检查软件内部的逻辑结构,对软件中的...
  • 黑盒测试和白盒测试区别

    万次阅读 2017-08-01 09:15:26
    一、黑盒测试和白盒测试  黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有...
  • 白盒测试用例设计练习(一)

    万次阅读 2018-01-19 20:54:29
    【图 1.1】 1、语句覆盖 请给出【图 1.1】的语句覆盖用例  a)主要特点:使程序中的每个可执行语句至少被执行一次。  b) 用例设计 ...【图 1.2】
  • 白盒测试与黑盒测试的比较

    千次阅读 2017-05-30 21:24:07
    白盒测试是穷举路径测试,黑盒测试是穷举输入测试,这两种方法是基于完全不同的观点,反应了事物的两个极端,它们各有侧重和优势,但不能彼此替代。在现代的测试理念中,这两种测试方法不是截然分开的,而是交叉使用...
  • 黑盒测试与白盒测试的优缺点

    千次阅读 2018-08-12 08:54:56
    ※ 黑盒测试的优点: 比较简单,不需要了解程序内部的代码及实现; 与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题; 基于软件开发文档,...※ 白盒测试的优点: ...
  •  渗透测试的两种基本类型:白盒测试与黑盒测试。白盒测试,有时也被称为“白帽测试”,是指渗透测试者在拥有客户组织所有知识的情况下所进行的测试;黑盒测试则设计为模拟一个对客户组织一无所知的攻击者所进行的...
  • 黑盒测试、白盒测试和灰盒测试的基本概念作者:Aken1. 黑盒测试 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开...
  • 白盒测试技术

    千次阅读 2010-02-08 13:46:00
    白盒测试技术作者:张元礼http://blog.csdn.net/vincetest 目 录Chapter 1 白盒测试理论1.1 白盒测试概念1.2 白盒测试目的1.3 白盒测试范围1.4 白盒测试发展Chapter 2 单元测试理论2.1 单元测试概念2.2 单元测试...
  • 三角形- 白盒测试实例

    千次阅读 2014-03-12 22:07:19
    白盒测试实例 1~12: http://blog.csdn.net/aidisheng/article/details/2868709
1 2 3 4 5 ... 20
收藏数 29,178
精华内容 11,671
关键字:

什么是白盒测试