Assisted Behavior Driven Development Using Natural Language Processing

In Behavior Driven Development (BDD), acceptance tests provide the starting point for the software design flow and serve as a basis for the communication between designers and stakeholders. In this agile software development technique, acceptance tests are written in natural language in order to ensure a common understanding between all members of the project. As a consequence, mapping the sentences to actual source code is the first step of the design flow, which is usually done manually. However, the scenarios described by the acceptance tests provide enough information in order to automatize the extraction of both the structure of the implementation and the test cases. In this work, we propose an assisted flow for BDD where the user enters into a dialog with the computer which suggests code pieces extracted from the sentences. For this purpose, natural language processing techniques are exploited. This allows for a semi-automatic transformation from acceptance tests to source code stubs and thus provides a first step towards an automatization of BDD.

[1]  Dan Klein,et al.  Accurate Unlexicalized Parsing , 2003, ACL.

[2]  Lech Madeyski,et al.  Test-Driven Development - An Empirical Evaluation of Agile Practice , 2009 .

[3]  Matthias Grochtmann,et al.  Classification trees for partition testing , 1993, Softw. Test. Verification Reliab..

[4]  James H. Martin,et al.  Speech and language processing: an introduction to natural language processing, computational linguistics, and speech recognition, 2nd Edition , 2000, Prentice Hall series in artificial intelligence.

[5]  Matt Wynne,et al.  The Cucumber Book: Behaviour-Driven Development for Testers and Developers , 2012 .

[6]  Elisa Bertino,et al.  Object-Oriented Methodologies and Systems , 1994, Lecture Notes in Computer Science.

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  Evans,et al.  Domain-driven design , 2003 .

[9]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[10]  David Flanagan,et al.  The Ruby Programming Language , 2007 .

[11]  George A. Miller,et al.  WordNet: A Lexical Database for English , 1995, HLT.

[12]  Wolfgang Müller,et al.  Generation of Executable Testbenches from Natural Language Requirement Specifications for Embedded Real-Time Systems , 2010, DIPES/BICC.

[13]  Imran Sarwar Bajwa Object Oriented Software Modeling Using NLP Based Knowledge Extraction , 2009 .

[14]  Peter A. Lindsay,et al.  Distributed, Parallel and Biologically Inspired Systems - 7th IFIP TC 10 Working Conference, DIPES 2010 and 3rd IFIP TC 10 International Conference, BICC 2010, Held as Part of WCC 2010, Brisbane, Australia, September 20-23, 2010. Proceedings , 2010, DIPES/BICC.

[15]  Christopher D. Manning,et al.  Generating Typed Dependency Parses from Phrase Structure Parses , 2006, LREC.

[16]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[17]  Luisa Mich,et al.  A Linguistic Approach to the Development of Object Oriented Systems using the NL System LOLITA , 1994, ISOOMS.

[18]  Robert J. Gaizauskas,et al.  CM-Builder: A Natural Language-Based CASE Tool for Object-Oriented Analysis , 2003, Automated Software Engineering.

[19]  Troels Mørch Test Driven Development , 2005 .