判定条件網羅とは?テスト項目追加の適切な条件は?

このQ&Aのポイント
  • プログラム中にある複合判定条件1 OR (条件2 AND 条件3)に対して、判定条件網羅(分岐網羅)を行う際、適切なテスト項目を追加する方法について説明します。
  • 解説では、条件1が真で条件2と条件3が偽、条件1が偽で条件2と条件3が真の場合について説明されています。
  • しかし、なぜ真OR(偽AND偽)=真OR偽に、偽OR(真AND真)=偽OR偽ではないのか疑問があります。
回答を見る
  • ベストアンサー

「判定条件網羅(分岐網羅)」について

プログラム中に次の複合判定がある。 条件1 OR (条件2 AND 条件3) 判定条件網羅(分岐網羅)に基づいてテストする場合、 追加するテスト項目として適切なものは、どれか。 [終了したテスト項目] (1)条件1が真、条件2が偽、条件3が偽 (2)条件1が偽、条件2が真、条件3が真 正解:ア 解説には下記の内容が記載されています。 (1)条件1が真、条件2が偽、条件3が偽を条件式に当て嵌めます。 真OR(偽AND偽)=真OR(偽)=真 (2)条件1が偽、条件2が真、条件3が真を条件式に当て嵌めます。 偽OR(真AND真)=偽OR(真)=真 しかしその条件式が読めません。 何故、真OR(偽AND偽)=真OR(偽)=真に、 偽OR(真AND真)=偽OR(真)=真になるのですか。 真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。 お手数お掛けしますが、ご存知の方おられましたら、ご教授お願いします。 以上、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • 1108435
  • ベストアンサー率43% (94/217)
回答No.4

もう一回、もしかしてORとANDをあやふやにしか理解していないかな? 真とか偽と書くのが面倒なので0と1で表現させてね。 ANDの場合 0 AND 0=0 1 AND 0=0 0 AND 1=0 1 AND 1=1 ORの場合 0 OR 0=0 1 OR 0=1 0 OR 1=1 1 OR 1=1 論理式の基本、昔はリレー回路(知らないだろうなあ)で組合わせたときに、AのリレーとBのリレー両方がONにならないとスイッチが入らないようにしたものがAND回路で、どちらかがONになればスイッチが入るようにしたものがOR回路だったわけ。これでしっかり理解してください。 これからもっと面倒なXORやNANDなんて七面倒な論理式も出てくるからね。

wwmomo
質問者

お礼

ご回答ありがとうございます。 「0・1」を当て嵌めてみて分かりました。 >(1)条件1が真、条件2が偽、条件3が偽を条件式に当て嵌めます。 >真OR(偽AND偽)=真OR(偽)=真 1 OR ( 0 AND 0 ) = 1 OR ( 0 ) = 1 >(2)条件1が偽、条件2が真、条件3が真を条件式に当て嵌めます。 >偽OR(真AND真)=偽OR(真)=真 0 OR ( 1 AND 1 ) = 0 OR ( 1 ) = 1 双方1(真)になりました。 OR回路(AND回路)での考えと言うのが頭から抜けていました。 最終的に「真」か「偽」にならなければいけないんですよね。 以上、ありがとうございました。

その他の回答 (3)

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.3

>何故、真OR(偽AND偽)=真OR(偽)=真に、 >偽OR(真AND真)=偽OR(真)=真になるのですか。 (偽AND偽)の全体の真偽値が(偽)にまとめられ, (真AND真)の全体の真偽値が(真)にまとめられることは 疑問なくスルーしている=お分かりになっているようなのに, >真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。 真OR(偽)の全体の真偽値が(真)にまとめられ, 偽OR(真)の全体の真偽値も(真)にまとめられることが分からず, 「真OR偽ではないのですか?」と質問なさる理由が解せません。 質問者は,前者をどのように理解なさっているのでしょう?

wwmomo
質問者

