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.
Unable to display preview. Download preview PDF.
- 1.Beck, K.: Test Driven Development. By Example. Addison-Wesley Longman, Amsterdam (2003)Google Scholar
- 2.Wynne, M., Hellesøy, A.: The Cucumber Book: Behaviour-Driven Development for Testers and Developers. The Pragmatic Bookshelf (January 2012)Google Scholar
- 3.North, D.: Behavior Modification: The evolution of behavior-driven development. Better Software 8(3) (March 2006)Google Scholar
- 4.Evans, E.J.: Domain-Driven-Design: Tackling Complexity in the Heart of Software. Addison-Wesley Longman, Amsterdam (2003)Google Scholar
- 5.Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language reference manual. Addison-Wesley Longman, Essex (1999)Google Scholar
- 6.Jurafsky, D., Martin, J.H.: Speech and Language Processing. Pearson Prentice Hall (2008)Google Scholar
- 7.Klein, D., Manning, C.D.: Accurate Unlexicalized Parsing. In: Annual Meeting of the Association for Computational Linguistics, pp. 423–430 (July 2003)Google Scholar
- 8.de Marneffe, M.C., MacCartney, B., Manning, C.D.: Generating Typed Dependency Parses from Phrase Structure Parses. In: Int’l Conf. on Language Ressources and Evaluation, pp. 449–454 (May 2006)Google Scholar
- 10.Flanagan, D., Matsumoto, Y.: The Ruby Programming Language. O’Reilly Media (January 2008)Google Scholar
- 11.Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Amsterdam (1994)Google Scholar
- 12.Bajwa, I.S., Samad, A., Mumtaz, S.: Object Oriented Software Modeling Using NLP Based Knowledge Extraction. European Journal of Scientific Research 35(1) (January 2009)Google Scholar
- 13.Oliviera, A., Seco, N., Gomes, P.: A CBR Approach to Text to Class Diagram Translation. In: TCBR Workshop at the European Conf. on Case-Based Reasoning (September 2006)Google Scholar
- 16.Müeller, W., Bol, A., Krupp, A., Lundkvist, O.: Generation of Executable Testbenches from Natural Language Requirement Specifications for Embedded Real-Time Systems. In: Hinchey, M., Kleinjohann, B., Kleinjohann, L., Lindsay, P.A., Rammig, F.J., Timmis, J., Wolf, M. (eds.) DIPES 2010. IFIP AICT, vol. 329, pp. 78–89. Springer, Heidelberg (2010)CrossRefGoogle Scholar