
テストコードを書けるか書けないかで現場の評価が変わる
テストコードとは何か
「テストコード」という
たとえば、
現場では、
テストの種類
テストには
- ユニットテスト — 関数や
クラスなど、 最小単位の 動作を 検証する。 実行速度が 速く、 最も 頻繁に 書かれる - 結合
テスト — 複数の(インテグレーションテスト) モジュールが 連携して 正しく 動くかを 検証する。APIと データベースの 連携などが 対象 - E2Eテスト
(エンドツーエンドテスト) — ユーザーの操作を ブラウザ上で シミュレーションし、 アプリ全体の 動作を 検証する
実務では、
テストがあると何が変わるのか
テストコードがある
- 既存機能を
壊す変更を、 コミット前に 検出できる - リファクタリング
(コードの 整理)を 恐れずに 行える - 新しい
メンバーが 加わった とき、 テストが 仕様書の 代わりになる - コードレビューの
質が 上がる( 「テスト通って るから、 最低限の 品質は 担保されて いる」)
逆に、
テストが書けないエンジニアが現場で困ること
多くの
しかし、
プルリクエストが通らない
現場では、
何をテストすればいいかわからない
テストの
- 正常系
(期待通りの 入力をした とき、 期待通りの 結果が 返る こと) - 異常系
(不正な 入力をした とき、 適切に エラーハンドリングされる こと) - 境界値
(制限値の ギリギリの 値で 正しく 動く こと)
この
バグ修正に時間がかかる
テストがない
テストを
テストコードを学ぶには
テストコードを
最低限押さえるべきツールと概念
フロントエンド開発であれば、
- Jest / Vitest — JavaScriptの
ユニットテストフレームワーク - React Testing Library — Reactコンポーネントの
テスト用ライブラリ - Playwright / Cypress — E2Eテストツール
バックエンドであれば、
「テストしやすいコード」を書く力が重要
テストを
テストしにくいコードには
- 一つの
関数に 複数の 責務が 詰め込まれて いる - 外部依存
(データベースや API)が 直接呼ばれて いる - グローバルな
状態に 依存している
これらを
実践的に学ぶ方法
- 既存の
オープンソースプロジェクトの テストコードを 読む - 自分の
ポートフォリオに テストを 追加してみる - テストが
カリキュラムに 含まれる スクールで 学ぶ
特に
テストを書く文化がある環境を選ぶ
テストコードの
面接で確認すべきポイント
- テストカバレッジ
(コード全体のうちテストで カバーされて いる 割合)はどのくらいか - CI/CD
(継続的インテグレーション/継続的デリバリー)で テストが 自動実行されて いるか - テストを
書く 時間が スケジュールに 含まれているか
テストの
テストがないコードベースに配属されたら
もし配属先の
- まず新機能に
テストを 書く ことから 始める - バグ修正のたびに、
該当箇所の テストを 追加する - 小さな
成功事例を 作り、 チームに 「テストの 価値」を 示す
地道ですが、
ゆめさくエンジニアの
テストコードを
コードレビュー文化を
テストと
チーム開発が
テストは
「学習」と
スクールで
近道はありません。



