にんにんにん

エンジニアな日々を書いていきます

BDD(ビヘイビア駆動開発)

BDD(ビヘイビア駆動開発)

新しいチームにジョインして、BDDが導入されていたのでメモとしてまとめる。 Androidでの実装方法やフレームワークは別途まとめる。

What is BDD?

  • TDD(テスト駆動開発)の拡張版。
  • TDDでは、  - どこから始めるか?  - 何をテストするか?  - 何をテストしないか? という課題がある。その課題解決のための手法。
  • システムの予想される動作を確認するためのテストに重点を置く。
  • BDDでは、ユーザーストーリーに重きを置き、エンジニアがユーザーの視点から実装すべき機能を考えることを促す。

Given-When-Then

  • BDDはGiven-When-Thenの構造で記述される。

Given: 振る舞いまたはアクションを受け取るシステムの状態

When: 発生すると最終結果を引き起こす振る舞いまたはアクション

Then: 所定の状態で所定の振る舞いによって引き起こされる結果

参考

https://circleci.com/ja/blog/how-to-test-software-part-ii-tdd-and-bdd/ https://shiftasia.com/ja/column/%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AB%E9%96%8B%E7%99%BA%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Btdd%E3%81%A8bdd/