プログラムテストケースの網羅性について

  • このトピックは空です。
4件の返信スレッドを表示中
  • 投稿者
    投稿
    • #992 返信
      nobody
      ゲスト

      p.468以降で各テストの解説があります。

      ●判定条件網羅について
      判定条件「真」と「偽」をテストする必要があるので、
      「真・真」「真・偽」で、テストケースは2つと解説されていますが、
      「真・真」「偽・偽」でも、いいのでしょうか?

      ●条件網羅について
      A条件とB条件の各条件で「真」と「偽」をテストする必要があるので、
      「真・偽」「偽・真」で、テストケースは2つと解説されていますが、
      「真・真」「偽・偽」でも、いいのでしょうか?

      上記の「判定条件網羅」と「条件網羅」について、
      「真・真」「偽・偽」とした場合でも、テストケースは2つであるため、
      私は、これでもいいのでは?と思っていたのですが…問題は次です…

      ●判定条件/条件網羅について
      判定条件も条件も「真」と「偽」をテストする必要があるので、
      「真・偽」「偽・真」「真・真」で、テストケースは3つと解説されています。
      しかし、上記同様「真・真」「偽・偽」の場合、
      判定条件も条件も「真」と「偽」をテストできているように思えます。
      この場合のテストケースは3つではなく、2つとなります。

      「真・真」「偽・偽」で考えては、駄目な理由を教えてください。

    • #993 返信
      nobody
      ゲスト

      > ●判定条件網羅について
      > 「真・真」「偽・偽」でも、いいのでしょうか?

      大丈夫です。
      p.468の図で、①は「真・真」しかないですが、
      AとBのどちらかが偽だと②になるので、②は「真・偽」「偽・真」「偽・偽」のどれでもOKです。

      > ●条件網羅について
      > 「真・真」「偽・偽」でも、いいのでしょうか?

      大丈夫です。
      Aに対して真と偽、Bに対して真と偽がテストできれば、組み合わせは問いません。

      > ●判定条件/条件網羅について
      > 「真・真」「偽・偽」で考えては、駄目な理由を教えてください。

      • #994 返信
        nobody
        ゲスト

        すみません。途中で送信してしまいました。

        > ●判定条件/条件網羅について
        > 「真・真」「偽・偽」で考えては、駄目な理由を教えてください。

        Aが真のとき、Bが真なら「真」、Bが偽なら「偽」と結果が異なるので、
        「真・真」「真・偽」の両方が必要(2つ)

        Aが偽のとき、Bが真でも偽でも結果は「偽」となるので、
        「偽・真」「偽・偽」のどちらかが必要(1つ)

        あわせて3つ必要です。

        「真・真」「偽・偽」だけだと、A(条件)が真で結果(判定条件)が「偽」であるケースがテストできていないため、判定条件/条件が網羅できていないということになります。

    • #995 返信
      nobody
      ゲスト

      ご丁寧にありがとうございます。
      やはり「判定条件/条件」網羅が、よく分かっておりません…
      条件網羅の最後の解説には、
      判定条件が偽の場合しかテストできていないから、「判定条件/条件」網羅を使うとあります。
      「真・真」「偽・偽」の場合、
      「真・真」➡「真」
      「偽・偽」➡「偽」
      となるため、判定条件も「真」と「偽」の両方テストできているのでは?という疑問があります。

      ご説明のとおり、順序立てて考えれば納得なのですが…
      先ずは、A(真)の場合を考えると、
      A(真)・B(真)の場合 … ①
      A(真)・B(偽)の場合 … ②
      単純に【Bの条件網羅】クリア
      条件も「真」と「偽」の両方テストできてるから【判定条件網羅】もクリア
      残るは【Aの条件網羅】だから
      A(偽)・B(何でもいい)… ③
      以上の計3つのテストケースで「判定条件網羅」&「条件網羅」クリア
      順序立てて考えれば納得できますが…
      順序立てて考えずに、単純に…
      A(真)・B(真)の場合と
      A(偽)・B(偽)の場合は?で考えてみると…
      AもBも(真)と(偽)になってるから【条件網羅】クリア
      判定条件も(真)と(偽)になってるから【判定条件網羅】もクリアできてる!?
      と、混乱している状況です。

    • #996 返信
      nobody
      ゲスト

      判定条件/条件網羅は、順序立てて考えるしかないです。
      擬似言語っぽいプログラムにすると、こんな感じになります。(①②③はp.469の番号)

      if Aが真
       if Bが真
        「真」を出力 …③
       else
        「偽」を出力 …①
       endif
      else
       「偽」を出力 …②
      endif

      この全ケースをテストするのが判定条件/条件網羅です。
      p.469の流れ図ではAが偽のときにもBの判定が入っていますが、Bの判定を入れなくても「偽」という結果はわかっているので、テストケースはBが真でも偽でもかまいません。

      逆に、Aが真のときにはBの判定を入れないと、結果が「真」か「偽」かわからないので、「真・真」「真・偽」の組み合わせは必須です。

      • #997 返信
        nobody
        ゲスト

        p.469の流れ図がわかりにくいかもしれないですね。
        Aが偽のときは、Bの判定なしで、そのまま「→→偽」となっている図を考えてみてください。
        それで、判定条件網羅はすべての分岐をテストしないといけないので、3ケースです。

    • #998 返信
      nobody
      ゲスト

      詳しくありがとうございます。
      なるほど、順序立てながらテストケースを考えていくのですね。
      なんとなく理解できたように思えます!
      擬似言語アルゴリズムも苦手で、科目Bに恐々としています…
      ありがとうございました。

4件の返信スレッドを表示中
返信先: プログラムテストケースの網羅性についてで#996に返信


<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">