テスト駆動開発基礎

#ソフトウェアテスト・品質

テスト駆動開発基礎 Red-Greenサイクルで身につける、きれいなコードの書き方

テストは、安心してコードを直すためにある。

Overview

研修概要

テスト駆動開発基礎は、ソフトウェア開発における「動作するきれいなコード」の実現を目標に、Red-Green-リファクタリングのサイクルを体で覚える実践型研修です。テストファーストの考え方と副作用の少ないコードの書き方を、Java/JUnitを使った演習を通じて習得します。

TODOリストによる問題の分割・仮実装・三角測量・リファクタリングという一連の手順を体系的に提供することで、リリース後のバグ修正コストを構造的に抑制し、変化に強い開発体制を確立させます。

Issues

こんな課題を持つ企業におすすめ

ビジネス現場

  • リリース後のバグ修正が繰り返し発生し、開発コストと顧客対応工数が膨らんでいる。
  • コードの変更のたびに予期しない箇所が壊れる「リファクタリング恐怖症」により、技術的負債が解消できないまま蓄積している。
  • 設計書やコメントが不足し、担当者交代のたびにコードの意図を読み解く工数が発生して引き継ぎコストが高止まりしている
  • アジャイル・CI/CDの導入を検討しているが、自動テストの整備が進まずスプリントごとの品質保証ができていない。
Goals

本研修の到達目標

For Engineers

開発現場

  • 1 TDDのサイクルを実践できるようになります Red-Green-リファクタリングの手順を体得し、テストを先に書いてから実装するテストファーストを習慣化できます。
  • 2 副作用の少ない設計でコードを書けるようになります TODOリストによる問題の分割・仮実装・三角測量の手順を通じ、小さく独立した単位で実装する設計力を身につけます。
  • 3 Spring Framework環境でのテストを実装できるようになります JUnit 5とMockitoを使ったサービス層のユニットテストを、モックを活用しながら実践的に実装できるようになります。
For Organization

組織への期待効果

  • 1 リリース後のバグ修正コストの抑制 テストが安全網として機能することで、仕様変更や機能追加の際に発生する手戻り工数とリリース判断の不確実性を低減します。
  • 2 担当者交代時の引き継ぎコストの最小化 テストコードが仕様書として機能する開発習慣が根付くことで、コードの意図をドキュメントなしに伝達できる体制を整備します。
  • 3 アジャイル・CI/CD導入基盤の確立 自動テストを継続的に整備する習慣が組織に浸透することで、スプリントごとの品質保証とデリバリーサイクル短縮を支える土台を構築します。
Features

本研修の特長

Feature 01

「なぜ失敗させるのか」をサイクルで体得する

Red-Green-リファクタリングという3段階のサイクルを、計算機アプリケーションの実装例を通じて段階的に体験します。テストを先に書くことで設計の意図が明確になり、「動作するきれいなコード」とは何かを論理的に理解できます。

Feature 02

実務に近い演習設計——Spring + Mockitoまで一貫して学ぶ

演習1ではFizzBuzz・約数・BMIを題材にTDDの手順を確認し、演習2では図書館管理システムのドメイン層をSpring Framework+Mockitoで実装します。モックを使ったサービス層テストまで扱う構成は、実際の開発環境に直結します。

Feature 03

テストコードをドキュメントとして残す設計思想

TDDにおけるテストコードは仕様書であるという考え方を、TODOリストの作成から三角測量・リファクタリングまでの流れを通じて体系的に提供します。コードの意図が次の担当者に伝わる開発習慣の定着を支援します。

Curriculum

研修カリキュラム

期間:2日間 / 使用言語・環境:Java / JUnit 5 / Spring Boot / Mockito / VSCode / PostgreSQL

日程 章・学習テーマ 学習内容・習得スキル
1日目 第1章:動作するきれいなコード

TDDの最終ゴールである「動作するきれいなコード」の定義を学びます。副作用のないコードとメンテナンス性の関係を理解します。

第2章:テスト駆動開発のサイクル

Red-Green-リファクタリングのサイクルとTDDの3原則を学びます。仮実装・三角測量・リファクタリングの手順を体系的に理解します。

第3章:TDDでの実装例(Java/JUnit)

TODOリストの作成から四則演算アプリケーションの実装まで、Red-Green-リファクタリングサイクルを実例で体験します。

第4章:「テストする」とは

テストファーストの考え方・TDDサイクルの完了条件・同値分割・境界値分析・状態遷移というテスト技法を学びます。

演習1:TDDの手順確認(FizzBuzz・約数・BMI)

簡単な問題を使ってTDDの手順を確認します。FizzBuzz・約数計算・BMI判定の3題をJUnit 5で実装します。

2日目 第5章:補足(DDD連携・テスト自動化)

DDDとTDDの連携による設計・ドキュメントとしてのテストコード・CI/CDツールとの連携による自動化の考え方を学びます。

演習2-1:図書の検索機能(Spring + Mockito)

図書館管理システムのドメイン層をTDDで実装します。BookServiceImplとMockitoによるモックを使い、書籍検索機能のユニットテストを実装します。

演習2-2/2-3:図書の追加・削除機能

BookServiceImplに書籍の追加・削除メソッドを追加します。引数バリデーション・例外処理・モックの戻り値設定まで含む実践的な演習です。

演習2(オプション):結合テスト・システムテスト

PostgreSQLを使った実際のデータベースとの結合テスト、およびSpring Bootアプリケーション全体を起動してのシステムテストに挑戦します。

研修内容のカスタマイズについて 本研修で使用するフレームワークや演習題材(Spring Boot・JUnit・Mockito・PostgreSQL等)については、御社の実際の開発環境や技術スタックに合わせてカスタマイズした内容での実施も可能です。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

各自のPCに以下のツールをインストールしてご受講ください。別紙手順書に従って事前セットアップをお願いします。

エディタ VSCode(Spring Boot用拡張機能含む)
Java OpenJDK 17(Eclipse Temurin版推奨。他ディストリビューション可)
データベース PostgreSQL 15(他バージョン可。インストーラはEnterpriseDB社サイトよりダウンロード)
OS Windows / macOS(いずれも可)

前提知識

  • Java基礎:クラス・メソッド・条件分岐・ループなど基本的なJavaの文法を理解していること。
  • オブジェクト指向の概念:継承・カプセル化・インターフェースについて基本的な知識があること。
  • Spring Framework(演習2):Spring Bootの基本構造についての知識があることが望ましい(未経験の場合は事前にご相談ください)。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。

必須 プライバシーポリシーを確認し、同意する