黑盒测试基础[通俗易懂]

2022-11-03 10:54:37 浏览数 (2)

黑盒测试方法:

  • 黑盒测试方法:
    • 等价类划分法:
    • 边界值分析法:
    • 因果图法:
    • 决策表法:(判定表法)
    • 正交试验设计法:
    • 错误推测法:
    • 功能分解法:*(又叫做状态迁徙图)*
    • 场景法:

黑盒测试方法:

黑盒测试也称为功能测试和数据驱动测试。它将被测软件视为一个无法打开的黑盒,主要根据功能需求设计测试用例和测试。把产品软件想象成一个只有出口和入口的黑盒。在测试过程中,你只需要知道向黑盒输入什么,知道黑盒会产生什么结果。

黑盒测试方法主要有等价类划分边界值分析因果图错误推测等,主要用于软件验证测试。“黑盒”法侧重于程序的外部结构,不考虑内部逻辑结构,针对测试软件界面和软件功能。“黑盒”方法是详尽的输入测试,只有当所有可能的输入都用作测试条件时,才能以这种方式检测程序中的所有错误。事实上,有无数个测试用例。人们不仅要测试所有合法的输入,还要测试那些非法但可能的输入。

优点:

  • 与软件具体实现无关
  • 测试用例可以和软件实现 同时进行
  • 基于说明书,知道软件实现了哪些功能,方便自动化测试。

缺点:

  • 不能覆盖所有的的代码,覆盖条件
  • 自动化测试的复用性低

等价类划分法:

等价类划分法原理:

  • 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
  • 每一类的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
  • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误

等价类方法设计测试用例的三个原则:

  1. 为每一个等价类规定一个唯一的编号;
  2. 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
  3. 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
  • 有效等价类:

是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。《软件质量与测试》

即:符合程序要求,合理且有意义

  • 无效等价类:

是指对于程序的规格说明来说是不合理的,没有意义的输入数据构成的集合.利用无效等价类可检验程序是否实现了规格说明中所规定的功能和性能。《软件质量与测试》

即:不符合要求,不合理且有意义

等价类划分法设计步骤

  • 确定等价类的原则在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
  • 在输入条件规定了输入值的集合或者规定了”必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类
  • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
  • 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则和若干个无效等价类(从不同角度违度规则)
  • 在确知己划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类

如果等价类中的一个测试数据不能捕获缺陷,那么选择该等价类中的其他测试数据也不会捕获缺陷;同样的,如果等价类中的一个测试数据能够捕获一个缺陷,那么选择该等价类中的其他数据测试也能捕获该缺陷。


注: 在寻找等价划分时,考虑吧软件的中具有的相似输入、相似输出、相似操作的分在一起,这写组就是等价划分。 如果为了减少测试用例的数量过度划分等价类,就有漏掉哪些可能暴露软件缺陷的测试风险。

====================================================================

边界值分析法:

边界值分析是通过选择等价类边界的测试用例。边界值分析法不仅重视输入条件边界,而且也必须考虑输出域边界。它是对等价类划分方法的补充。《软件质量与测试》

即:对软件的输入或输出边界进行测试 作为等价类划分法的一种补充测试

边界值只是一个特定的数据。 例如,文本框需要输入6到18位字符。 边界值有:

  1. 6字符
  2. 18 字符 次边界。边界附近的值,按照系统规定的单位或者计算方式,一个数据的差异。 例如,字符就是个,一个字符,没有半个字符的说法;人民币金额,最小单位是0.01元(1分), ATM机取款和存款,最小单位就是100元,只能是100元的整数倍

## 边界值的选择原则:

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据
  • 根据规格说明的每个输出条件,使用前面的原则①
  • 根据规格说明的每个输出条件,应用前面的原则②
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

等价类划分方法和边界值分析方法着重考虑输入条件,而不考虑输入条件的各种组合,也不考虑输入条件之间的相互制约关系。

=======================================================================================

因果图法:

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

3、结果之间的约束,假如结果成立用1表示,不成立用0表示。 屏蔽。结果之间会出现A结果出现, B结果一定不出现。当你收到注册成功的提示,就”一定不会收到数据填写错误的提示

=======================================================================================

决策表法:(判定表法)

是分析和表达多逻辑条件下执行不同操作的情况的工具。它由以下几个内容组成:

  • 条件桩(Condition Stub) :列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
  • 动作桩(Action Stub) :列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
  • 条件项(Condition Entry) :列出针对它左列条件的取值。在所有可能情况下的真假值。
  • 动作项(Action Entry) :列出在条件项的各种取值情况下应该采取的动作。
  1. 应用场合:主要适用于多条件的内容组合与结果分析。
  2. 组成:由条件项、动作项、条件桩、动作桩四部分组成
  3. 使用的条件:所有的条件桩在表中的位置和顺序互相不影响;所有的动作桩的顺序不会因为备件顺序的专化而产生不同。

=======================================================================================

正交试验设计法:

基本思想:

  • 在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
  • 每列中不同数字出现的次数相等。这一特点表明每个因素的每个水平与其它因素的每个水平参与试验的几率是完全相同的,能有效地比较试验结果并找出最优的试验条件。
  • 在任意2列其横向组成的数字对中,每种数字对出现的次数相等。这个特点保证了试验点均匀地分散在因素与水平的完全组合之中。

实施步骤:

  • 分析所有对结果有影响的因素。从多个角度和方式进行分析(不更放过文本框、按钮等需求中提及或者没有提及)
  • 分析每个因素的水平数量,充分利用等价类、边界值(需求中说明和未说明的都要分析)
  • 选择正交表。只有特定的因素数和水平数的组合才有对应的正交表。所以在现实中用到的时候,找最贴近的正交表(正交表的因素数和水平数一般要大于实际的因素数和水平数。

=======================================================================================

错误推测法:

错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。

例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。

=======================================================================================

功能分解法:(又叫做状态迁徙图)

  • 来源:在遇到有事务流或由于某种条件成立导致状态改变的软件时,如何进行测试用例的设计就比较麻烦。
  • 状态迁徙图法的目标 设计足够多的测试用例达到对系统状态的覆盖、状态条件组合的覆盖以及状态迁移路径的覆盖
  • 以操作系统的进程调度算法为例

·功能图法步骤

  • 列出所有可能的输入事件,以ip N的方式命名(N为1, 2, 3, 4…)
  • 把软件的打开的初始状态,定义为”空闲”状态
  • 在“空闲”状态上加所有可能的输入(只加一次!)
  • 为上一步产生的所有新状态,分别加所有可能的输入(只加一次!)
  • 循环执行上一步直到再没有任何新状态产生,列出所有的状态,生成状态表
  • 组合任意可能的状态组合,写出相应的测试用例.

=======================================================================================

场景法:

现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。

  • 基本流:软件功能按照正确的事件流实现的一条正确流程。通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点
  • 备选流:除了基本流之外的各支流,包含多种不同的情况。

在设计负面测试用例时,一般使用2&8法则,4倍于正面用例的数量。一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。

“用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖”、“是否覆盖测试需求上的所有功能点”、“是否已经删除冗余的用例”属于测试用例评审的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180045.html原文链接:https://javaforall.cn

0 人点赞