基本を磨く!TDDハンズオンで再認識したテスト駆動開発の魅力

2025年08月04日 月曜日


【この記事を書いた人】
伊藤 綾夏

名古屋支社開発チームのスクラムマスターとして日々奮闘中。よいサービス、よいプロダクトは楽しく元気なチームから生まれると思っています!関わる人すべてが笑顔になるために、私は何ができるのだろうか・・・。

「基本を磨く!TDDハンズオンで再認識したテスト駆動開発の魅力」のイメージ

名古屋支社開発チームでは、TDDを開発の基本手法として取り入れています。

先日技術力とアジャイルを両立する実践として、名古屋支社開発チームのテックリードがTDD(テスト駆動開発)ハンズオンを開催しました。
TDDの基本、実施内容、名古屋支社開発チームでの取り組み、そしてAI活用との親和性についてご紹介します。

テスト駆動開発(TDD)とは

テスト駆動開発(Test-Driven Development: TDD)は、ソフトウェア開発手法の一つです。
実装前にテストコードを作成し、そのテストを基に実装とリファクタリングを進める「テストファースト」のアプローチで、
以下の3つのサイクルで開発を進めます。

  1. レッド: 実装したい機能に対して、失敗するテストコードを書く
  2. グリーン: テストを通すための最小限のコードを実装する
  3. リファクタリング: テストが通った状態を維持しながら、コードの整理と最適化を行う

どんなハンズオンをしたのか

今回のハンズオンは名古屋支社開発チームを対象に、TDDについての座学、ライブコーディング、ハンズオンの構成で実施しました。
ハンズオンではGitHub Copilotを使用し、問題分割とAIへの指示を実際に見て、手を動かしながら学びました。

1回目: 座学 + ライブコーディング

テックリードがTDDの基本概念などの解説をしました。

基本概念を解説後、Yahtzeeというダイスゲームの得点判定機能の実装をテーマに、テックリードが実際にTDDを用いた解説付きライブコーディングをしました。
画面共有を通じてテックリードがリアルタイムでコードを書きながら、各工程の意図や工夫点を丁寧に説明し、参加者はその過程を見ながら、質問をすることで具体的な実装の流れを理解できました。

2回目: ハンズオン

テックリードが「整数の閉区間を示すクラス(または構造体)の実装」をお題として出して、参加者自身が実際に手を動かしてコーディングをしました。
テックリードも画面共有でライブコーディングをしているので、テックリードと一緒に進める人もいれば、独自に進めながらテックリードと見比べて疑問点や自身のコードとの違いを質問している人もいる、参加者と双方向型のハンズオンでした。

全2回の構成で実施したことで、TDDの基本概念だけでなく、実際の開発現場での適用方法や課題解決の方法を体験することができました。

名古屋支社開発チームにおけるTDDとは

TDDを導入することで、以下のメリットがあると感じています。

  • 不具合の早期検出
    • テストファーストのアプローチにより、開発初期段階で不具合を発見し修正できるため、手戻りを減らすことができる
  • 要件の明確化
    • 先にテストコードを作成することで、機能要件が明確になり、仕様の漏れや誤解を防止できる
  • 開発者の心理的安心感
    • テストが整備されていることで、コードの変更やリファクタリング時に安心して作業に取り組むことができる
  • PO(プロダクトオーナー)への説明の容易化
    • テストコードやその結果がPOにも分かりやすく説明できるため、開発者が実装状況や品質に対する取り組みを伝えやすく、POとの信頼関係がうまれ、開発プロセスの透明性がアップ
  • AI活用時の品質担保
    • TDDで鍛えられる“問題を小さな単位に分割する”スキルは、AIへの指示定義する際に役立っています
    • AIと共同で生成したコードもテスト単位が明確なため、期待する動作の検証が分かりやすく、品質と信頼性アップ

まとめ

名古屋支社開発チームでは、TDDを基本とした開発プロセスを継続的に推進していくとともに、 技術力とアジャイルプラクティスを両立した開発文化をさらに強化し、高品質なサービス提供や内製化の支援ができるように開発者をサポートできる活動を続けていきます。

伊藤 綾夏

2025年08月04日 月曜日

名古屋支社開発チームのスクラムマスターとして日々奮闘中。よいサービス、よいプロダクトは楽しく元気なチームから生まれると思っています!関わる人すべてが笑顔になるために、私は何ができるのだろうか・・・。

Related
関連記事