31

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

它与边界值测试有何相同或不同之处?

4

6 回答 6

72

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

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

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

边界值测试
BV 测试是当您决定测试您已确定的每个类别边缘的值时。该理论认为,大多数缺陷都在类的边缘附近。 示例
类:
Price:0 -> Age:0-1(边界值 0, 1)
Price:10 -> Age:2-14(边界值 2, 14)
Price:15 -> Age:15-64(边界值15, 64)
价格:5 -> 年龄:65-infinity (边界值 65)

对边界值测试的批评
1) 我和其他我学习过的测试专业人​​士并不相信大多数缺陷都隐藏在每个班级的边缘。而且我从未见过任何研究证明这一点。2)您需要使用 BV 测试这一事实证明 EC 测试是有缺陷的,因为您测试了每个类的多个值。3)使用整数等值时很容易使用。但是手机型号或浏览器版本的边界值是多少?

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

总结
EC 测试和 BV 测试是很棒的工具,您应该使用它们,但它们并不完美,不要期望使用它们找到所有缺陷。利用你对系统的了解以及你的智慧和直觉来尝试更多的项目,并寻找其他可能失败的方法。并寻找隐藏的界限!

于 2009-12-23T11:00:11.877 回答
20

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

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

  1. 少于 20
  2. 20 到 70 之间
  3. 超过 70

然后对于边界值分析,选择输入 = 19、20、21、69、70、71。这种类型的分析会发现边界上的错误。

于 2009-12-15T18:11:38.890 回答
13

等价检验需要补充边界值检验。

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

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

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

    我认为这两种测试方法是相辅相成的。

    于 2009-12-23T11:49:37.743 回答
    1

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

    于 2009-12-29T07:42:38.667 回答
    -1

    边界值分析克服了等价类划分的缺点。例如,如果给定一个固定长度。手机号码(10位)

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

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

    于 2014-10-13T04:58:54.827 回答
    -1

    动态测试类型 –</p>

    1. 基于规范的测试

      A. 等价划分

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

      A. 测试覆盖率

      B. 代码覆盖率

      C. 报表覆盖范围

      D. 决策范围

    3. 基于经验的测试

      A. 错误测试

      B. 探索性测试

    Equivalance Partitioning – 这是一种测试人员将测试条件分成组和组的技术。系统应该等效地处理它们,因此称为等价类。从每个分区测试一个条件将假设所有条件都将在该分区中工作。

    EX >> 检查单个数字值的加法。即 0 到 9 之间的值。

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

    2. 小于 0 的值,即 -1、-2、……。直到 -9(有效分区)

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

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

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

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

    EX >> 考虑以下组合。

    1. 添加 -9 和 -10,

    2. 添加 -10 和 -11

    3. 0和-1的加法

    4. 0和1的加法

    5. 9和10的加法

    6. 11 和 10 的加法

    于 2016-12-10T08:58:47.320 回答