単体テストとは?結合テストとの違いや観点、やり方をわかりやすく解説

【PR】この記事には広告を含みます。
単体テストとは何かを初心者向けにわかりやすく解説

単体テストとは、プログラムの小さな部品が正しく動くかを確認するテストです。

かんたんに言うと、「この部分だけで、思った通りに動くかな?」と確認する作業です。システム全体を見る前に、まず小さな部分を1つずつ見ます。

この記事では、単体テストの意味、結合テストとの違い、確認する観点、やり方、仕様書に書くことを初心者向けにわかりやすく解説します。

ここだけ読めばOK

単体テストとは、プログラムの小さな部品を1つずつ確認するテストです。ボタン、入力チェック、計算などが正しく動くかを見ます。

ほかのIT用語も知りたい方は、初心者向けのIT用語辞典もあわせてご覧ください。

目次

単体テストとは

かんたんに言うと小さな部品ごとの確認

単体テストとは、プログラムの一部を取り出して、正しく動くかを確認するテストです。

プログラムとは、コンピューターに「こう動いてください」と伝える命令のことです。ここでいうテストとは、学校の試験ではなく、作ったものが正しく動くかを確認することです。

たとえば、会員登録の画面に「メールアドレスを入力する場所」があるとします。その入力が正しくチェックされるかを、1つの部品として確認します。

このように、単体テストではシステム全体ではなく、小さな部分を見ます。システムとは、アプリやWebサービスなど、いくつかの機能が集まって動く仕組みのことです。

英語ではユニットテストという

単体テストは、英語で「Unit Test」といいます。読み方は「ユニットテスト」です。

Unitは「単位」や「ひとまとまり」という意味です。そのため、単体テストは「小さな単位ごとのテスト」と考えると分かりやすいです。

現場では、Unit Testを短くして「UT」と呼ぶこともあります。

単体テストの身近な例

家電の部品を1つずつ確認するイメージ

身近な例で考えると、家電を作るときの部品確認に近いです。

リモコン、ボタン、電源、画面などを、それぞれ別々に確認します。部品ごとに問題がないかを見ることで、完成した後の不具合を減らしやすくなります。

ただし、これはあくまでイメージです。ITでいう単体テストは、プログラムの小さな処理が正しく動くかを確認する作業です。

処理とは、コンピューターが行う作業のことです。たとえば、計算する、文字を確認する、画面を切り替えるといった作業です。

ITではプログラムの一部を確認する

ITでは、プログラムの中に多くの処理があります。

たとえば、次のような処理があります。

  • 入力された文字が正しいか確認する
  • 金額を計算する
  • 年齢をもとに表示内容を変える
  • ボタンを押したときに次の画面へ進める

単体テストでは、このような小さな処理を1つずつ確認します。

単体テストを行う目的

小さなミスを早く見つける

単体テストの目的は、小さなミスを早めに見つけることです。

プログラムは、人が作るものです。そのため、文字の書き間違いや、条件の入れ忘れが起きることがあります。

単体テストを行うことで、そうしたミスに早く気づきやすくなります。

あとから直す手間を減らす

システムが大きくなってからミスを見つけると、原因を探すのに時間がかかります。

どの部品が原因なのか分かりにくくなるためです。

単体テストで小さな範囲ごとに確認しておくと、あとから直す手間を減らしやすくなります。

安心して次のテストに進むため

単体テストは、次のテストに進むための土台にもなります。

小さな部品が正しく動いていれば、部品同士をつなげたときの確認がしやすくなります。

そのため、単体テストは開発の中で大切な確認作業です。

単体テストと結合テストの違い

単体テストは部品ごとの確認

単体テストは、プログラムの小さな部品を1つずつ確認するテストです。

たとえば、金額計算の処理だけを見たり、入力チェックの処理だけを見たりします。

見る範囲が小さいため、どこに問題があるのか分かりやすいのが特徴です。

結合テストは部品同士のつながりの確認

結合テストは、複数の部品をつなげたときに正しく動くかを確認するテストです。

たとえば、入力画面、確認画面、登録する処理がつながって正しく動くかを見ます。

単体テストが「部品ごとの確認」なら、結合テストは「部品同士のつながりの確認」です。

