応用情報22年秋 午前 問46

【中分類】
システム開発技術−5. ソフトウェアコード作成及びテスト−(7)ソフトウェアユニットのテスト

【問題を解く前に】
 テストの行い方としては、ブラックボックステストホワイトボックステストがあります(グレーボックスを入れる人もいるけど)

 ホワイトボックステストは、単体テストの際、ソースコードの中身が見える状態において、
 プログラムの命令がすべて通ったかとか、IF文などの条件文が全て通ったかといった、
 命令網羅、条件網羅などを確認します。網羅率が指標となります。

 ブラックボックステストとは、主に結合・総合テストなどで(単体でもあるけど)ソースの中身が
 見れないときに、中身はブラックボックスとして、入力にこれを入れたら、出力はどうなるかで
 確認するテスト。
  まず、結果が同じになるものをあつめ(同値)、そこから代表的なものを取り出して行う同値分割
 や、その際、値の境界値を特にチェックする限界値チェック(境界値チェック)もあります。
 
【解き方】
 ということは、ホワイトボックスに関係するのは・・・

【答え】
(ウ)

【解き終わって】
ホワイトボックスは、網羅率しかみません。ということは、もし、

if( x==5 || y==2)

という条件式があったとき、ホワイトボックステストでは、このif文のtrue,falseしか判断しません。

それじゃあ、試験にならないからというので、x==5でyが2でないケースと、y==2でXが5でないケース、
両方成立するケース、両方成立しないケースなどにわけてしまうと、それは、ホワイトボックスではありません。同値分割しちゃってますから。

でも、ブラックボックスでもありません。ソース見ちゃってますから。

そこで、このように、ソースコードを見て、分岐部分を、同値をみて分解してしまう手法を「グレーボックス」と”いう人もいます”が、まだ、市民権を得ている用語ではありません。