お礼

ご回答ありがとうございます。 下記の考え方が頭から抜けていました。 「真」OR「真」=「真」 「真」OR「偽」=「真」 「偽」OR「真」=「真」 「偽」OR「偽」=「偽」 つまり上記の考え方で既に終えている項目の双方が「真」になるので、 結果が「偽」となる答えを探さなければいけないんですね。 指摘して頂いて変な質問をしていることに気付きました。 以上、ありがとうございました。

  • 1108435
  • ベストアンサー率43% (94/217)
回答No.2

実際手で計算をしてみると良いのかなと。 (1)の場合 条件1が真で 条件2と条件3の結果が真ですから 結果は真 (2)の場合 条件1が偽で 条件2と条件3の結果が真ですから 結果は真 そうなると条件2と条件3の結果を偽にしたテストが欲しいですよね。よって、条件2と条件3に偽になる結果が欲しいわけで。結果が偽になるのはマス目の条件から(ア)しかないということになります。 これでいいかな? ついでに書いておくと (イ)1が真 2と3の結果が偽 なので結果は真 (ウ)1が真 2と3の結果が偽 なので結果は真 (エ)1が真 2と3の結果が真 なので結果は真 1の条件が偽なのは(ア)しかない。

wwmomo
質問者

お礼

ご回答ありがとうございます。 「OR」の考え方を間違えていました。 「真OR(偽)=真」、「偽OR(真)=真」ですね。 そうすると追加しなければいけない項目が分かります。 既に終えている項目が双方「真」なので、「偽」を探すのですね。 すると正解が「ア」になる訳ですね。 以上、ありがとうございました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

>真OR(偽)=真OR偽で、偽OR(真)=真OR偽ではないのですか。 そのとおり。 では「真OR偽」の値はなにかといえば、論理演算の基本から「真」。 すでにtrueのときのテストは行っているから、falseの場合をテストする必要があるので、(ア)。

wwmomo
質問者

お礼

ご回答ありがとうございます。 論理演算の考え方が頭から抜けておりました。 既に「真」となる項目を終えている為、 値が「偽」となる項目を探さなければいけないんですね。 以上、ありがとうございました。

