単体テストとデバッグの違いについて
単体テストとデバッグの違いが判りません。
現在、ウェブエンジニアとして仕事をしております。(1年目)
先日、新規画面作成を任され、作成が完了したのですが、
単体テストの粒度がわからず、困っております。
単体テストについてGoogleで調べてみると、新規作成した関数だったりが
機能していることを単体テストとしているような旨が記載されておりました。
ただ、それはデバッグ作業に該当するものだと思っております。
完成後に仕様書通りの機能が動いているかのテストは、
単体テストではなく「結合テスト」に該当するのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答2件
0
ベストアンサー
一般的には単体テストは、プログラミングのUnit単位のテストですので、関数やクラスなどを動かして、動作確認することを指します。
場合によっては、テストフレームワークを使ったり、単体テストのテストケースを紙に書いたりして、プロジェクト内で管理されます。
テストの手法(テストフレームワークを使うとか紙に書くなど)や、粒度は、プロジェクトごとに策定され、テスト計画書に記載されます。
一方で、デバッグはDe-bugであり、バグを取り除く作業の事を指します。
または、IDEなどのデバッグ機能(ステップ実行など)を指す場合もあると思います。
ですので、単体テストとデバッグは別の作業ということになります。
テストの粒度で困っているということですが、一般的には、単体テストは完全なテストすることを目標にするべきだと思います。
ただ、プロジェクトの品質管理やテスト方針がテスト計画で決められているなら、そちらに従う必要がありますので、テスト計画書を確認してみて、もしも計画がなければ、PMやプログラムリーダーに、テストの粒度について相談すると良いかも知れません。
また、テストについて本格的に勉強してみたいということであれば、数は少ないですが、ソフトウェアテストについての書籍などがありますので、こういうのを読んでみると良いかもしれません。
投稿2022/11/15 00:39
編集2022/11/15 00:43総合スコア1341
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
0
回答
会社や現場によってテスト粒度や成果物の定義は異なるので、上長(や場合によっては取引先)に確認する以外に正解にたどり着く方法は存在しません。
上長に相談しましょう。
(相談しても回答してくれないなら、残念なことに正解にたどり着く方法は存在しません。)
一般論
単体テストについてGoogleで調べてみると、新規作成した関数だったりが
機能していることを単体テストとしているような旨が記載されておりました。
ただ、それはデバッグ作業に該当するものだと思っております。
システムエンジニアリングにおける「テスト」は、
「後から他者が確認、再検証可能な形で実施され、後工程に対して前工程として要求される要件をクリアしたことを保証するもの(=品質保証テスト)」くらいの意味合いを持つことが多いです。
一方でデバッグは、開発において機能を満たしているかを確認、修正する一連の作業です。
デバッグが完璧であればテストもクリアするという点ではやっていることが重なる部分も多いのですが、
両者は目的が違うので、別工程として個別に実施されるのが望ましいです。
実施内容も完全には重なりません。
例えば、テストには修正は含まれませんし、
デバッグは他者が再検証出来るようなエビデンスを残す必要はありません。
完成後に仕様書通りの機能が動いているかのテストは、
単体テストではなく「結合テスト」に該当するのでしょうか?
これは完全にその開発現場/チームによって変わるので、一般論ですら回答が出来ません。
投稿2022/11/14 05:12
総合スコア18637
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Q&A
受付中
フレームワークを変更した際に起きるInvalidCastExceptionを解決したい
回答1
クリップ1
更新
2023/05/26
Q&A
受付中
Dijkstra法について
回答1
クリップ0
更新
2023/04/28
意見交換
クローズ
Pythonの将来や動向について
回答16
クリップ0
更新
2023/03/20
Q&A
受付中
Windows上で扱うタイムスタンプ関数には謎の遅延(空白時間)が生まれる?
回答2
クリップ2
更新
2023/05/25
Q&A
受付中
Accessデータ連携のVBAによるファイル名変更
回答2
クリップ0
更新
2023/04/27
Q&A
解決済
TLS対応にしているGo言語のサーバを、Dockerコンテナの中から使えるようにしたい
回答1
クリップ0
更新
2023/05/11
Q&A
解決済
Pythonでeval,execを使った条件分岐課題の解法について
回答4
クリップ4
更新
2023/04/23
意見交換
クローズ
APIサイトとは何でしょうか?
回答11
クリップ2
更新
2023/05/15
同じタグがついた質問を見る
一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。
PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。