ビヘイビア駆動型開発 実践ハンズオン Java編

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

ビヘイビア駆動型開発 実践ハンズオン Java編 自然言語シナリオで、仕様とテストをつなぐ

人が意図を書き、AIがコードに変える時代のテスト設計。

Overview

研修概要

本研修は、Javaを用いたビヘイビア駆動型開発(BDD)の基本概念と実践方法を習得し、実際のプロジェクトでBDDを効果的に導入・活用できる力を身につける実践型ハンズオンです。Gherkin・Cucumber・Playwright・MyBatisの4ツールを組み合わせ、業務担当者にも読めるシナリオ形式でテストを設計・実装します。

ドメイン駆動設計(DDD)の各アーキテクチャ層ごとにBDDテストを実装する構成で、仕様書とテストコードの二重管理解消から自動テストのCI組み込みまでを一気通貫で提供します。仕様とテストが乖離しやすい現場の構造課題を解消し、チーム全体で品質をつくれる体制を確立させます。

Issues

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

ビジネス現場

  • 仕様書とテストコードが別管理になっており、メンテナンスコストが高い:仕様変更のたびに仕様書とテストコードを別々に修正する必要があり、更新漏れによる仕様とテストの乖離が慢性化しているケース。
  • 品質向上がエンジニアだけの取り組みで終わってしまっている:QAや企画担当者がテストの合否基準を把握できず、「何が完成か」をめぐる手戻りやリリース前確認の工数が増大している状態。
  • アジャイル・スクラム開発を実践しているが、テスト文化が根付いていない:スプリントの速度にテスト整備が追いつかず、リリース判断の精度が特定担当者の経験に依存しているケース。
  • 非技術者を交えたレビュープロセスを整備できていない:シナリオが専門的なコードのままで業務担当者がレビューに参加できず、要件合意のコミュニケーションコストが増大しているケース。
Goals

本研修の到達目標

For Engineers

開発現場

  • 1 Gherkinでシナリオを記述し、Cucumberによる自動テストとして実行できるようになります Given・When・Thenの形式でシナリオを記述し、そのままCucumberによる自動テストへと変換する手法を身につけます。
  • 2 ドメイン層からE2Eまで一貫したBDDテストを実装できるようになります ドメイン層・インフラストラクチャ層・アプリケーション層・プレゼンテーション層まで、全レイヤーにわたるテスト実装をハンズオンで習得します。
  • 3 DDDの設計要素とBDDのシナリオを組み合わせた実装ができるようになります 値オブジェクト・エンティティといったDDDの基本要素をBDDのシナリオと組み合わせて実装し、テスト結果から改善策を講じる能力を身につけます。
For Organization

組織への期待効果

  • 1 仕様変更時の二重管理コストの抑制 自然言語のシナリオがそのまま自動テストとして機能する仕組みを確立し、仕様変更のたびに仕様書とテストを別々に修正する手戻り工数とリードタイムの超過を低減します。
  • 2 品質基準をめぐる認識齟齬の解消 企画・QA・開発が同じシナリオ形式で合格基準を共有できる体制を整備し、「何が完成か」をめぐる手戻りやリリース前確認の工数を抑制します。
  • 3 テスト品質の属人化リスクの低減 特定担当者に依存しない再利用可能なテスト資産の作り方を組織に定着させ、担当者交代時の引き継ぎコストを最小化します。品質保証プロセスの属人依存から組織依存への転換を促進します。
Features

本研修の特長

Feature 01

Java×BDD×DDD統合を扱う、一気通貫の実践構成

Cucumber・Playwright・MyBatisを組み合わせ、ドメイン層からプレゼンテーション層までDDDのアーキテクチャ層ごとにBDDテストを実装する構成を提供します。仕様とテストの乖離を防ぐシナリオ駆動の開発フローを、Java環境でそのまま実践できる即戦力の知識として習得します。

Feature 02

シナリオが仕様書として機能する、コミュニケーション設計

Gherkinの自然言語に近いGiven-When-Then形式を用い、エンジニアでない業務担当者でも仕様の正確性を確認できるシナリオ設計を学びます。テストと仕様書が一体化するため、仕様とテストのズレを構造的に防ぎ、要件合意のコミュニケーションコストを削減します。

Feature 03

E2Eテスト安定化まで網羅した、ハンズオン中心の実践設計

Playwright(E2Eテスト)とMockMvc・Mockito(モックライブラリ)の組み合わせにより、不安定なテストの根本原因となる設計上の問題を解消する実装パターンを習得できます。講義とハンズオンを組み合わせ、受講後に即実践できる設計力を提供します。

Curriculum

研修カリキュラム

期間:2日間 / 使用言語:Java 21 / 開発環境:IntelliJ IDEA

日程 章・学習テーマ 学習内容・習得スキル
1日目 第1章:BDDとハンズオンの概要

BDDの歴史・基本原則・TDDとの違いを理解します。Gherkin・Cucumber・Playwrightの概要と役割を把握し、ハンズオンのアーキテクチャとテストの基本的な流れを理解します。

第2章:Gherkin

Feature・Scenario・Scenario Outline・Background・Ruleなどのセクションキーワード、Given・When・Thenのステップキーワード、タグ・コメント・テストデータの記述方法を習得します。シナリオ作成を通じてBDDの記述スタイルを実践します。

第3章:ドメイン層の実装とテスト

値オブジェクト・エンティティの設計原則(不変性・等価性・自己検証・ビジネスロジックのカプセル化)を学びます。GherkinシナリオとCucumberを用いてテストを実装し、共通ステップ・ScenarioContextを活用した再利用可能なテスト構成を習得します。

第4章:インフラストラクチャ層の実装とテスト

MyBatis Mapperインターフェイスのテスト・フック(前処理・後処理)・Adapter・Repositoryパターンの実装とテストを学びます。参照系・更新系メソッドの演習を通じて、データアクセス層の一貫したBDDテスト手法を習得します。

2日目 第5章:アプリケーション層の実装とテスト

ユースケースを実現するサービス(商品登録・検索・変更)の実装と結合テストを行います。NotFoundException・ExistsExceptionの共通ステップ活用やトランザクション管理のためのフック利用など、実務的なテスト戦略を習得します。

第6章:プレゼンテーション層の実装とテスト

PlaywrightによるE2Eテスト(商品登録・検索・変更)とMockMvcを使ったAdviceテストを実践します。正常系・異常系シナリオの実装、テスト可視化機能(PDF生成・動画記録)までを習得します。

研修内容のカスタマイズについて 本研修で利用するO/Rマッパーや各種フレームワークについては、御社の実際の開発環境やプロジェクトの技術スタックに合わせてカスタマイズした内容での実施も可能です。また、C#環境(Reqnroll等)での実施にも対応しております。ぜひお気軽にご相談ください。
Environment

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

受講環境

研修用PCには以下の環境・ツールをご用意ください。

統合開発環境IntelliJ IDEA
SDKJDK 21
実行環境Windows 11
ビルドツールGradle
主要フレームワークSpring Boot・MyBatis・Cucumber・Playwright(周辺ライブラリ含め研修環境に同梱)

前提知識

  • Java言語の基礎知識:変数・クラス・インターフェイス・メソッドを理解していることが必要です。
  • Spring Boot・MyBatis3の基礎知識:Webアプリケーション・Web APIの基礎知識が必要です。
  • ソフトウェアテスト技法:単体テスト・テスト設計の基礎知識が必要です。
  • ドメイン駆動設計(DDD):基礎知識が必要です(本研修ではDDDの講義を交えながら進めます)。
Contact

お問い合わせ

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

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