• ベストアンサー

単体テストについて

システム開発を行う際に、単体テストというものを 行うらしいですね。(勉強している身です。) Webで情報を探すと、単体テストの重要性や テストがいい加減になってきてる等の情報が数多くあり、 思うように欲しい情報が見つかりません。 単体テストを行うに当たって、何が必要ですか? 例えばソースコード。 必要なものと、何に使うかもご教授いただければ幸いです。

noname#61987
noname#61987

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

  • ベストアンサー
noname#46268
noname#46268
回答No.2

ソースコードとは、プログラムそのものの事ですので この場合、机上デバッグと呼ばれる単体テスト項目に該当しますね。 要するに見直し。 後は、そのアプリの動作を全て網羅する事。 インプットデータとアウトプットデータをそろえます。 テスト仕様書というものを作成し、チェックを行います。 納品物となる場合は、アウトプットを添付する場合も。 欲しい回答かどうかわかりませんけどうまく説明できてなかったらすみません。

noname#61987
質問者

補足

ご回答ありがとうございます。 テスト仕様書のほかには、どのようなドキュメントが必要ですか?

その他の回答 (3)

  • MrBan
  • ベストアンサー率53% (331/615)
回答No.4

boost test libraryなんてのもありますね>C++用Unit testツール 典型的なUnit testだと、単体テスト仕様書と、 それに従ったUnit testツール用のテストコードが必要。 大前提に、どういった挙動が正常動作なのか定義した、 関数仕様書などが必要だったりもします。 (場合によっては、Unit test用のコードにすべて集約されてたり することもありえますが) 後は、お仕事だと実施した後の結果報告書/試験成績書の整理など。

  • R32C
  • ベストアンサー率39% (115/290)
回答No.3

Cなら、CUnit for Mr.Ando. C++なら CppUnit-x あたりではないでしょうか?

参考URL:
http://park.ruru.ne.jp/ando/work/CUnitForAndo/html/index_ja.html
  • precog
  • ベストアンサー率22% (966/4314)
回答No.1

スタブとドライバーとデバッガー その関数にテスト項目に沿ったパラメーターを与えて、設計どうりの結果が得られるかを確認します。 デバッガーで全部出来てしまうこともあれば、そのためにコードを書かなければならないこともあるし、コードだけでなく、テストデータやテストDBを作らねばならないこともあります。 また、マルチスレッドに関係するコードなら、スレッドセーフであることを証明する手段も必要です。 それと、試験結果を保存する手段も必要です。

noname#61987
質問者

補足

詳しくありがとうございます。 ドキュメントで、事前に用意するものには、 どのようなものがありますか? テストするチェック表とかあると思うのですが… ドキュメント名を羅列していただくと助かります。

