
単体テストのテストケースの考え方(あげかた)について
最近、プログラム(java)をはじめたものです。
単体テストを行ううえで、
まず、テスト仕様書の作成を行う(正確にいえば詳細設計段階でやりますが…)と思いますが、
そのテストケースのあげかたはどういう着眼点であげればよいのでしょうか?
単体テストは、詳細設計に対してのテストだと思いますので、
基本的には、詳細設計で作成いたフローチャートの分岐をすべてのケース通るような仕様書を作成しています。
ただ、このやり方だと、問題があるような気がするのです。
たとえば、javaでMapを使用していて、
入力値が、値が固定のMap(例:1,2,3)に入っていればtrue、入っていなければfalseという処理があるとき、
フローチャートでは、trueかfalseかの2パターンしかなく、
実際のコードの記述もget(入力値)で、あるかないかだけ判断するため、2パターンです。
しかし、実際は、固定Mapの値1,2,3,とそれ以外という選択肢があるとおもうのですが、
こういう場合は、1、2、3、それ以外の4パターンのテストを行うべきでしょうか?
それとも、Mapにあるかないかだけの部分なので、trueの時とfalseの時の2パターンでいいのでしょうか?
No.1ベストアンサー
- 回答日時:
単体テストは仕様書に従うべきものです。
Mapが出てきたのは結果論であって、例えば、switch文とか
if文を連ねるやり方も(定数なら尚更)あり得る話です。
フローチャートにしてもYes/Noだけではなく、多分岐的な
書式もあります。
仕様書では「1、2、3はtrue、他はfalse」と書かれているなら、
「1、2、3、それ以外」の全パターンを通過しないといけません。
No.2
- 回答日時:
単体テストとはUTフェーズの事を指しているんですかね。
No1の方の回答が正統派の回答かと思います。
もし、テストをチームで行う場合、又、第三者テスト又はブラックボックステストが、後に控えていて、全体的に、テストがフェーズ管理されている場合、
全体的な中の、単体テストの位置づけを、プロジェクトリーダー及び第三者テスト又はブラックボックステスト管理者と話し合うべきです。
結局はスケジュールに集約されますが、仕様書が実装よりも前に書かれることが、そんなに多いか? と言う事になり、仕様書が先に在る場合(モジュール単体の)、単体テスト+入力値以外のテストをする事が、どれだけスケジュールに影響するか天秤にかける必要があります。
通常単体テストとは、0か1です。1つの入力に対して一つ回答を得るです。
ようは、後半のテストとの量と質のバランスです。
UTで発見されるべき事柄は、実は結構存在していて、後から考えるとUTで発見されていてもおかしくなかった。と言うのが多いはずです。しかし実際にはUTでは発見されない。
それは結果に対しての予測が甘いからです。
そのモジュールの使われ方が予測されていない所で起きていることが、最も多く、それがUTで発見されなければならないのか? これは、あきらかにスケジュールの問題です。担当のコーダー又は、設計者が係わったテスト中での発見でよいかと。
一番多いのが、サニタジするときですね。だれが管理するんでしょうね。最後のブラックボックステストで分かる事は、「その文字が使われる事は予測しなかったの?」です。
でもモジュールのコーダーから言わせると、設計には問題ないし単体テストでも問題なかった。この問題が答えです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
pythonでのローカルファイルか...
-
vba 正規表現について教えてく...
-
if関数とは?
-
プログラミングに興味があるの...
-
uwscでPauseキーが押されたら、...
-
Fortranでシステム時刻をカレン...
-
数行削除してコピーするbatファ...
-
秀丸エディターでの置き換え
-
vba クリップボードクリアにつ...
-
Geminiフォーム 画像生成で 人...
-
Python 3.12.2 か一番最新のパ...
-
AIがプログラムする時代のプロ...
-
pythonについて(初心者です)
-
pythonでhtmlファイルの指定文...
-
プログラム上での行のマージ方法
-
覚えることが少ないプログラミ...
-
従業員が1名だけのSierっている...
-
アルゴリズムとコードとは何で...
-
IT業で開発をされてる方々に質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラマーです。このDB設計...
-
設計技法、開発技法について
-
詳細設計書の書き方
-
システム連絡表とは?
-
ソフトウェア設計書の書き方の...
-
テストケース数
-
「サマータイムの自動反映」は...
-
パナソニックが開発した冷却フ...
-
飛蚊症について
-
vncとultravncとrealvncの3つ...
-
Accessでナビゲーションウィン...
-
C言語でWindowsの開発を行なっ...
-
中 イキがしたいです…。
-
いわゆるソシャゲは何のプログ...
-
VisualStudioで、IF文やFor文の...
-
応用技術とは?
-
VBAからIPアドレスを取得...
-
ASP.NetでWebアプリ開発の経験...
-
システム開発の手付金について
-
教えてください!IEのツールバー
おすすめ情報