Main content

BHive: Behaviour-Driven Development Meets B-Method

Show full item record

Title: BHive: Behaviour-Driven Development Meets B-Method
Author: Carter, John
Department: School of Computer Science
Program: Computer Science
Advisor: Gardner, William
Abstract: 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.
Date: 2017-03
Rights: Attribution-NonCommercial-ShareAlike 2.5 Canada
Terms of Use: All items in the Atrium are protected by copyright with all rights reserved unless otherwise indicated.

Files in this item

Files Size Format View Description
Carter_John_201704_PhD.pdf 1.578Mb PDF View/Open Main article

This item appears in the following Collection(s)

Show full item record

Attribution-NonCommercial-ShareAlike 2.5 Canada Except where otherwise noted, this item's license is described as Attribution-NonCommercial-ShareAlike 2.5 Canada