🎸

同値分割法:効率的なテストケース設計のための基本ガイド JSTQB Foundation Level新シラバスのキーワード解説!

2023/12/04に公開

同値分割法とは?

同値分割法(Equivalence Partitioning, EP)は、一般的なテスト技法の一つです。この技法は、テスト対象のデータを「同値パーティション」と呼ばれるグループに分割し、各パーティションの要素がテスト対象によって同等に処理されると仮定します。

動画解説はこちら!

https://youtu.be/3OMOGJKQUgs

同値分割法の利点と課題

同値分割法はテストプロセスを効率化し、効果を高めますが、正確なパーティションの識別には慎重な分析と深い理解が必要です。

利点

  • テストケースの削減 効率的なテストケースの設計により、テストの数を減らします。
  • 品質向上 テスト対象の全体的な品質向上に貢献します。

課題

  • 複雑さへの対応 複雑なテスト対象では、適切なパーティションを識別するのが困難です。
  • 深い知識が必要 パーティションを正確に作成するためには、テスト対象の詳細な理解が求められます。

同値分割法の基本要素とカバレッジの概念

有効パーティション

テスト対象が処理すべき有効な値を含むグループです。

無効パーティション

テスト対象が処理しない無効な値を含むグループです。

カバレッジアイテム

カバレッジ100%を達成するためには、同値分割法では各パーティションを少なくとも1回はテストケースでカバーする必要があります。

カバレッジの計測

テストケースによってカバーされたパーティションの数を総パーティション数で割って計算します。

イーチチョイスカバレッジ

複数のパーティションセットがある場合、イーチチョイスカバレッジでは各パーティションセットから少なくとも1つのパーティションをカバーすることが要求されます。

同値分割法の実例:オンラインフォームの年齢入力テスト

シナリオ

オンラインフォームでユーザーが自身の年齢を入力します。このフォームは10歳から100歳までのユーザーを対象に設計されています。

データの特性

  • 入力データ:年齢(数値)
  • データの特性:連続的、順序性あり、有限(0歳以上)

パーティションの作成

テスト対象の年齢範囲を以下のように異なる同値パーティションに分割します。これらがカバレッジアイテムです。

  • パーティション1(有効範囲): 10歳〜100歳
  • パーティション2(無効範囲1): 0歳〜9歳
  • パーティション3(無効範囲2): 101歳以上

※無効パーティションとして、文字列や特殊文字も考えられますが、ここでは割愛しています。

テストケースの選定

各パーティションから代表的な値を選び、テストケースとして使用します。例:

  • パーティション1から:25歳、50歳、99歳
  • パーティション2から:5歳、9歳
  • パーティション3から:101歳、150歳

カバレッジの計測

以下のテストを実施することで、同値分割のカバレッジが100%に達します。

  • パーティション1から:25歳
  • パーティション2から:5歳
  • パーティション3から:101歳

テスト実施

選ばれた値を使用してテストを実行し、システムが各パーティションに対して適切に反応するかを確認します。

Discussion