- ベストアンサー
単体テストのテストケースの考え方とは?
- 単体テストを行う際のテストケースのあげかたについて知りたいです。テスト仕様書の作成やテスト対象のフローチャートを考慮することが基本ですが、具体的なテストケースの作り方について教えてください。
- 具体的な例として、javaのMapを使用する場合のテストケースについて考えてみましょう。入力値が固定のMapに含まれるかどうかを判定する処理がある場合、マップ内の値の有無によってテストケースを分けるべきかどうか迷うことがあります。適切なテストケースの作り方について教えてください。
- 単体テストのテストケース作成において、テスト仕様書の作成やフローチャートの考慮が重要です。例えばjavaのMapを使用する場合、マップ内の値の有無によってテストケースを分けるかどうか迷うことがあります。正しいテストケースの作り方を知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
単体テストは仕様書に従うべきものです。 Mapが出てきたのは結果論であって、例えば、switch文とか if文を連ねるやり方も(定数なら尚更)あり得る話です。 フローチャートにしてもYes/Noだけではなく、多分岐的な 書式もあります。 仕様書では「1、2、3はtrue、他はfalse」と書かれているなら、 「1、2、3、それ以外」の全パターンを通過しないといけません。
その他の回答 (1)
- 0909union
- ベストアンサー率39% (325/818)
単体テストとはUTフェーズの事を指しているんですかね。 No1の方の回答が正統派の回答かと思います。 もし、テストをチームで行う場合、又、第三者テスト又はブラックボックステストが、後に控えていて、全体的に、テストがフェーズ管理されている場合、 全体的な中の、単体テストの位置づけを、プロジェクトリーダー及び第三者テスト又はブラックボックステスト管理者と話し合うべきです。 結局はスケジュールに集約されますが、仕様書が実装よりも前に書かれることが、そんなに多いか? と言う事になり、仕様書が先に在る場合(モジュール単体の)、単体テスト+入力値以外のテストをする事が、どれだけスケジュールに影響するか天秤にかける必要があります。 通常単体テストとは、0か1です。1つの入力に対して一つ回答を得るです。 ようは、後半のテストとの量と質のバランスです。 UTで発見されるべき事柄は、実は結構存在していて、後から考えるとUTで発見されていてもおかしくなかった。と言うのが多いはずです。しかし実際にはUTでは発見されない。 それは結果に対しての予測が甘いからです。 そのモジュールの使われ方が予測されていない所で起きていることが、最も多く、それがUTで発見されなければならないのか? これは、あきらかにスケジュールの問題です。担当のコーダー又は、設計者が係わったテスト中での発見でよいかと。 一番多いのが、サニタジするときですね。だれが管理するんでしょうね。最後のブラックボックステストで分かる事は、「その文字が使われる事は予測しなかったの?」です。 でもモジュールのコーダーから言わせると、設計には問題ないし単体テストでも問題なかった。この問題が答えです。