こう 聞かれます
- 「なぜテストを
書くのですか」 - 「テストを
書く 時間が あったら、 機能を 作った ほうが よくないですか」 (裏から聞く形) - 「自分の
作った 物で、 テストを 書いた ことは ありますか」
面接官が 見ている点
- 「品質のため」で
止まらず、 何が うれしいのかを 具体的に言えるか - テストが
通っても 不具合が 無いとは 言えない、という 限りを 分かっているか - 少しでも
自分で 書いて 回した 経験があるか
短い答え
- 直した
ときに、 別の 所が 壊れていないかを すぐ 機械で 確かめられるからです。 - 壊れたら
教えてくれるので、 古い コードでも 安心して 直したり 整理したりできます。 - 「この入力ならこの答え」という
決めた 動きが、 読める 形で 残ります。
少し 詳しい答え
壊れた ことに気づく
税込みの
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 218100 円では
テストで 分かる ことの限り
テストが
毎回、 機械に回させる
手で
作った
よく ある間違い
- 「テストが
全部通ったので、 不具合は ありません」と言う 確かめたのは 試した 入力の 分だけです。 試していない所は 分かりません - 真ん中の
値だけを試す不具合は 0 や 空のような 端の 値で 出やすいので、 端を 先に試します - 「テストは品質のため」だけで終える
壊れた ことに 気づける、 安心して 直せる、のように、 何が うれしいかを 具体的に言います
深掘りの問い
- 「どこから
テストを 書きますか」 お金の 計算のように、 間違えると 困る 決まりを 持つ所から 書く、と答えます - 「テストが
書きにくいコードは、 どんな コードですか」 計算と 保存や 表示が 混ざった 関数、と 答えます。 計算だけを 関数に 分けると 試しやすくなります - 「テストを
先に 書くやり方を 知っていますか」先に 通らない テストを 書き、 通るように 作り、 その あと 整える 進め方が ある、と答えます