1. 程式人生 > >BDD TDD

BDD TDD

https://www.cnblogs.com/Leo_wl/p/4780678.html

BDD是一種敏捷軟體開發的技術。它對TDD的理念進行了擴充套件,在TDD中側重點偏向開發,通過測試用例來規範約束開發者編寫出質量更高、bug更少的程式碼。而BDD更加側重設計,其要求在設計測試用例的時候對系統進行定義,倡導使用通用的語言將系統的行為描述出來,將系統設計和測試用例結合起來,從而以此為驅動進行開發工作。

  BDD的通用語言是一種近乎自然語言的描述軟體的形式。傳統的開發模式中,客戶很難從技術層面理解問題,開發人員很難從業務需求考慮問題,基於這種通用語言形式可以儘可能的避免客戶和開發者在溝通上的障礙,實現客戶和開發者同時定義系統的需求

。避免了因為理解需求不充分而帶來的不必必要的工作量。

  BDD描述的行為就像一個個的故事(Story),系統業務專家、開發者、測試人員一起合作,分析軟體的需求,然後將這些需求寫成一個個的故事。開發者負責填充這些故事的內容,測試者負責檢驗這些故事的結果。通常,會使用一個故事的模板來對故事進行描述

常見的BDD框架:

  • C – Cspec
  • C++ – CppSpec, Spec-CPP
  • .Net – NBehave, NSpecify, SpecFlow
  • Groovy – GSpec, easyb, Cuke4Duke
  • PHP – PHPSpec
  • Python – Specipy
  • Ruby – RSpec, Shoulda, Cucumber

與Java相關的BDD測試工具:

  • JBehave – Java annotations based, Test frameworks agnostic
  • Cuke4duke – Cucumber support for JVM
  • JDave – RSpec (Ruby) inspired, Mojo 2 & Hamcrest based
  • beanSpec – Java based
  • easyb – Java based, Specifications written in Groovy
  • instinct – BDD framework for Java, providing annotations for contexts. Inspired by Rspec
  • BDoc - Extracts behaviour from unit tests