精华内容
下载资源
问答
  • 黑盒测试与白盒测试

    2012-05-21 17:14:17
    黑盒测试与白盒测试
  • 白盒黑盒的概念 黑盒测试技术 白盒测试技术 白盒黑盒的比较 黑盒白盒 X=2 Y=4 黑盒测试 又叫功能测试它关注的是被测软件功能的实 现而不是内部逻辑在黑盒测试中被测对象的内部结 构运作情况对测试人员是不可见...
  • 软件测试中黑盒测试与白盒测试的区别,适合软件开发及软件工程的人员阅览
  • 软件测试方法之黑盒测试与白盒测试 摘要:黑盒测试与白盒测试都是软件测试的重要方法。白盒测试是通过程序的源代码进行测试而不使用用户界面,它主要用于检测软件编码过程中的错误;而黑盒测试是是通过使用整个软件...

    软件测试方法之黑盒测试与白盒测试
    摘要:黑盒测试与白盒测试都是软件测试的重要方法。白盒测试是通过程序的源代码进行测试而不使用用户界面,它主要用于检测软件编码过程中的错误;而黑盒测试是是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的,它主要检测软件的每一个功能是否能够正常使用。他们是相辅相成的。
    关键词:黑盒测试;白盒测试;优缺点;软件测试
    【1】在这里插入图片描述

    1测试的概念
    1.1测试的定义
    测试的正确定义是“为了发现程序中的错误而执行程序的过程”。这和某些人通常想象的“测试是为了表明程序是正确的”“成功的测试是没有发现错误的测试”是完全相反的[1]。简而言之,找错的活动称测试。而测试的目的是找出软件设计开发全周期中各个阶段的错误,以便分析错误的性质与位置加以纠正。
    1.2软件测试的定义
    软件测试的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别[2]”。这个定义明确的指出了软件测试的目的是为了检验软件系统的是否符合需求,它并不是一个一次性的,而且是软件开发后期的活动,是整个开发流程的一部分。软件测试能够在软件投入运行前,对软件需求分析,设计规格说明和编码实现的最终的审核,它是软件质量得到保证的关键步骤。
    2.黑盒测试概念
    2.1黑盒测试概念
    黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。黑盒测试着眼于程序外部机构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
    2.2黑盒测试原理
    在进行黑盒测试时,测试者把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当的接收输入数据而产生正确的输出信息,并保持外部信息的完整性[4]。例如:我们要去使用这个百度,比如说我搜索了诗人李清照,我点击百度一下,我只要得到的结果是有关于诗人李清照这样的词条出现,那么我就认为这个功能是正确的。使用黑盒子测试法不需要看到里面的这个代码实现是什么样子的,也不管里面是用Python实现的用Java实现的还是用其他编程语言实现的,只要管我的功能有没有实现。黑盒测试方法有边界值分析法、等价类测试法、因果图法、决策表法、错误推测法、Use Case法(场景法)、正交实验法等,主要用于确认测试。

    2.3黑盒测试的目的
    黑盒测试主要是为了发现以下错误:是否有不正确或者遗漏了的功能;在接口上,输入能否正确的接受;能否输出正确的结果;是否有数据结构错误或外部信息(例如数据库文件)访问错误;性能上是否能够满足要求;是否有初始化或终止性错误等。

    2.4黑盒测试的优缺点
    黑盒测试优点:上手简单,只需关注PRD和业务逻辑,测试者不受任何特定编程语言知识的压力,可以测试应用程序/软件的可靠性和功能性;用户视角,更贴合真实用户使用场景;有助于识别功能规范中矛盾和模糊性。
    黑盒测试缺点:测试质量高低受测试工程师经验影响,测试工程师的经验越高,对测试越有利;异常场景比较难覆盖,比较难提供直观的测试覆盖率;用例代码覆盖率低,不能用于测试复杂的代码段;测试所有可能的输入流是不可能的,因为这很耗时,并且最终将使许多程序路径未经测试。
    3.白盒测试
    3.1白盒测试概念
    白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部的工作过程,可通过测试产品内部动作是否按照规格说明书说明的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能[5]。其主要用于软件验证。
    3.2白盒测试原理
    软件的白盒测试是对软件的过程性细节做细致的检查。白盒测试把测试对象看做一个打开的的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对所有逻辑路径进行测试,在程序的不同点检查程序的状态,来判定其实际情况是否和预期的状态相一致。白盒测试的主要方法有代码检查法、静态结构分析法、基本路径分析法、逻辑覆盖法等。

    3.3白盒测试的目的
    白盒测试主要是想对程序模块进行如下检查:对程序模块的所有独立的执行路径至少测试一遍;对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍;在循环的边界和运行的界限内执行循环体;测试内部数据结构的有效性,等等。
    3.4白盒测试的优缺点
    白盒测试优点:(白盒测试要求对某些程序的结构特性做到一定程度的覆盖,或者说是“基于覆盖率的测试”)迫使测试人员去仔细思考软件的实现;容易自动;用例覆盖率高,可以检查代码中的每条分支和路径;异常场景易发现;对代码的测试比较彻底,可以揭示隐藏在代码中的错误。
    白盒测试缺点:投入成本高,昂贵;更多以开发视角出发,容易脱离业务;无法检测代码中遗漏的路径和数据的敏感性错误;无法坚持程序的外部特征;白盒测试也并不验证规格的正确性;即使每条路径都测试了仍然可能有错误。
    5结论
    软件测试有一个致命的缺陷,即测试的不完全性、不确定性,这是因为任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试。黑盒测试与白盒测试相辅相成,各有所长,两者并不矛盾。且两者都是保障产品质量的不同手段,软件测试需要两者的结合。黑盒测试对于确保系统按照预期实现很关键,而实现黑盒测试并不需要掌握太多的编码知识,因为它检查的是整个软件或者软件功能,而不需要检查代码。这个时候进行白盒测试所需要掌握的了解系统的逻辑过程和工作原理更加重要。

    参考文献:
    [1]:软件工程导/章海藩,牟永敏编著.-6版-北京:清华大学出版社,2013(2020.6重印)
    [2]软件测试技术基础/苟英,中国水利水电出版社,2013
    [3]软件测试/郑人杰,人民邮电出版社,2011
    [4]软件测试技术/库波,中国水利水电出版社,2001
    [5]软件测试教程/贺平,电子工业出版社,2010
    图片来源网址:
    [1]:https://pic1.zhimg.com/v2-a460bdccc5afe14e3077ecb480271ef8_1440w.jpg?source=172ae18b

    展开全文
  • 黑盒测试与白盒测试——总结

    千次阅读 热门讨论 2016-12-26 20:40:57
    黑盒测试与白盒测试总结

    软件开发过程中一个重要环节便是测试,有两种重要的测试方法:黑盒测试和白盒测试。

    黑盒测试:也称功能测试或数据驱动测试,它是已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。

    黑盒测试的主要目的在于以下几个方面:

    (1)正确性:计算结果,命名等方面

    (2)可用性:是否可以满足软件的需求说明

    (3)边界条件:输入部分的边界值,使用等价类划分,试试最大最小和非法数据等

    (4)性能:正常使用的时间内系统完成一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内

    (5)压力测试:多用户情况下可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行

    (6)错误恢复:错误处理,页面数据验证,包括突然断电,输入脏数据等

    (7)安全性测试:可以审核代码,提出安全建议,出现紧急事件时的处理办法等

    (8)兼容性:

    黑盒测试优点:

    (1)对于较大的代码单元来说,黑盒测试比白盒测试效率较高;

    (2)测试人员不需要了解细节,包括特定的编程语言;

    (3)测试 人员和开发人员彼此独立;

    (4)从用户的角度测试,很容易理解和接受;

    黑盒测试的缺点:

    (1)测试的只有一小部分,不可能测试全部输入;

    (2)没有简明的需求规格说明书,测试用例很难设计;

    (3)不能直接对程序段进行测试,改程序段可能隐藏更多错误。


    白盒测试:又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。它是一种测试用例设计方法,所谓“盒子”指的是被测试的软件,“白盒”指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。白盒法全面了解程序内部逻辑结构,对所有逻辑路径进行测试。白盒法是穷举路径测试,在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

    白盒测试主要从以下几个方面进行:

    (1)对程序模块的所有独立的执行路径至少测试一次;

    (2)对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;

    (3)在循环的边界和运行界限内执行循环体;

    (4)测试内部数据结构的有效性等。

    白盒测试的优点:

    (1)迫使测试人员去仔细思考软件的实现;

    (2)可以检测代码中的每条分支和路径;

    (3)揭示隐藏在代码中的错误;

    (4)对代码的测试比较彻底;

    (5)最优化。

    白盒测试的缺点:

    (1)昂贵;

    (2)无法检测代码中遗漏的路径和数据敏感性错误;

    (3)不验证规格的正确性。



    展开全文
  • 黑盒测试与白盒测试的区别

    千次阅读 多人点赞 2020-04-12 13:29:26
    黑盒测试与白盒测试的区别: 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求,就是类似于直接使用你的软件,不去研究它的内部代码等,直接使用去发现问题,又称为功能测试。 ...

    黑盒测试与白盒测试的区别:

    黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求,就是类似于直接使用你的软件,不去研究它的内部代码等,直接使用去发现问题,又称为功能测试。

    白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查,类似于研究内部代码和结构,又称为结构测试。

    黑盒测试就是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,因此黑盒测试又叫功能测试,黑盒测试主要为发现一下几类错误:

    1、是否有不正确或遗漏的功能

    2、在接口上,输入是否能正确的接受?能否输出正确的结果?

    3、是否具有数据结构错误或外部信息(例如数据文件)访问错误?

    4、性能上是否能够满足要求?

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

    白盒测试就是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否和预期的状态一致,因此白盒测试又称为结构测试。白盒测试主要是相对程序模块进行如下的检查:

    1、对程序模块的所有独立的执行路径至少测试一遍

    2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍

    3、在循环的边界和运行的边界内执行循环体

    4、测试内部数据的有效性

    展开全文
  • 黑盒测试与白盒测试的区别:黑盒测试不知道内部代 一、测试方式不同 1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。 2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。...

    黑盒测试与白盒测试的区别:黑盒测试不知道内部代

    一、测试方式不同

    1、黑盒测试:功能测试,是通过测试来检测每个功能是否都能正常使用。

    2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

    二、测试目的不同

    1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。

    2、白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

     

    三、测试原则不同

    1、黑盒测试:以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

    2、白盒测试:一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试true和false两种情况。

    码与逻辑结构 白盒知道

     

    黑盒测试与白盒测试的主要内容:

     ·黑盒测试:

    1.       场景法: 模拟用户操作软件时的场景,主要用于测试系统的业务流程  其下主要有四种类型:正常的用例场景,备选的用例场景,异常用例场景,假定推测场景

    2.        等价划分法:将一个输入分成若干个子集从每个子集中选取一个代表性的数据作为测试用例。主要由:有效的数据和无效的数据组成

          3.     边界值划分:就是边界上的点。主要是离点和内点,离点:闭区间两边,开区间里边
          4.      判定表:   

         5.因果图

          6.两两组合(成对测试) 主要用在配置项的测试中 避免测试所有维度的所有值以及减少测试的量。其实就是通过组合减少需要测试的量实现快速找出bug

        7.正交实验:根据正交表的特性从全面试验中挑选合适,有代表性的点进行实验,具备均匀分散,整齐可比的特点。

     

    白盒测试

             1.语句覆盖   让程序中的代码都运行一下

    语句覆盖率=(至少执行一次的语句)/(可执行的语句)

              2.判定覆盖   运行测试,使得程序中每个判断的语句的取真分支和取假分支都得到执行

    判定覆盖率=(每个判定的真假值至少出现一次)/(判定结果的总数)

              3.判定条件覆盖 他们之间的区别就是条件覆盖要求只有真分支或者假分支执行了就行。但是判定条件覆盖要求所有的都进行一次 

              4 条件组合 设计若干测试用例进行测试

    条件组合覆盖率 = (条件组合至少出现一次)/(条件组合的总数)

             5 修正判定条件覆盖  设计若干测试用例。并且要求所有的结构都是被互补影响的测试一次、

             小结:

    最后:基本路径测试 在程序控制流图的基础上,通过分析控制构造的复杂性,导出基本可执行的路径集合,从而设计测试用例。

    设计方法:

    1.代码 --》 流程图 --->控制流图

    2确定控制流图的复杂度  

             如何计算复杂度???? 

            V(G)=区域数量

            V(G)=连线数量-结点数量+2

            V(G)=判断结点+1

    3确定线性独立路径的基本集合

    4测试用例覆盖每条基本路径

    答案是4  V(G) = 判断结点个数 +1

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,417
精华内容 10,166
关键字:

黑盒测试与白盒测试