なぜテストを書くのですか

壊れたことに早く気づく、安心して直せる、決めた動きを書き残す、の 3 点で答える問い。テストで分かることの限りまで言えると伝わります。

こう聞かれます

  • 「なぜテストを書くのですか」
  • 「テストを書く時間があったら、機能を作ったほうがよくないですか」(裏から聞く形)
  • 「自分の作った物で、テストを書いたことはありますか」

面接官が見ている点

  • 「品質のため」で止まらず、何がうれしいのかを具体的に言えるか
  • テストが通っても不具合が無いとは言えない、という限りを分かっているか
  • 少しでも自分で書いて回した経験があるか

短い答え

  • 直したときに、別の所が壊れていないかをすぐ機械で確かめられるからです。
  • 壊れたら教えてくれるので、古いコードでも安心して直したり整理したりできます。
  • 「この入力ならこの答え」という決めた動きが、読める形で残ります。

少し詳しい答え

壊れたことに気づく

税込みの値段は端数を切り捨てる、と決めていたとします。誰かが計算を四捨五入に変えてしまっても、テストがあればすぐ気づけます。ここでは、答えと見本を比べて true か false を出す小さな関数で確かめます。

JavaScript

function tax(yen) {
  return Math.round(yen * 1.1);
}

function check(got, want) {
  const ok = got === want;
  console.log(ok, got, want);
}

check(tax(100), 110);
check(tax(199), 218);
true 110 110
false 219 218

100 円では同じ答えになるので、真ん中の値だけを試していたら見逃します。199 円のように端数が出る値を入れて、初めて違いが見えます。どんな値を試すかを決めるのも、テストを書く仕事のうちです。

テストで分かることの限り

テストが確かめるのは、試した入力の分だけです。全部通っても、試していない入力で不具合が無いとは言えません。だから、0、空、いちばん大きい値のような端の値を先に試します。

毎回、機械に回させる

手で試す確認は、忙しいと抜けます。テストをコードにしておけば、push のたびに自動の検査 (CI) で回せるので、同じ確かめを何度でも同じように繰り返せます。

作った物と結ぶなら、たとえば「ポートフォリオの合計金額の計算に、0 件と端数が出る値のテストを書き、計算を直すたびに回していました」のように話します。

よくある間違い

  • 「テストが全部通ったので、不具合はありません」と言う確かめたのは試した入力の分だけです。試していない所は分かりません
  • 真ん中の値だけを試す不具合は 0 や空のような端の値で出やすいので、端を先に試します
  • 「テストは品質のため」だけで終える壊れたことに気づける、安心して直せる、のように、何がうれしいかを具体的に言います

深掘りの問い

  • 「どこからテストを書きますか」お金の計算のように、間違えると困る決まりを持つ所から書く、と答えます
  • 「テストが書きにくいコードは、どんなコードですか」計算と保存や表示が混ざった関数、と答えます。計算だけを関数に分けると試しやすくなります
  • 「テストを先に書くやり方を知っていますか」先に通らないテストを書き、通るように作り、そのあと整える進め方がある、と答えます

確認日 2026年10月23日

技術面接問題の一覧へ戻る