• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:単体テストのテストケースの考え方(あげかた)について)

単体テストのテストケースの考え方とは?

このQ&Aのポイント
  • 単体テストを行う際のテストケースのあげかたについて知りたいです。テスト仕様書の作成やテスト対象のフローチャートを考慮することが基本ですが、具体的なテストケースの作り方について教えてください。
  • 具体的な例として、javaのMapを使用する場合のテストケースについて考えてみましょう。入力値が固定のMapに含まれるかどうかを判定する処理がある場合、マップ内の値の有無によってテストケースを分けるべきかどうか迷うことがあります。適切なテストケースの作り方について教えてください。
  • 単体テストのテストケース作成において、テスト仕様書の作成やフローチャートの考慮が重要です。例えばjavaのMapを使用する場合、マップ内の値の有無によってテストケースを分けるかどうか迷うことがあります。正しいテストケースの作り方を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

単体テストは仕様書に従うべきものです。 Mapが出てきたのは結果論であって、例えば、switch文とか if文を連ねるやり方も(定数なら尚更)あり得る話です。 フローチャートにしてもYes/Noだけではなく、多分岐的な 書式もあります。 仕様書では「1、2、3はtrue、他はfalse」と書かれているなら、 「1、2、3、それ以外」の全パターンを通過しないといけません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.2

