質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

Q&A

解決済

単体テスト・デバッグ・結合テストの違いについてがわかりません。

Mr.JJJ
Oppeke_Life

総合スコア10

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

2回答

0グッド

0クリップ

301閲覧

投稿2022/11/12 06:05

単体テストとデバッグの違いについて

単体テストとデバッグの違いが判りません。
現在、ウェブエンジニアとして仕事をしております。(1年目)

先日、新規画面作成を任され、作成が完了したのですが、
単体テストの粒度がわからず、困っております。

単体テストについてGoogleで調べてみると、新規作成した関数だったりが
機能していることを単体テストとしているような旨が記載されておりました。
ただ、それはデバッグ作業に該当するものだと思っております。

完成後に仕様書通りの機能が動いているかのテストは、
単体テストではなく「結合テスト」に該当するのでしょうか?

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/11/12 06:53

こちらの質問が他のユーザーから「問題・課題が含まれていない質問」という指摘を受けました。

2022/11/12 07:10

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

Zuishin

2022/11/12 07:09

会社の誰も知らないので代表して聞いているんですか?

回答2

0

ベストアンサー

一般的には単体テストは、プログラミングのUnit単位のテストですので、関数やクラスなどを動かして、動作確認することを指します。
場合によっては、テストフレームワークを使ったり、単体テストのテストケースを紙に書いたりして、プロジェクト内で管理されます。
テストの手法(テストフレームワークを使うとか紙に書くなど)や、粒度は、プロジェクトごとに策定され、テスト計画書に記載されます。

一方で、デバッグはDe-bugであり、バグを取り除く作業の事を指します。
または、IDEなどのデバッグ機能(ステップ実行など)を指す場合もあると思います。

ですので、単体テストとデバッグは別の作業ということになります。

テストの粒度で困っているということですが、一般的には、単体テストは完全なテストすることを目標にするべきだと思います。
ただ、プロジェクトの品質管理やテスト方針がテスト計画で決められているなら、そちらに従う必要がありますので、テスト計画書を確認してみて、もしも計画がなければ、PMやプログラムリーダーに、テストの粒度について相談すると良いかも知れません。

また、テストについて本格的に勉強してみたいということであれば、数は少ないですが、ソフトウェアテストについての書籍などがありますので、こういうのを読んでみると良いかもしれません。

https://www.amazon.co.jp/dp/B093Q13V96/

投稿2022/11/15 00:39

編集2022/11/15 00:43
take88

総合スコア1323

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Mr.JJJ

2022/11/27 08:19

非常にわかりやすいご回答ありがとうございました。 大変参考になりました。

0

回答

会社や現場によってテスト粒度や成果物の定義は異なるので、上長(や場合によっては取引先)に確認する以外に正解にたどり着く方法は存在しません。
上長に相談しましょう。
(相談しても回答してくれないなら、残念なことに正解にたどり着く方法は存在しません。)

一般論

単体テストについてGoogleで調べてみると、新規作成した関数だったりが
機能していることを単体テストとしているような旨が記載されておりました。
ただ、それはデバッグ作業に該当するものだと思っております。

システムエンジニアリングにおける「テスト」は、
「後から他者が確認、再検証可能な形で実施され、後工程に対して前工程として要求される要件をクリアしたことを保証するもの(=品質保証テスト)」くらいの意味合いを持つことが多いです。

一方でデバッグは、開発において機能を満たしているかを確認、修正する一連の作業です。

デバッグが完璧であればテストもクリアするという点ではやっていることが重なる部分も多いのですが、
両者は目的が違うので、別工程として個別に実施されるのが望ましいです。

実施内容も完全には重なりません。
例えば、テストには修正は含まれませんし、
デバッグは他者が再検証出来るようなエビデンスを残す必要はありません。

完成後に仕様書通りの機能が動いているかのテストは、
単体テストではなく「結合テスト」に該当するのでしょうか?

これは完全にその開発現場/チームによって変わるので、一般論ですら回答が出来ません。

投稿2022/11/14 05:12

tanat

総合スコア18529

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。