web-dev-qa-db-ja.com

同等クラスのテストと境界値のテスト

等価性テストの仕組みを理解しています。

境界値のテストとどのように同じですか、または異なりますか?

26
neuromancer

等価クラステスト
ECテストは、テストするテスト項目(値など)が多数あるが、コスト(時間/お金)のためにすべてをテストする時間がない場合です。したがって、テスト項目をクラスにグループ化し、各クラスのすべての項目がまったく同じ動作をすると仮定します。理論的には、システムが機能することを確認するために、各項目の1つだけをテストする必要があります。
例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。 JモデルはFFを実行し、KモデルはOを実行します。
クラス:
ブラウザ:FF、Java:5->電話:J64、J54
ブラウザ:FF、Java:6->電話:J99
ブラウザ:O、Java:5->電話:K80
ブラウザ:O、Java:6->電話:K90

同等クラスのテストの危険性
テストの本ではめったに言及されていないが、覚えておくことが非常に重要なECテストを使用する危険性があります。
2つのアイテム/値は同じクラスに属し、同じ動作をするため、同じ動作をするわけではありません。
これは、クラスの1つの値をテストしたからといって、クラスのすべての値が同じように動作することを意味します。私の実世界の例は、特定のJavaプラットフォーム。すべてが同じように動作すると想定されていましたが、実際にはそうではありませんでした。 ECテストは優れたツールですが、簡単な証拠ではなく、注意が必要です。テストケースが安価で高速な場合(自動化など)、さらにテストするか、すべてテストしないのはなぜですか。

境界値テスト
BVテストとは、特定した各クラスのエッジで値をテストすることです。理論では、ほとんどの欠陥はクラスの端にあるということです。
クラス:
Price:0-> Age:0-1(境界値0、1)
価格:10->年齢:2-14(境界値2、14)
価格:15->年齢:15-64(境界値15、64)
価格:5->年齢:65-無限(境界値65)

境界値テストの批判
1)私、および私がコースを受講した他のテストの専門家は、ほとんどの欠陥が各クラスの端に隠れていることを確信していません。そして、これが事実であることを証明する研究を見たことはありません。 2)BVテストを使用する必要があるという事実は、各クラスの複数の値をテストするため、ECテストに欠陥があることを証明しています。 3)整数などの値を使用する場合、簡単に使用できます。しかし、クラスの電話機モデルまたはブラウザバージョンの境界値は何ですか?

非表示の境界値のテスト
クラスの境界値は、多くの場合、システムの動作方法の仕様に基づいています。これはすべてうまく機能していますが、ほとんどのシステムには、仕様で説明されていない境界が含まれているため、自分で探す必要があります。例えば。 「システムが失敗して壊れる前に、テストフィールドに入力できる文字数」、「読み取りが非常に遅くなり、うっとうしくなる前に、データファイルがどれだけ大きくなる可能性がある」。
実世界の例
-Win 7でFireFox 3.5のテキスト領域に100万文字を貼り付けるとクラッシュします
[。それとも壊れますか

概要
ECテストとBVテストは優れたツールであり、使用する必要がありますが、完全ではなく、それらを使用してすべての欠陥を見つけることは期待できません。システムに関する知識とインテリジェンスと直感を使用して、より多くのアイテムを試し、失敗する可能性のある他の方法を探します。そして、隠された境界を探してください!

66

境界値分析とは、単にクラスの境界付近の値を選択することを意味します。したがって、入力ドメインをクラスに従って分割し、クラスの中央から値を選択する代わりに、境界からの値を使用します。

たとえば、入力条件が20〜70の範囲の場合、3つの入力クラスがあります。

  1. 20未満
  2. 20〜70
  3. 70以上

次に、境界値分析の場合、入力= 19、20、21、69、70、71を選択します。このタイプの分析では、境界上のエラーが検出されます。

19

等価性テストは、境界値テストで補足する必要があります。

たとえば、1〜12の値を取る関数の同等のテストの場合
(1年のうちの数ヶ月)パーティションは次のようになります。

  • 1(0、-1、-2)未満の値、無効なパーティション
  • 1〜12の値、有効なパーティション
  • 12より大きい値、無効なパーティション
  • 等価性テストの場合、これらの各パーティションクラスからテスト入力として1つの値を選択するだけで十分です。つまり、-2、6、および15の値を持つテストは、関数の動作をテストするのに十分であると見なされます。しかし、これらの値は Off-by-oneエラー をキャッチしません。これは非常に頻繁に発生する可能性があります。

    境界値のテストでは、テスト入力は-1、0、1、11、12、13(境界で)になり、1つずつのエラーをキャッチします。

    私はこれらのテスト方法の両方がお互いを補完するものであると考えています。

    11
    sateesh

    境界値分析は、同値分割の一部またはサブセットです。境界値分析では、ランダムな値の代わりに、境界内の値のみが選択されます。

    1
    Rajasankar