単体テスト・結合テスト・システムテストの違い

単体テスト、結合テスト、システムテストは、見る範囲が違います。

システムテストとは、アプリやWebサービス全体が正しく使えるかを確認するテストです。

テスト名見る範囲確認すること
単体テスト小さな部品1つの処理が正しく動くか
結合テスト部品同士のつながりつなげても正しく動くか
システムテストシステム全体全体として使えるか

このように、テストは小さな範囲から大きな範囲へ進むことが多いです。

単体テストで確認する主な観点

単体テストでは、ただ動けばよいわけではありません。

観点とは、「何を見て確認するか」というポイントのことです。いろいろな条件で正しく動くかを確認します。

正常系:正しい使い方をした場合

正常系とは、正しい入力をしたときに、思った通りに動くかを確認することです。

たとえば、ログイン画面で正しいIDとパスワードを入れたときに、ログインできるかを確認します。

まずは、ふつうに使ったときに正しく動くかを見ることが大切です。

異常系:間違った使い方をした場合

異常系とは、間違った入力や想定外の操作をしたときに、正しく対応できるかを確認することです。

たとえば、パスワードを空のまま送信したときに、分かりやすいメッセージが出るかを見ます。

異常系を確認すると、利用者が困りにくい画面にしやすくなります。

境界値:条件が切り替わるギリギリの値

境界値とは、条件が切り替わるギリギリの値のことです。

たとえば、「20歳以上なら利用できる」という条件なら、19歳、20歳、21歳を確認します。

このような境目ではミスが起きやすいため、単体テストでよく確認します。

入力チェック:入れた内容が正しい形か見ること

入力チェックとは、入力された文字や数字が正しい形かを見ることです。

たとえば、メールアドレスに「@」が入っているか、電話番号が数字だけかを確認します。

入力チェックは、会員登録や問い合わせフォームでよく使われます。

計算結果:答えが合っているか見ること

計算を行う処理では、答えが正しいかを確認します。

たとえば、商品の金額、消費税、合計金額が正しく計算されるかを見ます。

お金や点数を扱う処理では、特に大切な観点です。

単体テストのやり方

単体テストのやり方は、むずかしく考えすぎる必要はありません。

基本は、確認する範囲を決め、項目を作り、実行して、結果を残す流れです。

確認する範囲を決める

まず、どの部品を確認するかを決めます。

たとえば、「ログインの入力チェックを見る」「金額計算を見る」などです。

範囲を小さく決めることで、確認しやすくなります。

テスト項目を作る

次に、何を確認するかを項目にします。

たとえば、次のような項目です。

  • 正しい値を入れたら、正しい結果になるか
  • 空のまま送信したら、案内メッセージが出るか
  • 境界値を入れたら、正しく判定されるか

テスト項目を先に作ると、確認もれを減らしやすくなります。

実行して結果を見る

作ったテスト項目に沿って、実際に動かします。

そして、期待した結果と同じかを確認します。

期待結果とは、「こう動くはず」と前もって決めた結果のことです。実行結果とは、実際に動かした結果のことです。

確認した証拠を残す

テストでは、確認した証拠を残すことがあります。

現場では、この証拠を「エビデンス」と呼ぶことがあります。たとえば、画面の画像、実行結果、日付、担当者名などです。

あとから見返したときに、何を確認したのか分かるようにするためです。

自動でテストする方法もある

単体テストは、人が画面を見ながら確認するだけではありません。

最近の開発では、テスト用のプログラムを作り、自動で確認することも多いです。これを自動テストといいます。

たとえば、計算結果が正しいか、入力チェックが正しく動くかを、プログラムが自動で確認します。

自動テストを使うと、同じ確認を何度も行いやすくなります。

単体テスト仕様書とは?確認内容をまとめた表のこと

単体テスト仕様書とは、単体テストの内容や結果をまとめる表やメモのことです。

「何を確認するか」「何を入力するか」「結果はどうだったか」を書きます。会社や現場によって形は違いますが、よく書く内容は似ています。

テスト項目

テスト項目には、何を確認するのかを書きます。

たとえば、「正しいメールアドレスを入力できるか」「空欄のときにメッセージが出るか」などです。

