Part8:ブラックボックステスト1 – 同値分割と境界値分析

ことり「ブラックボックステストは、プログラムの中身を見るんじゃなくて、システムの仕様に基づいてテストする技法」
花陽「作り方の正しさじゃなくて、目的を達成できるかを見るんだね」
ことり「これも色々なやり方があるんだけど、同値分割、境界値分析、デシジョンテーブル、状態遷移の4つを紹介するね」

ことり「今回は、同値分割と境界値分析。この2つは関連が深いから、あわせて覚えておくといいかな」


例題

ことり「スコアマッチ、やるよね?」
穂乃果「あ、えーと・・・うん」
花陽「は、はい・・・」
ことり「2人とも目が泳いでるよ?」
穂乃果(だって、この前の海未ちゃんの様子聞いたら・・・)

ことり「イベントランキングで10000位までだとイベントSRが2枚、50000位までだと1枚もらえます。これをテストするのに、穂乃果ちゃんはどうする?」
穂乃果「ええっと・・・と、とりあえず1位の人は2枚もらえるよね。で、2位の人も2枚、3位の人も2枚・・・」
ことり「そうやって何万件もテストしてたらいつまで経っても終わらないよね」
穂乃果「うん・・・でも、いいのっ!やるったらやる!」
ことり「穂乃果ちゃん、これはやっちゃだめなやつだよ・・・」


同値分割

ことり「同値分割、という技法では、データを同じ意味を持つグループに分割して、それぞれのグループの任意の値をテストします。このグループを同値クラスと呼びます」
花陽「イベントSRが2枚もらえるグループと、1枚のグループと、もらえないグループ、かな」
ことり「そうだね。その各グループから代表値を1つ選んでテストに使うの。花陽ちゃんが挙げた3グループは有効同値クラスって呼ぶんだ」
穂乃果「有効っていうことは、無効もあるの?」
ことり「うん。リリースされたスクフェスのシステム上はできないんだけど、テストの段階では本来あり得ない値のテストもするんだ」
花陽「ゼロとか、マイナスとか?」
ことり「正解♪ そういう、システムが受け入れない値を無効同値クラスっていいます」

ことり「ここまでで、有効同値クラスが3つ、無効同値クラスが1つ定義できました」

  • 有効同値クラス
    • 1~10000
    • 10001~50000
    • 50001~
  • 無効同値クラス
    • ~0

ことり「あとは、それぞれから1つ代表値を選んでテストするだけ。代表値は、なんでもいいよ」
穂乃果「じゃあ、5000と、25000と、55000と、-1」
ことり「うん、それで大丈夫」


境界値分析

ことり「プログラム書いてて間違えやすいのって、分岐条件なんだよね。ブランチカバレッジのところでも話したけど」
花陽「~以上と~より大きいを間違えたりすると変なことになっちゃうもんね」
ことり「だから、そういうところを狙ってテストするのが境界値分析」

ことり「さっき穂乃果ちゃんが挙げてくれた4つのテストパターンだと、境界値が正しく処理されるかはテストできないよね」
穂乃果「うーん、そうだよね・・・」
ことり「なので、同値クラスが切り替わるポイントをテストします。たとえば、10000と10001を試して、もらえる枚数が切り替わっていれば大丈夫」
穂乃果「あ、なるほど! じゃあ50000と50001とか、0と1とかをテストすればいいんだねっ!」
ことり「そう♪ この例だと、0、1、10000、10001、50000、50001の6パターンをテストすればいいことになるね」


ことり「この2つは、ブラックボックステストの基本中の基本。テストする人だけじゃなくて、コード書く人も、しっかり覚えておいてね♪」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です