たとえるなら

自動車工場の検査です。部品ひとつずつの検査(単体テスト)、エンジンとタイヤを組み合わせた検査(結合テスト)、完成車で実際に走らせる検査(総合テスト)と段階を踏みます。いきなり完成車だけ検査すると、不具合がどの部品のせいか特定に苦労します。

単体テスト 結合テスト 総合テスト
部品ごと、組み合わせ、全体の順に確認。段階を踏むと問題の場所を絞り込める。

もう少しくわしく

テストは、作ったプログラムが意図したとおりに動くかを確認する工程です。「正しい入力で正しく動くか」だけでなく、「間違った入力をされても壊れないか」「同時にたくさんの人が使っても耐えられるか」など、さまざまな角度から確かめます。開発の工程では実装のあとに置かれ、リリース前の関所の役割を果たします。

テストには段階があります。関数や部品ひとつずつを確かめる単体テスト、部品同士をつなげて確かめる結合テスト、システム全体を利用者と同じ操作で通しで確かめる総合テスト。小さい単位から順に固めていくことで、問題が見つかったときに原因の場所を絞り込みやすくなります。

かつてテストは人が手で行うものでしたが、いまはプログラムでテストを自動化するのが主流です。テスト用のプログラムを一度書いておけば、修正のたびに何百項目もの確認を数分で繰り返せます。「修正したら別の場所が壊れた」という事故をすぐ検知できるため、自動テストは安心して開発スピードを上げるための土台とされています。

現場での使われ方

「実装は終わったので、これからテストに入ります」

機能を作る工程が完了し、正しく動くかを確認する工程へ進む、という進捗報告です。

「テストで不具合が3件見つかりました」

リリース前の確認で問題を検出できた、という報告。本番で見つかるより、ずっと良い知らせです。

よくある質問

テストをすればバグはゼロになりますか?

なりません。テストは「用意した確認項目の範囲で問題がない」ことを示すもので、すべての使われ方を網羅することは不可能です。それでも、重要な部分を重点的にテストすることで、リスクを大きく減らせます。

テストは誰がやるのですか?

単体テストは実装したエンジニア自身が書くことが多く、総合テストは専門のテスト担当者(QAと呼ばれます)や、発注側の担当者が行うこともあります。プロジェクトの体制によってさまざまです。

関連用語

GUIDE

職種図鑑

この用語を使って働く人たちは、どんな仕事をしているの?

見てみる →
GUIDE

ITの学び方

もっと知りたくなったら。初心者向けの教材の選び方を案内します。

見てみる →