単体テスト(ユニットテスト)とは?部品ひとつの動きを確かめることをやさしく解説
「全部グリーンだから安心」と思ったのにバグが出たとき
AIに頼んだら単体テストがあっという間に揃って、しかも全部グリーン。 そう安心した数日後に、テストは通っているのにバグが出た——そんな経験、ありませんか。その緑がどこまで安心材料なのかを、ここで一度ほどいておきましょう。
単体テスト(ユニットテスト)とは?ひとことで言うと
単体テスト(ユニットテスト)は、関数やメソッドといった「ひとつの小さな部品」が、期待どおりに動くかを自動で確かめるテストのことです。 ざっくり言うと、部品ひとつを取り出して「この入力を渡したら、この答えが返ってくるはず」を機械にチェックさせる仕組みです。アプリ全体ではなく、小さな部品単位で確かめるので「単体」と呼びます。

開発現場ではどこで使う?
実際の開発では、こんな場面で顔を出します。
- 計算や変換など、ロジックが入った関数を書いたあとの動作確認
- 既存コードを直すとき、壊していないかの見張り役
- AIに書かせたコードが、本当に意図どおり動くかの確認
- レビュー前に「最低限ここは通る」という土台づくり
なぜ大事なのか
単体テストの本当の役割は、「いま動くこと」を見せることではなく、これから誰かが壊したときに教えてくれることです。 これがあると、コードを直すたびに手で全部試さなくても、変なところが壊れれば自動で赤く知らせてくれます。逆に、何を確かめているか曖昧なテストだと、緑でも安心できず、確認の手間がこっそり自分に戻ってきます。
具体例で見る
たとえば「合計金額を出す関数」の単体テストなら、「100円の商品を3つ渡したら300円が返る」を確かめます。 ここで大事なのは、「エラーが出ずに動いた」だけで満足しないことです。戻り値が本当に300円かまで見て、はじめてその部品の正しさを守れます。AIが書くテストは、この「中身の確認」が緩いことがよくあります。
つまり現場では?
単体テストを書くということは、部品ひとつごとに「壊れたら教えてくれる見張り役」を置くことです。AIに任せても、その見張り役が本当に機能しているかの最終チェックは、これまで通り人がやる前提で付き合うと無理がありません。
知らないとどう困る?
単体テストの中身を見ないままだと、「全部グリーン=正しい」と思い込んでリリースしてしまいます。 ところがAIのテストは正常系(きれいな入力)に偏りがちで、異常系(想定外の入力)が薄いことが多いです。緑を鵜呑みにすると、肝心の壊れ方を試さないまま本番に出してしまい、後工程でのやり直しが増えてしまいます。
よくある勘違い
- 緑(成功)だから正しい、というのは誤解です。緑は「このテストのとおり動いた」だけで、「正しい」とは言っていません。
- テストの件数が多いほど安心、とも限りません。数より、わざと壊したときに赤くなるかが本質です。
- いまのコードの出力をそのまま「期待値」にすると、バグごと固定されてしまいます。期待値は仕様から決めるのが基本です。
明日やるならこれ
次にAIの単体テストを受け取ったら、大事な分岐を1か所だけ、わざと壊してみましょう(+を-にする、条件を反転させる、など)。 それでテストが赤くなれば、その部品はちゃんと見張れています。緑のままなら、そのテストは何も守れていない合図。この一往復だけで、緑への安心感の質が変わります。
ひとことで言うと
単体テスト(ユニットテスト)とは、部品ひとつの動きを自動で確かめる仕組みで、緑は「ゴール」ではなく「確認の出発点」です。





