Font Size: a A A

Towards an empirical evaluation of behaviour-driven development

Posted on:2011-10-24Degree:M.ScType:Thesis
University:The University of Regina (Canada)Candidate:Laplante, Chantal SuzanneFull Text:PDF
GTID:2448390002958302Subject:Computer Science
Abstract/Summary:
Behaviour-Driven Development (BDD) is a software design and development methodology that iteratively specifies system behaviours in an executable format, from the stakeholder perspective. It is an Agile methodology that evolved from Test-Driven Development (TDD).;Software adaptability was measured using software metrics run at the assembly, class and method level Assembly-level metrics revealed that, due to specification layout, the BDD specification assembly was larger and the BDD production code assembly was more tightly coupled than other assemblies. Although BDD specification classes had more inheritance relationships, TDD test classes were larger. More methods within the TDD code were identified as possibly problematic than within the BDD code.;Software relevance was measured using the number of discovered software defects and by administering a stakeholder questionnaire. Both measures were largely non-differentiating.;In addition to software adaptability and relevance, the developer's perspective was analyzed. The developer experienced significant friction while using the selected BDD tools and learning the new technique. More mature tools and an increased number of pedagogical resources would be beneficial. Once the developer became more familiar with the technique, focus was notably shifted towards behaviour and the stakeholder perspective. The developer also benefited from the context-creating high-level BDD scenarios. Overall, BDD was described as beneficial.;BDD seeks to create software that is adaptable and relevant to its stakeholders. Although the capacity for BDD to create such software is supported by anecdotal evidence, no empirical studies of BDD have previously been reported. The goal of this research was to empirically evaluate the effect of BDD on software adaptability and relevance, especially compared to TDD. A limited pilot study, in the form of a quasi-experiment, was conducted in the context of a single-developer and single-stakeholder project. The candidate acted as the developer and the candidate's thesis supervisor acted as the stakeholder.;Because of the small team and small codebase, it is not appropriate to generalize the conclusions. However, this research serves as a preliminary exploration of how BDD could be evaluated. Further study of the methodology is required, in particular in evaluating the effect of language-specific tools on software adaptability and relevance.
Keywords/Search Tags:BDD, Software, Development, Methodology, TDD
Related items