関連するQ&A

  • ☆★☆ホワイトボックステストの条件網羅について質問です!☆★☆

    ☆★☆ホワイトボックステストの条件網羅について質問です!☆★☆ 判定条件網羅は、「判定文における真偽の分岐をいずれか少なくとも1回は実行する」となっており、 例えば A and B の条件があれば、 テストケースは No1 A=真 B=真 AandB=真 No2 A=真 B=偽 AandB=偽 No3 A=偽 B=真 AandB=偽 No3 A=偽 B=偽 AandB=偽 となり 要するに、判定条件網羅は「判定結果が真と偽になる結果をそれぞれ選べ!」と言うことで No1とNo2~No3のいずれかであると理解できます。 ・・・が、しかし 条件網羅は、「複数の条件が組み合わさっている場合、それぞれの条件について少なくとも1回は実行する」 と言った説明が教本ではされていましたが その答えが No2とNo3 となる理由が理解出来ません。 どなたか、条件網羅がなぜ上記のような回答となるのか ご説明を願いします。

  • MSExcel2003で条件分岐の方法

    今まで、条件AまたはBである時は真・それ以外は偽を返す式を作るとき =if(A1="A","真",if(A1="B","真","偽")) という式を作ってきました。これをor記号を使って =if(A="A"or"B","真","偽") というように作り替えたいのですが,うまくいきません。 今は二つの条件に合わない場合は偽としていますが、これが 5つくらいになってくるとこの方法補煩雑で間違いが多くなり使えないのですが、 どうすれば上手な条件分岐をすることができますか?

  • ホワイトボックステスト

    こんにちは。 ホワイトボックステストにおける 「判定条件網羅」「条件網羅」「複合条件網羅」の違いがわかりません。 参考書によると ・判定条件網羅・・・それぞれの判定条件が真の場合の処理と偽の場合の処理を、少なくとも1回は実行する ・それぞれの判定条件が真になる場合と偽になる場合の処理を、少なくとも1回は実行する。 ・複合条件網羅・・・判定条件が複合されているときに。起こりうるすべての場合について、少なくとも1回は実行する となっています。 特に「判定条件網羅」と「条件網羅」の違いがわかりません。 すみませんが、教えてください。

  • 基本情報技術者の平成20年度秋の問44なのですが

    基本情報技術者の平成20年度秋の問44なのですが プログラム中の図の部分の判定条件網羅(分岐網羅)でテストするときのテストケースをして適切なものはどれかという問題で AB 偽偽 真真 が正解らしいのですが何故こうなるかわかりません お手数ですが教えてください。

  • 【Excel2003VBA】セルの文字で条件分岐

    基本的な質問で恐縮ですが、Excel2003のVBAで条件分岐をするときの方法について質問です。 例えば、A1に文字列の「当選」と「あたり」があった場合は、真の処理を、それ以外の場合は偽の処理をする場合は条件式にどのように書けば良いのでしょうか? 次の【条件式】に入る書き方を教えてください。 sub 条件分岐()   If 【 条件式 】 Then     真の場合   Else     偽の場合 End sub

  • 条件式 ! char[0] とは

    こんにちは。 char test[1]; if (! test[0]){ } この条件式 !test[0]の意味が分かりません。 test[0]がどういう状況のとき(どういう値が入っているとき)に 真、または偽になるのでしょうか? お分かりになる方よろしくお願いします。

  • ホワイトボックステストの条件網羅について

    ホワイトボックステストの条件網羅について質問です。 (1)確認ですが、条件網羅のカバレッジはC2でいいのでしょうか? これは会社によって呼び方が違ったりしますか? それともISOかなんかで取り決めがあるのでしょうか? (2)条件網羅のやり方として、if( a or b )だとしたら aが1と0、bが1と0を試せばいいと言う事でしょうか? だから、パターンとして、 パターン1:aが0、bが1のとき。aが1、bが0のとき パターン2:aが1、bが1のとき。aが0、bが0のとき この二つのパターンがあるということでいいでしょうか? この理解があっているかご確認いただきたく。 よろしくお願いいたします。

  • 判定 複数条件

    IF関数の中に AND関数で条件を入れているのですが、 前者しか判定が機能していません。 F4セルについては実際は500と入力されています。 また、AND関数について 3段階に分けた場合は偽の判定しか出ませんでした。 IF(AND(SUM(E7:E23)<B4;"1100"<=F4;F4<"2000");"※";"") http://www.evernote.com/shard/s114/sh/57d89467-3940-4f3e-9467-48a6f4703ae4/b9f5cc164c12eea851ab32e6d6739e58

  • エクセルの条件分岐で困っています

    条件分岐での質問です。 =IF(AND(基礎データ!$D$5="3",$AH$10="名 前"),IF(VLOOKUP($BN$1,optionalA,12)=0,"",VLOOKUP($BN$1,optionalA,12)),"") という関数をつくりました。じつはこれではまだ未完成です。 もし「optionalA」にあてはまる条件がなければ「optionalB」を参照しにいき,「optionalB」にあてはまる条件があれば条件を返し,「optionalB」にあてはまる条件がなければさらに「optionalC」を参照しに行って,あてははまる条件を返すという式を作りたいのですが,この先どうやって関数を書けばよいのでしょうか?どなたか教えてください。

  • 指定した文字列を複数含むという条件

    たとえば、「test」という文字列を2個含む場合に真を返すような条件を作れません。 「2つ以上」ではなくて、「2つ」でもけっこうです。 「test」という文字列が1つであれば偽、2つならば真にしたいでのす。

    • ベストアンサー
    • Perl