IT-Q

テストが1本も無いコードに機能を追加することになったら、どこから手をつけますか。

全体に書こうとすると終わらないので、これから触る範囲だけに絞ります。まず現状の挙動をそのまま固定するテストを1本書き、変更を入れて落ちるかどうかで影響範囲を見ます。

面接官が見ているのは現実的な進め方を持っているか(補強だが実務的価値が高い)。

これは「Laravel でテストを書くときの方針として妥当なのはどれですか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • 触る範囲だけに絞り、まず現状の挙動を固定するテストを1本書いてから変更する
    その通りです。正しい仕様が分からなくても「今こう動いている」は記録できます。それを足場にします。
  • 全体にテストを書き終えてから着手する
    終わりません。現実的な進め方ではありません。
  • テストは後回しにして、まず機能を追加する
    期限次第では現実解ですが、影響範囲が分からないまま触ることになります。1本だけでも先に置く方が安全です。
  • 既存コードを先にリファクタリングして読みやすくする
    テストが無い状態でのリファクタリングは、壊したことに気づけません。順序が逆です。

面接官は何を見ているか

  • いきなり全体にテストを書こうとしない、と言えた
  • 触る範囲だけを守る発想を持っていた
  • 動作を固定してから変更する、という順序を言えた

模範解答

全体にテストを書こうとすると終わらないので、これから触る範囲だけに絞ります。まず現状の入出力を確認して、いまの挙動をそのまま固定するテストを1本書く。それから変更を入れて、テストが落ちるかどうかで影響範囲を見ます。正しい仕様が分からなくても「今こう動いている」は記録できるので、それを足場にします。