単体テストのテストケースの考え方(あげかた)について
最近、プログラム(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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 単体テストについて 3 2022/06/02 18:22
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- その他(コンピューター・テクノロジー) テストケースの問題 2 2023/08/14 10:22
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
- IT・エンジニアリング 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:25
- 大学受験 自己推薦書の添削や意見・アドバイスお願いします 2 2022/08/27 19:34
- 中学校 間違った国語の実力テストの勉強? 1 2022/08/28 15:59
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクト指向で開発されたP...
-
詳細設計書の書き方
-
UMLによるシステム設計について
-
システム連絡表とは?
-
jpeg画像をDICOM画像に変換したい
-
Accessでナビゲーションウィン...
-
vncとultravncとrealvncの3つ...
-
ペロブスカイト太陽電池につい...
-
日本は昔々、当時文化の優れた...
-
VBAからIPアドレスを取得...
-
システムエンジニアって、別に...
-
Silverlight2のWebServiceで突...
-
熱意を伝えたい!
-
AIとITの違いを教えてください!
-
データサイエンティストはITの...
-
Web業界でOSやコンパイラーの知...
-
JavaとPHPの違いを教えてくださ...
-
技術職とは?
-
今後のキャリアとして、設計構...
-
なぜ検索エンジンは寡占化する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テストケース数
-
システム連絡表とは?
-
詳細設計・プログラム設計について
-
詳細設計書の書き方
-
結合テストの精査について教え...
-
UMLによるシステム設計について
-
Matlab ハイパスフィルタ
-
基本設計 詳細設計は何をするの?
-
みずほのプログラムを組んだSE...
-
12種のペントミノのうちm 個を...
-
設計書の書き方 業務の流れ
-
オブジェクト指向で開発されたP...
-
vncとultravncとrealvncの3つ...
-
データサイエンティストはITの...
-
Web開発の仕事について。 Web開...
-
Accessでナビゲーションウィン...
-
SQL ServerでDBを構築。これは...
-
AI尿検査のススメ
-
ペロブスカイト太陽電池につい...
-
北朝鮮のハッカーには、SWIFTと...
おすすめ情報