等价类测试与边界值测试

时间:2009-12-15 18:08:41

标签: testing equivalence black-box

我理解等效测试的工作原理。

与边界值测试有什么相同或不同?

6 个答案:

答案 0 :(得分:66)

等效类测试
EC测试是指您想要测试多个测试项目(例如值),但由于成本(时间/金钱),您没有时间对其进行测试。因此,您将测试项分组到类中,其中每个类中的所有项都假设行为完全相同。理论上说,您只需要测试每个项目中的一个以确保系统正常工作 示例1
2岁以下的儿童免费乘坐巴士。年轻人支付10美元,成人15美元,老年人支付5美元 类:
价格:0 - >年龄:0-1
价格:10 - >年龄:2-14岁 价格:15 - >年龄:15-64
价格:5 - >年龄:65-无穷大

示例2(多个参数)
手机K80,J64和J54运行Java 5.K90和J99运行Java 6.但有两种可能的浏览器FireFox和Opera,J型号运行FF和K型号运行O.
类:
浏览器:FF,Java:5 - >电话:J64,J54
浏览器:FF,Java:6 - >电话:J99
浏览器:O,Java:5 - >电话:K80
浏览器:O,Java:6 - >电话:K90

等效类测试的危险
使用EC测试存在危险,测试书中很少提及,但要记住这一点非常重要 仅仅因为假设两个项目/值在同一个类中并且行为相同,并不意味着它们的行为相同。
这意味着只是因为您在类中测试了一个值,即类中的所有值都表现相同。我的真实世界的例子是手机都有一个特定的Java平台。他们认为所有的工作都是一样的,但他们实际上并没有。因此,在类中测试一个值是好的,但不够好。 EC测试是一个很好的工具,但它不是万无一失的,要小心它。如果测试用例便宜且快速(如自动化),那么测试更多,或者为什么不测试它们呢!

边界值测试
BV测试是指您决定在已识别的每个类的边缘测试值。理论是大多数缺陷都在一个类的边缘。 实施例
类:
价格:0 - >年龄:0-1(边界值0,1)
价格:10 - >年龄:2-14岁(边界值2,14)
价格:15 - >年龄:15-64岁(边界值15,64)
价格:5 - >年龄:65-无穷大(边界值65)

边界价值测试批判
1)我和我从中学过的其他测试专业人​​员并不相信大多数缺陷隐藏在每个班级的边缘。我从未见过任何证明情况如此的研究。 2)您需要使用BV测试证明EC测试存在缺陷,因为您测试了每个类的多个值。 3)使用整数等值时很容易使用。但是手机型号或浏览器版本的边界价值是多少?

隐藏边界值测试
类的边界值通常基于系统应如何工作的规范。这一切都很好,但大多数系统包含任何规范都没有解释的边界,你需要自己寻找。例如。 “在系统出现故障和中断之前,我可以在测试区域放入多少个字符。”,“数据文件在读取它之前变得如此之慢会变得多么烦人”。 真实世界的例子
- 在胜利7中将一百万个字符粘贴到FireFox 3.5的文本区域中会使其崩溃 - ReCaptcha有16003个字符的限制,如果有人在字段中输入16004个字符,你的系统是否会处理它传回给它的413。或者它是否会中断

<强>摘要
EC测试和BV测试是很好的工具,您应该使用它们,但它们并不完美,并且不希望发现使用它们的所有缺陷。利用您对系统的专业知识以及您的智慧和直觉来尝试更多项目,并寻找可能失败的其他方式。并寻找隐藏的界限!

答案 1 :(得分:19)

边界值分析只是意味着选择类边界附近的值。因此,您仍然根据类划分输入域,而不是从类的中间选择使用边界值的值。

例如,如果输入条件的范围是20到70,那么您有三类输入

  1. 少于20
  2. 介于20至70之间
  3. 超过70
  4. 然后对于边界值分析,选择输入= 19,20,21,69,70,71。这种类型的分析会在边界上发现错误。

答案 2 :(得分:11)

等效性测试需要通过边界值测试来补充。

例如,对于取值介于1和12之间的函数的等效测试 (比如一年中的几个月)分区将是:

  • 小于1(0,-1,-2)的值,无效分区
  • 值介于1-12之间,有效分区
  • 值大于12,无效分区
  • 对于等价测试,从每个分区类中选择一个值作为测试输入就足够了。这意味着值为-2,6的测试,并且15被认为足以测试函数的行为。但是这些值并没有捕获Off-by-one error,这可能经常发生。

    通过边界值测试,测试输入将是:-1,0,1,11,12,13(在边界处),这将捕获逐个错误。

    我认为这两种测试方法是相互补充的。

    答案 3 :(得分:1)

    边界值分析是等价分区的一部分或子集。在边界值分析中,仅选择边界中的值而不是某个随机值。

    答案 4 :(得分:-1)

    边界值分析克服了Equivalance类分区的缺点。如果固定长度为g9iven,例如。手机号码(10位数)

    这种情况下的下边界是 - 数字 - 1(即10 - 1 = 9) 在这种情况下,上边界是 - 数字+1(即10 + 1 = 11)

    现在我们可以对9和11进行测试

    答案 5 :(得分:-1)

    动态测试类型 -

    1. 基于规格的测试

      一个。等价分区

        A1. Boundary value analysis
      
        A2. Decision Tables
      
        A3. Use case Testing
      
        A4. State Transition testing
      
    2. 基于结构的测试

      一个。测试覆盖率

      B中。代码覆盖率

      ℃。声明范围

      d。决策范围

    3. 基于体验的测试

      一个。测试错误

      B中。探索性测试

    4. Equivalance Partitioning - 这是一种测试人员将测试条件分成组和集合的技术。系统应该等效地处理它们,因此称为等价类。从每个分区测试一个条件将使所有条件都适用于该分区。

      EX&gt;&gt;检查添加单个数字值。即0到9之间的值。

      1. 小于-9的值,即-10,-11,.... (无效分区)

      2. 小于0的值,即-1,-2,....至-9(有效分区)

      3. 0-9之间的值,即0,1 ....至9(有效分区)

      4. 大于9的值,即10,11(无效分区)

      5. 测试每个分区的任意两个值的添加就足够了。

        边界值测试 - 它基于分区之间边界的测试。

        EX&gt;&gt;考虑下面的组合。

        1. 添加-9和-10,

        2. 添加-10和-11

        3. 添加0和-1

        4. 添加0和1

        5. 增加9和10

        6. 增加11和10