Assisted Behavior Driven Development Using Natural Language Processing

  • Mathias Soeken
  • Robert Wille
  • Rolf Drechsler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7304)

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Beck, K.: Test Driven Development. By Example. Addison-Wesley Longman, Amsterdam (2003)Google Scholar
  2. 2.
    Wynne, M., Hellesøy, A.: The Cucumber Book: Behaviour-Driven Development for Testers and Developers. The Pragmatic Bookshelf (January 2012)Google Scholar
  3. 3.
    North, D.: Behavior Modification: The evolution of behavior-driven development. Better Software 8(3) (March 2006)Google Scholar
  4. 4.
    Evans, E.J.: Domain-Driven-Design: Tackling Complexity in the Heart of Software. Addison-Wesley Longman, Amsterdam (2003)Google Scholar
  5. 5.
    Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language reference manual. Addison-Wesley Longman, Essex (1999)Google Scholar
  6. 6.
    Jurafsky, D., Martin, J.H.: Speech and Language Processing. Pearson Prentice Hall (2008)Google Scholar
  7. 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. 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
  9. 9.
    Miller, G.A.: WordNet: A Lexical Database for English. Communications of the ACM 38(11), 39–41 (1995)CrossRefGoogle Scholar
  10. 10.
    Flanagan, D., Matsumoto, Y.: The Ruby Programming Language. O’Reilly Media (January 2008)Google Scholar
  11. 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. 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. 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
  14. 14.
    Mich, L., Garigliano, R.: A Linguistic Approach to the Development of Object Oriented Systems using the NL System LOLITA. In: Bertino, E., Urban, S. (eds.) ISOOMS 1994. LNCS, vol. 858, pp. 371–386. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  15. 15.
    Harmain, H.M., Gaizauskas, R.J.: CM-Builder: A Natural Language-Based CASE Tool for Object-Oriented Analysis. Journal of Automated Software Engineering 10(2), 157–181 (2003)CrossRefGoogle Scholar
  16. 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
  17. 17.
    Grochtmann, M., Grimm, K.: Classification trees for partition testing. Software Testing, Verification and Reliability 3(2), 63–82 (1993)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Mathias Soeken
    • 1
  • Robert Wille
    • 1
  • Rolf Drechsler
    • 1
    • 2
  1. 1.Institute of Computer ScienceUniversity of Bremen Group of Computer ArchitectureBremenGermany
  2. 2.Cyber-Physical Systems DFKI GmbHBremenGermany

Personalised recommendations