入力値

入力値には、実際に入れる文字や数字を書きます。

たとえば、「test@example.com」「空欄」「19」「20」などです。

何を入れて確認したのかが分かるようにします。

期待結果

期待結果には、正しく動いた場合の結果を書きます。

たとえば、「登録できる」「案内メッセージが表示される」などです。

期待結果を決めておくと、合格かどうかを判断しやすくなります。

実行結果

実行結果には、実際にどうなったかを書きます。

期待結果と同じなら「OK」、違うなら「NG」と書くことがあります。

NGの場合は、どのような違いがあったかも残します。

備考や証拠画像

必要に応じて、備考や証拠画像も残します。

たとえば、画面の画像やログを残すことがあります。ログとは、システムの動きの記録のことです。

後から確認しやすくするために、分かりやすく残すことが大切です。

単体テストのカバレッジとは?テストできた範囲のこと

どこまで確認できたかを表す目安

カバレッジとは、かんたんに言うと「テストできた範囲」のことです。

たとえば、プログラムの中の多くの部分を通って確認できていれば、カバレッジは高くなります。

単体テストでは、確認もれを減らすための参考として使われます。

カバレッジが高くても安心しすぎない

カバレッジが高いことは、よい目安になります。

ただし、カバレッジが高いだけで、すべてのミスが見つかるわけではありません。

大切なのは、利用者の使い方に合ったテスト項目を考えることです。

単体テストで初心者が間違えやすい点

正常系だけで終わらせてしまう

初心者がよく間違えやすいのは、正常系だけを確認して終わることです。

正しい入力で動くことは大切です。しかし、間違った入力のときにどう動くかも大切です。

正常系と異常系の両方を見ると、より使いやすいシステムに近づきます。

結合テストとの違いがあいまいになる

単体テストと結合テストは、どちらもシステムを確認する作業です。

ただし、見る範囲が違います。

単体テストは小さな部品、結合テストは部品同士のつながりを見ると覚えると分かりやすいです。

テスト結果だけを見て理由を残さない

テストでは、OKやNGだけでなく、なぜそう判断したかも大切です。

結果だけでは、あとから見返した人が分からないことがあります。

入力値、期待結果、実行結果を残しておくと、確認しやすくなります。

単体テストに関するよくある質問

単体テストは英語で何と言う?

単体テストは、英語で「Unit Test」といいます。

読み方は「ユニットテスト」です。現場では、短く「UT」と呼ばれることもあります。

単体テストのUTとは何?

UTとは、Unit Testの略です。

意味は単体テストと同じです。プログラムの小さな部品が正しく動くかを確認します。

単体テストと機能テストの違いは?

単体テストは、プログラムの小さな部品ごとの確認です。

機能テストは、利用者から見た機能が正しく動くかを確認するテストです。

たとえば、単体テストでは「金額計算の処理」を見ます。機能テストでは「購入機能として正しく使えるか」を見ます。

ただし、単体テストと機能テストは、分け方の視点が少し違います。単体テストは「どの大きさで見るか」、機能テストは「何を確認するか」に注目した言葉です。

単体テストは誰が行う?

単体テストは、プログラムを作った人が行うことが多いです。

ただし、会社や開発の進め方によって違います。

大切なのは、作ったものを小さな範囲でしっかり確認することです。

まとめ:単体テストとは小さな部品を確認する大切なテスト

単体テストとは、プログラムの小さな部品が正しく動くかを確認するテストです。

システム全体を見る前に、入力チェック、計算、条件分けなどを1つずつ確認します。

単体テストと結合テストの違いは、見る範囲です。単体テストは部品ごと、結合テストは部品同士のつながりを見ます。

単体テストでは、正常系、異常系、境界値、入力チェック、計算結果などを確認します。

単体テスト仕様書には、テスト項目、入力値、期待結果、実行結果、確認した証拠などを残すと分かりやすくなります。

また、最近の開発では、自動テストを使って単体テストを行うこともあります。同じ確認を何度も行いやすくなるため、開発の手助けになります。

まずは「単体テストとは、小さな部品を1つずつ確認するテスト」と覚えておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
目次