2017-03-09 5 views
-4

次のコードの断片を考えれば、100%決定カバレッジにはいくつのテストが必要ですか?誰でもこのプログラムの出力を説明することができます

if width > length then 
    biggest_dimension = width 
    if height > width then 
     biggest_dimension = height 
    end_if 
else 
    biggest_dimension = length  
    if height > length then 
     biggest_dimension = height  
    end_if  
end_if 

上記の質問に対する回答は4です。 100%決定カバレッジには4つのテストケースが必要です。誰でも次の質問の答えの説明を教えてもらえますか?

答えて

0

widthheightlengthの間で最大のディメンションを検索するには、これが最適な方法ではありません。ここで私が使用したいものです。

if(length > width) 
    biggest_dimension = width 
else 
    biggest_dimension = length 
endif 

if(biggest_dimension < height) 
    biggest_dimenstion = height 
endif 

これは、バブルソートに多少似ていますが、要素の数はあなたがここにソートアルゴリズムの詳細を読むことができ3.あるので、それは、はるかに簡単です:Bubble, quick, heap, insertion...あり

0

文だけ外側のステートメントが真である場合にアクセス可能になる場合、内側ため4つのテストケースがあり、従って、4つのだけの組み合わせが存在し得る。

  • 、真=外側の真=
  • 外側の真=インナー、インナー= falseを
  • 偽=アウター、インナー=真
  • 偽=外側、偽=インナー

外側の文が偽であるとき、それはあなたのelse文に移動します。

希望はこれが理にかなっています。

2

control flow

私は説明を助けるためにあなたのコードの制御フローを構築してきました。

"IF"ステートメントの "True"と "False"の両方がコードによって実行されなければならないため、100%決定カバレッジを達成するには4つのテストが必要です。書かれたコードは最初の "IF"ステートメントの両側に "IF"ステートメントがあり、それぞれの決定に達するために4つの異なるテストが必要です。

例試験:

  • 試験1:幅= 50センチメートル、長さ= 40 cmの高さ= 40センチメートル

  • 試験2:幅= 50センチメートル、長さ= 40 cmの高さ= 60センチメートル

これらの2つのテストから、決定結果の半分(最初の "IF"の "True"側)が実行されるため、決定カバレッジは現在50%になります。

  • 試験3:幅= 40 cmの長さ= 50センチメートル、高さ= 40センチメートル

  • 試験4:幅= 40 cmの長さ= 50センチメートル、高さ= 60センチメートル

これら2つと最初の「IF」の「偽」側が行使されます。これは決定カバレッジを100%にします。

関連する問題