Javascriptの設定を有効にしてください。お使いのブラウザはJavaScriptをサポートしていないか、JavaScriptの設定が無効になっています。このサイトでは、JavaScriptを使用しています。すべての機能をご利用希望の方は、JavaScriptを有効にしてください。 PHPカンファレンス2025参加レポート④「PHPで始める振る舞い駆動開発(BDD)」 - COLOR CHIPS Webシステム・ITサービス コラム

L O A D I N G

PHPカンファレンス2025参加レポート④「PHPで始める振る舞い駆動開発(BDD)」

  • Webシステム
  • Today I Learned

2026.08.28

執筆者

M.N.

駆動開発(Behaviour-Driven Development)

PHPカンファレンス2025の振り返り、第4回です。

今回は「PHPで始める振る舞い駆動開発(Behaviour-Driven Development)」というセッションについてです。

テスト駆動開発(TDD)の名前は聞いたことがある、という方は多いと思いますが、振る舞い駆動開発(BDD)はそのさらに上位概念にあたります。
自分も聞いたことはあったものの、ちゃんと理解できていなかったので、整理するいい機会になりました。


【テスト駆動開発(TDD)おさらい】

まず前提として、テスト駆動開発(TDD)の話がありました。
TDDはざっくり言うと「最初にテストを書いてから実装する」という開発サイクルです。
01 テストを書く
02 テストが通る実装をする
03 リファクタリングする

このサイクルを繰り返すことで、テストで担保されたコードを積み上げていく、という考え方ですね。


【振る舞い駆動開発(BDD)とは】

BDDはTDDの拡張で、「要求仕様に合わせてシステムの振る舞いを組む」という考え方です。

TDDとの大きな違いは、テストコードを「自然言語で記述する」という点です。開発者だけでなく、ビジネス側の人間も読んで理解できるテストを書くことで、開発関係者全員がビジネス要件について議論できる状態を目指します。

セッションで紹介されていたライブラリ構成はこんな感じでした。
・Behat
ビジネス要件をテストするPHP用BDDフレームワーク

・PHPUnit
テストコードを書く

・Selenium
ブラウザ操作の自動化


【BDDにおける「振る舞い」とは何か】

セッションの中で「BDDにおける振る舞いとは何か」という話がありました。

BDDにおける振る舞い=顧客に提供する価値、と定義されていました。
顧客が期待する具体的な価値を、明確でわかりやすいシナリオとして定義する。

そのシナリオをビジネスの観点からテスト(ビジネス志向テスト)することで、システムがその価値を確実に提供していることを保証する、という考え方です。

「ダメな例」として紹介されていたのが、「データベースに接続する」のようなシステム内部の動作に寄ったテストでした。
これだと開発者以外には何をテストしているのかわかりません。

BDDでは、あくまで「ユーザーにとって何が起きるか」という観点でシナリオを書くことが重要なようです。

 

改めて振り返ってみる

【セッションの締め:大切なのは「振る舞いを考え、共有し、テストに落とし込む」こと】

セッションのまとめとして、「大切なのは、振る舞いを考え、共有し、テストに落とし込むこと」という言葉がありました。

ツールやフレームワークの話ではなく、開発者とビジネス側の人間が同じ言葉で話せる状態を作ることが本質だ、というメッセージとして受け取りました。


【振り返ってみての所感】

当時のメモに「このセッションの登壇者が一番早口で大変だった」と書いてあって笑いました。

内容が盛りだくさんだったのかもしれません。

それはさておき、
BDDの導入難度については当時も今も、率直に「高い」と感じています。

その理由が2つあって、
ひとつは、
弊社がそもそもテストコードを書く習慣があまりないこと。TDDすら定着していない状態でBDDに踏み込むのは、ちょっとハードルが高いです。

もうひとつは、
弊社のシステムの業務ロジックが複雑なこと。BDDのシナリオは「自然言語で端的に表す」必要がありますが、「死ぬほどややこしいロジック」を自然言語で簡潔に書けるかというと、正直なところかなり難しいと感じました。

とはいえ、
「開発者以外にも読めるテスト」という発想は、仕様の認識齟齬を防ぐという意味でとても理にかなっています。
いきなりBDDを全面導入するのは難しくても、「テストシナリオをビジネス観点で書いてみる」という意識だけでも持てると、設計の考え方が少し変わるかもしれないな、と思っています。

次回は、「PHP開発者のためのSOLID原則再入門」についてレポートしたいと思います。

今回もお読みいただきありがとうございました。

この記事に関連するColorChipsのサービス

BUSINESS

システム開発

業務効率化の答えはここに。
下町が誇る業務システムソリューション

COLOR CHIPS のWebシステム開発部では、業務効率化やDX推進を支援するシステムの受託開発を行っています。業務フローの見える化やシステム導入支援、運用まで一貫して対応し、企業ごとの課題に合わせた最適なソリューションを提供しています。

VIEW MORE

ITサービス

お客様のシステム運用をサポートし、
長期安定稼動のお手伝いをします

COLOR CHIPS の技術者がお客様の社内に常駐し、お客様システムの監視や運用などの各種サポート業務を行います。
お客様の社内で密接な関係を築きながら業務を行うことでより迅速に、かつご要望に添ったサービスをご提供しています。

技術開発

COLOR CHIPS 先端技術開発ラボ
先端技術で業務をより効率的に!

COLOR CHIPS の研究開発部門は、AI解析、クラウド/スマホアプリ開発、IoT・ウェアラブル機器など、多岐にわたる先端技術に挑戦するラボです。知識と好奇心を武器に、新たなソリューション創出を目指し、未来を切り拓く技術革新に取り組んでいます。

VIEW MORE

オリジナルデザイン時計

NEW COLORS
オリジナル腕時計製作について

NEW COLORSは、20年以上の実績を持つオリジナル腕時計製作の専門ブランドです。卒業記念品や周年記念、ノベルティ、OEMまで目的に応じたデザイン・仕様で対応。初心者でも安心の制作サポートや、ペットの写真から作る「うちの仔オリジナルクロック」など、心に残る記念品づくりをお手伝いします。

VIEW MORE

お問い合わせ
CONTACT

記事にある技術に関するお問い合わせなどは
こちらのフォームからおねがいいたします。

TOP