zoukankan      html  css  js  c++  java
  • 黑盒测试总结

      随着软件测试课程接近尾声,对于对于黑盒测试,我也有了更深的理解,因此对黑盒测试及其方法做一定的总结。

      对于黑盒测试,用通俗的话讲,就是在不清楚程序内部结构的情况下,对软件进行测试。

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

      黑盒测试的方法有很多种,包括等价类划分法,边界值分析法,错误推测法,因果图法等。下面对这些方法一次进行总结。

    (一)等价类划分法:

       等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。

      使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。

      1.确定等价类

      等价类是指被测软件的一个输入数据的集合,该集合中的任一元素对于揭露被测程序中的错误而言是等价的,即若该集合中的一个元素测试程序发现不了某类功能上明显的错误,那么其它元素测试该程序也发现不了这种错误。

      确定等价类是将每一个输入条件划分为有效等价类和无效等价类。

      有效等价类指程序规格说明书中规定的、合理的、有意义的输入数据。通过测试有效等价类中的数据可以测试被测软件是否实现了规格说明书中预先规定的功能和性能。无效等价类是有效等价类的补集,指软件规格说明书中没有规定的、没有意义的、不合理的输入数据集合。

      2.生成测试用例

      ①为每一个等价类设置一个唯一的编号。

      ②设计新的测试用例,尽可能多地覆盖那些尚未被覆盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去)。

      ③设计新的测试用例,覆盖一个仅一个尚未被覆盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。

    (二)边界值分析法

      边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。

      利用边界值分析法设计测试用例的原则:

      1.如果输入条件规定了值的范围,那么应针对范围的边界设计有效的等价类测试用例,针对刚刚越界的情况设计无效等价类输入测试用例。

      2.如果输入条件规定了输入值的数量(包括个数的多少,时间的长短),则应对该数量的最大值、最小值及比最大值小一、最小值大一的情况分别设计有效的输入测试用例。

      3.如果程序中使用了一个内部数据结构,则应该内部数据机构的边界值设计测试用例。

      4.如果程序的规格说明给出的输入域或输出域是有序集合,则应该取集合的第一个元素和最后一个元素设计测试用例。

    (三)因果图法

      因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。

      因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

      利用因果图法设计测试用例的步骤:

      1.将规格说明分解为可执行的片段。该步骤必不可少,因为因果图不善于处理较大的规格说明。

      2.分析并确定可执行片段中哪些是原因,哪些是结果。原因是指输入条件或者输入条件的等价类,而结果指输出条件。

      3.为每一个原因和结果赋予唯一的标号,并根据规格说明书中的描述,画出因果图。

      4.通过仔细地跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表。表中的每一列代表一个测试用例。

  • 相关阅读:
    Android之快速搭建应用框架
    oracle hints merge 视图合并
    十年数据架构经验,告诉你业务化大数据中台最核心的四点
    Cinder LVM Oversubscription in thin provisioning
    Oracle 20c数据库开启原生的区块链表、AutoML以及持久化内存支持
    学习三十五
    学习三十五
    认知类和对象的关系
    认知类和对象的关系
    认知类和对象的关系
  • 原文地址:https://www.cnblogs.com/byzantine/p/4420548.html
Copyright © 2011-2022 走看看