単体テストとはUTフェーズの事を指しているんですかね。 No1の方の回答が正統派の回答かと思います。 もし、テストをチームで行う場合、又、第三者テスト又はブラックボックステストが、後に控えていて、全体的に、テストがフェーズ管理されている場合、 全体的な中の、単体テストの位置づけを、プロジェクトリーダー及び第三者テスト又はブラックボックステスト管理者と話し合うべきです。 結局はスケジュールに集約されますが、仕様書が実装よりも前に書かれることが、そんなに多いか? と言う事になり、仕様書が先に在る場合(モジュール単体の)、単体テスト+入力値以外のテストをする事が、どれだけスケジュールに影響するか天秤にかける必要があります。 通常単体テストとは、0か1です。1つの入力に対して一つ回答を得るです。 ようは、後半のテストとの量と質のバランスです。 UTで発見されるべき事柄は、実は結構存在していて、後から考えるとUTで発見されていてもおかしくなかった。と言うのが多いはずです。しかし実際にはUTでは発見されない。 それは結果に対しての予測が甘いからです。 そのモジュールの使われ方が予測されていない所で起きていることが、最も多く、それがUTで発見されなければならないのか? これは、あきらかにスケジュールの問題です。担当のコーダー又は、設計者が係わったテスト中での発見でよいかと。 一番多いのが、サニタジするときですね。だれが管理するんでしょうね。最後のブラックボックステストで分かる事は、「その文字が使われる事は予測しなかったの?」です。 でもモジュールのコーダーから言わせると、設計には問題ないし単体テストでも問題なかった。この問題が答えです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 単体テストのやり方

    単体テストってどうやってするのですか?教えてください。 例えば、この関数だったらどういうテストコードを書けばいいですか? bool isStart(char c){ if(c == 'Y'){ return true; } else if(c == 'N'){ return false; } }

  • 単体テスト、結合テスト、テスト仕様はどこまで詰め込む?

    今、テスト仕様書を作成しており、 みなさまのご意見が伺えたらと思って書き込みさせていただきました。 単体テスト、結合テストの仕様書を作っているのですが、 パターン数がやはりべらぼうに多いので、どこまでで 割り切るかで悩んでいます。 考えれば考えるほどパターン数は出てくるのですが、 それらを作る工数、テストする工数を考えると、 う~ん・・・という感じです。 100%バグのないシステムを作ることは不可能で、 そのコストは∞とされていますが、可能な限りそうしたいのは やまやまですが。 ある本には顧客が70%を望んでいるなら開発としては71%を達成できたらよく、それ以上を求めることは技術者のエゴと書いてありました。 確かにまずされない操作のテストパターンを大量に生成する時間があったら、クライアントはユーザビリティを上げるなどして欲しいはずです。 でも70%ってどうやって決めたらいいのでしょう? 何でもいいので皆さんどうされているか、アドバイスいただけたら幸いです。

  • VBAで2の乗数のテストパターンを作成したい

    2の乗数のテストパターンを作成したいのですが、どのように作成すればいいのか いまいちわからないので皆さん教えてください。御願いします。 例として2の3乗のパターンを作成したい場合 1パターン目 a=true b=true c=true 2パターン目 a=true b=false c=false 3パターン目 a=false b=true c=false 4パターン目 a=false b=false c=true 5パターン目 a=true b=false c=true 6パターン目 a=true b=true c=false 7パターン目 a=false b=true c=true 8パターン目 a=false b=false c=false といった具合に作りたいのですが、for文やif文をどういう具合に使えばいいか いまいちピンと来ないので、どなたかヒントでもいいので2の乗数のテストパターンの 作成の仕方を教えてくださいよろしく御願いいたいます

  • 作成したSQLの単体テスト【エビデンスの取り方】

    作成したSQLの単体テストをするにあたって、エビデンスの取り方に悩んでおります。 テストケースとしては、 抽出した項目が正しく設定されているか、ホワイトボックスの観点から、 条件に一致する場合、しない場合で期待した値が設定されているか、などです。 抽出したものは50件のレコードで、カラムは15個程度あるとします。 エビデンスは今まではプリントスクリーンで画面キャプチャを取得して、 エクセルに張り付けていました。(SQLを使わないものの単体テスト) そしてインプットとアウトプットのデータを、テストケースのNoに合わせたファイル名にして、 フォルダに格納しておりました。 しかしSQLのテストとなると、どのようにまとめればいいか悩んでおります。 例えばあるカラムが正しい値になっているかというのは、抽出した60件のレコードのうち1レコードをコピーして、エクセルに張り付け、「このカラムのところに○○という値が設定されているため正しい」というようにするのでしょうか。 そうなるとカラムが15個あるので、15個のカラムが正しい値に設定されているかのチェックは 最低でも15個のテストケースが出来上がります。 テストケース(1):カラムAAAの値が○○であること テストケース(2):カラムBBBの値が△であること テストケース(3):カラムCCCの値が□であること    ・    ・    ・ テストケース(15):カラムYYYの値がXであること 1つの1つのテストケースに対して1レコードをコピーして、 「このカラムはこの値になっているから正しい」ということを繰り返すことになるのでしょうか。 そしてインプットとなるデータは、そのデータをDBでつかえるようにインサート文を用意すれば良いのでしょうか。 意味が伝わりにくい文章になってしまいましたが、エビデンスの取り方という点で、 どのように工夫すれば良いのか教えていただきたく、質問致しました。

  • 単体テストの品質の見方を教えてください。

    単体テストの品質を確保するために、 作成したソースのステップ数に対して、 1.「テストケース数」はどれくらい用意すれば、妥当と言えるのでしょうか? 2.「バグ数」もどれくらい上げれば、出し尽くしたと言えるのでしょうか? 現場によって、様々かもしれませんが、客観的に数字を教えて頂きたいです。(数字の出し方とかあれば、お願いします。)

  • WEBシステムの単体テスト

    WEBシステムの単体テストを詳細設計書を見ながらしています。 入力画面、一覧画面、帳票等に対して、 PCL(プログラムチェックリスト、デシジョンテーブル) の書き方がわかりません。 ご経験のある方、アドバイスいただけますか?

  • 単体テストのテストケースにて引数に値を入れたいです

    使用言語:JAVA言語 単刀直入ですが、djunitでの単体テストのメソッドの引数に値を設定したいですがどうすればいいのでしょうか? 引数がString型 Messageクラス public class Messages { public String getMessage(String message) { return message ; } } テストケース作成 public void testGetMessage001() { System.out.println("[testGetMessage001]"); Messages messages = new Messages(); System.out.println(messages.getMessage("Hello")); } とやれば、インスタンス生成してgetmessageメソッドにHelloが入ります。 問題は次の場合で仮にAxxクラスとして Public class Axx{     Public void getAxx(HttpServletRequest request){ ~処理~ } } 引数に(クラス名 オブジェクト名?) この場合、テストケースに Axx axx = new Axx(); System.out.println(messages.getAxx("????")); のようにMessageクラスと同じようにできるのでしょうか? それとも別の方法でHttpServletRequest requestに値をセットできる方法があるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java
  • ’>(より大きい)’のテストパターンについて 

    単体テストにおいて、 下記のような処理(Xが3より大きい場合正常ケースの処理を行い、それ以外は異常ケースの処理を行う) のテストを行う場合、テストパターンはどのようになるでしょうか? IF(X > 3)THEN{正常ケースの処理} ELSE{異常ケースの処理} 正常ケースのテストとしてX=4と異常ケースのテストとしてX=3の2パターンで十分でしょうか? または、異常ケースのテストとしてX=2のパターンも必要でしょうか?

  • テスト仕様書について

    私は入社1年目のPGです。 現在2人で開発を行っています。(VBA) 私はPGで、もう一人(Aとします)はSE兼PGです。 Aさんが詳細設計を作成し、 私がそれを元にプログラミングします。 この場合、テスト仕様書は私が作成するのですよね? でも私が作成するより、詳細設計を作成した Aさんが作成した方がいいような気がするのですが…。 一般的にはどなたが作成するものなのでしょうか? 宜しくお願いします。

  • case文

    こんにちは、SQL初心者です。 値を判定して、trueなら「*」をfalseなら表示なしとするのですが、 判定項目がかなりありまあす。 case文だとtrue、falseで二通り書かないといけないと思うのですが、簡単な方法はありますか? if文みたいにelseを使えればいいのですが。

POCKETALKのデモ機があるお店
このQ&Aのポイント
  • 田舎に住んでいて、近所にはデモ機が体験できそうなお店がありません。
  • 置いてありそうな店舗をご存知の方はいらっしゃいますか?
  • 「ソースネクスト株式会社の製品・サービス」についての質問です。
回答を見る

専門家に質問してみよう