関連するQ&A

  • 【C言語】単体テストのイメージが全くつかない

    閲覧ありがとうございます。 C言語での改修案件に携わっているのですが、当方C言語も開発も経験のないものでして、単体テストについてお伺いしたいです。 システムBの単体テストをしたいとします。 システムBは、別サーバにあるシステムAからソケット通信で電文を受け取り、同サーバにあるシステムCにメッセージキューで電文を送ります。 また逆に、システムCからメッセージキューで電文を受け取り、システムAにソケット通信で電文を送ることもあります。 基本的にデータの中継を担うシステムです。 このとき、一体システムBの単体テストはどのような項目をやるのが正しいのでしょうか? (※CUnit等は使えません) JavaはJUnitを使っての単体テストの学習はしたことがあるのですが、C言語での単体テストの項目もやり方も全く想像がつきません。 私にPGの才能がないことは重々承知しておりますので、出来れば分かりやすくお教えいただければ幸いです。 よろしくお願いいたします。

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

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

  • C#での単体テストの置き場

    VisualStudioExpressをインストールしてC#の開発を始めました 標準で単体テスト機能を持っていないので NUnitを導入してみましたが C#の慣習ではテストのファイルというのはどこに置くものなのでしょうか? 普段はrubyでWebアプリを作っているのですが アプリケーション周りはほとんど知らない人間です

  • ビッグエンディアンProgramの単体テスト

    以下の条件のCソース(ANSI準拠)をPC(OS:windows2K NTなど)上で単体テストする開発環境(ソフト)は,あるのでしょうか? ・ビッグエンディアンで作成されている ・実機CPUは,PowerPC603e ・テスト結果にてC0 C1カバレージ取得が必要 やはりPCのCPUは,インテル(リトルエンディアン)だからテストは,実機上でしかできないでしょうか? 大変へんな質問で申し訳ありませんが御回答ください。

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

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

  • web系システムのテストについて

    web系システムにおけるテストについてですが、 一般的には単体テスト、結合テスト、システムテストなどありますが、 web系の場合、どこまでが単体でどこまでが結合でといった境界 がはっきりしません。 たとえば、サーバサイドのjavaの場合、JSP、javaScript、HTML、java など複数の要素が含まれており、なにをもって単体と呼ぶかがわか らず、strutsなどのフレームワークを利用した場合はさらに MVCと機能が分離するためさらにテストが複雑です。 テストフェーズ別の具体的な成果物や、テスト項目、 テスト内容などをご教授いただけないでしょうか。 よろしくおねがいします。

  • システムテストの効果的な方法

    30代男で、システム開発をしています。 今まで、プログラミング行程を中心にやってきたのですが、現在人手不足のため、設計からシステムテストも行うことが多くなってきています。 単体テストも大変な作業ですが、システムテストも別の意味で大変な作業ということを実感しています。システムの業務的な知識が必要であるため、いろいろなことを限られた時間で学ぶ必要があります。どのようなテストをすればいいのか、想像を働かせる必要があります。 あまり、時間的な余裕がないので、無理な相談と思いますが、効率的な方法な方法はないものでしょうか。 単体テストでは、JUnitやテスト自動化などの手法が考えられますが、システムテストでは簡単にいかないような気がします。

  • テストフェーズで何をするか

    SI企業で勤めております。 恥ずかしい話ですが、開発の経験が少なく、 各テストフェーズでどういった観点のテストをするのか、 あまりわかっていません。 単体テストは、モジュール内の分岐やエラーハンドリングなど 網羅的に確認するとしてイメージがあります。 これ以外にも、 1.結合テスト 2.機能テスト 3.システムテスト など今まで耳にしました。 それぞれのテストでは、一般的にはこれをする、など 考え方や手法はあるのでしょうか?。 例えば以下のようなテストは、 どのテストでやれば良いのでしょうか?。 ・Webアプリでの画面遷移(ログインして一覧画面から、選択し更新~完了画面の表示) ・夜間バッチの正常終了(バッチは、ジョブスケジューラから起動) (ざっくりですみません、、) 「画面遷移」というのは、システム側(開発者側)から見た用語ですが、その画面遷移の 提供機能である、例えば「在庫参照」、「受注登録」は、ユーザから見た「機能」だと思います。 テストとしては、両方の観点でテストフェーズを設けるものでしょうか・・?。 アドバイスを頂ければ幸いです。

  • ブラックボックステストの内容について

    ITパスポート試験を勉強中の者です。 テスト技法に「限界値分析」「同値分割」がありますが、これはどの段階でのテストなのでしょうか?ブラックボックステストの範囲で行われるテストなのでしょうか? システム開発テストには、単体テスト、結合テスト、システムテスト、運用テストがあり区別が曖昧でよく分かりません。 特に「同値分割、限界値分析」はテスト技法なのでブラックボックステストに限らず、各段階のテストでなされるテストだと思うのですが良く分かりません。ブラックボックステストの中だけで行われるテストなのでしょうか? とすれば、ブラックボックステストはどの段階のテストに入るのでしょうか? ホワイトボックステストは単体テストで行われると記述してありましたが・・・。 文化系で理科系ではないので良く分かりません。宜しくお願いします。

  • システム開発のテスト環境について

    Webシステムの開発を開発会社へ依頼しました。 各テストを行う際に、環境を構築する一部でアプリを実機に乗せてテストを行う際の費用の持ち方なんですが、 その乗せる為の実機費用は開発側、依頼側どちらが持つのでしょうか? まあ契約などの細かい話などもあるかと思いますが・・・。 とりあえず、一般論的な感じでいいので結構です。 言葉足らずで説明不足で申し訳ないですが、よろしくお願います。

専門家に質問してみよう