BHive: Behaviour-Driven Development Meets B-Method
Behaviour-Driven Development (BDD) is an agile, “outside-in” approach to software development built upon semi-formal mediums for specifying the behavior of a sys- tem as it would be observed externally. Through the representation of a system as a collection of user stories and scenarios using BDD's notation, practitioners automate acceptance tests using examples of desired behavior for the envisioned system. A for- mal model created in concert with BDD tests would provide valuable insight into test validity and enhance the visibility of the problem domain. This work called BHive builds upon the formal underpinnings of BDD scenarios by mapping their “Given,” “When,” and “Then” statements to “Precondition,” “Command,” and “Postcondi- tion” constructs as introduced by Floyd-Hoare logic. We posit that this mapping allows for a B-Method representation to be created and that such a model is useful for exploring system behavior and exposing gaps in requirements and test plans. In combining BDD with B-Method through BHive, a bridge between the worlds of agile and formal is created, reaping benefits of both approaches. We also outline exten- sions to BDD tooling required for the described integration and present benefits of the BHive approach to integrating formalism within a BDD project.