AbstractsComputer Science

Behavior Driven Development in a Large-Scale Application

by Payman Delshad

Institution: Linköping University
Year: 2016
Keywords: Behavior Driven Development; BDD; Agile; Large-Scale Applications; Large Multisite Organizations; Testing Quality; Automated Testing; Natural Sciences; Computer and Information Science; Computer Science; Naturvetenskap; Data- och informationsvetenskap; Datavetenskap (datalogi); Master's programme in Computer Science; Master's programme in Computer Science
Posted: 02/05/2017
Record ID: 2063851
Full text PDF: http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-125341


Nowadays, Agile software development methods are often used in large multisite organizations that develop large-scale applications. Behavior Driven Development (BDD) is a relatively new Agile software development process where the development process starts with acceptance tests written in a natural language. The premise of BDD is to create a common and effective process of communication between different roles in a software project to ensure that every activity can be mapped to the business goal of the application. This thesis work aims to find an effective and efficient BDD process and to evaluate its usage in a large-scale application in a large multisite organization through a series of interviews, a controlled experiment, and an online survey. Furthermore, by means of the aforementioned experiment, the study measures the impact of an experimental usage of BDD on testing quality. To discover an effective and efficient BDD process, two alternatives with automated tests that run on different architectural layers, namely client layer and web service layer, were examined. Based on the defined metrics, the alternative with automated tests that ran directly on the web service layer was chosen as the more efficient process which was compared against the existing Agile-based baseline that used automated client tests. The results show that an efficient BDD process improves the testing quality significantly which can, in turn, result in a better overall software quality.