Skip to main content

Behavior-Driven Specification in Practice: An Experience Report

  • Conference paper
  • First Online:
Requirements Engineering: Foundation for Software Quality (REFSQ 2024)

Abstract

Agile methods are now widely used in software engineering organizations, whereas most formal methods are limited to niches and are perceived as inadequate in the context of agile development. This paper presents a case study of the innovative practices used at Anaplan, a financial planning and analysis software provider, to integrate formal specification within an agile process. The results show how Behavior-Driven Specification (BDS), by documenting behavior using executable acceptance criteria (EAC), is used to validate the design and implementation of calculation functions in Anaplan’s sparse calculation engine, while keeping all stakeholders aligned on the requirements. We also show that the interaction between the specifiers and the developers allows catching implementation issues at early stages of the development, while allowing the specification to remain amenable to emerging implementation constraints. The validated requirements have enabled the development of a framework to automatically generate extensive test coverage that is used to verify the implementation. As a result, over 200 bugs were caught in the production code before release, not counting the hundreds of issues that BDS allowed developers to detect earlier in the process. We show that BDS leads to high levels of confidence in the behavioral correctness of software while being fully aligned with agile practices, and proves to be a significant evolution in the field of software development.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 74.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Approximately 50 engineers were involved over the lifetime of the project.

  2. 2.

    Language fracture exists when stakeholders use different formalisms.

  3. 3.

    Note that the keyword whenever is used in the scenario as when is a Kotlin keyword.

  4. 4.

    We are unable to provide more accurate examples due to the proprietary nature of the work, but the simplicity of these scenarios is comparable to that of many of our actual EACs.

  5. 5.

    The optimization of said combination being a common source of bugs.

  6. 6.

    The inner workings of the verification framework are complex and will be the subject of an upcoming paper.

  7. 7.

    Each development team has its own unit and functional test suites, so the regression suite catches issues that the existing testing mechanisms have failed to detect.

  8. 8.

    To underline the significance of this number, fewer than 500 calculation bugs have been raised against the dense engine over the past 5 years.

  9. 9.

    This only applies to changes to existing behavior such as bug fixes. New behavior can be implemented and specified in parallel.

References

  1. Alkobaisi, S., Bae, W.D., Narayanappa, S., Debnath, N.: Steel threads: software engineering constructs for defining, designing and developing software system architecture. J. Comput. Methods Sci. Eng. 12(s1), S63–S77 (2012). https://doi.org/10.3233/JCM-2012-0437

    Article  Google Scholar 

  2. Alwidian, S., Jaskolka, J.: Understanding the role of human-related factors in security requirements elicitation. In: International Working Conference on Requirements Engineering: Foundation for Software Quality, pp. 65–74. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-29786-1_5

  3. Beck, K., et al.: Manifesto for agile software development (2001). http://www.agilemanifesto.org/

  4. Buchan, J.: An empirical cognitive model of the development of shared understanding of requirements. In: Zowghi, D., Jin, Z. (eds.) Requirements Engineering. CCIS, vol. 432, pp. 165–179. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-43610-3_13

    Chapter  Google Scholar 

  5. Codd, E.F., Codd, S.B., Salley, C.T.: Providing OLAP (on-line analytical processing) to user-analysts. An IT Mandate. White Paper. Arbor Software Corporation 4 (1993)

    Google Scholar 

  6. Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional (2004)

    Google Scholar 

  7. Fraser, S., Pezzoni, A.: Azuki framework to assist with behavior-driven specification. https://github.com/anaplan-engineering/azuki. Accessed 01 Oct 2023

  8. Fraser, S., Pezzoni, A.: Behaviour driven specification. In: Proceedings of the 19th International Overture Workshop, pp. 5–20 (2021). https://doi.org/10.48550/arXiv.2110.09371

  9. Ghezzi, C.: Formal methods and agile development: towards a happy marriage. In: The Essence of Software Engineering, pp. 25–36. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-73897-0_2

    Chapter  Google Scholar 

  10. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969). https://doi.org/10.1145/363235.363259

    Article  Google Scholar 

  11. Inayat, I., Salim, S.S., Marczak, S., Daneva, M., Shamshirband, S.: A systematic literature review on agile requirements engineering practices and challenges. Comput. Hum. Behav. 51, 915–929 (2015). https://doi.org/10.1016/j.chb.2014.10.046

    Article  Google Scholar 

  12. Jebreen, I., Awad, M., Al-Qerem, A.: A propose model for shared understanding of software requirements (SUSRs). In: Information Science and Applications (ICISA) 2016, pp. 1045–1056. Springer, Singapore (2016). https://doi.org/10.1007/978-981-10-0557-2_100

  13. Kotonya, G., Sommerville, I.: Requirements Engineering: Processes and Techniques. Wiley (1998)

    Google Scholar 

  14. Larsen, P.G., Battle, N., Ferreira, M., Fitzgerald, J., Lausdahl, K., Verhoef, M.: The overture initiative integrating tools for VDM. ACM SIGSOFT Softw. Eng. Notes 35(1), 1–6 (2010). https://doi.org/10.1145/1668862.1668864

    Article  Google Scholar 

  15. Sidorova, M.I., et al.: Strategic planning software as a tool for improvement of business information space. In: European Proceedings of Social and Behavioural Sciences (2022)

    Google Scholar 

  16. Wang, X., Zhao, L., Wang, Y., Sun, J.: The role of requirements engineering practices in agile development: an empirical study. In: Zowghi, D., Jin, Z. (eds.) Requirements Engineering. CCIS, vol. 432, pp. 195–209. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-43610-3_15

    Chapter  Google Scholar 

  17. Wynne, M., Hellesoy, A., Tooke, S.: The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf (2017)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alessandro Pezzoni .

Editor information

Editors and Affiliations

Ethics declarations

Disclosure of Interests

The authors have no competing interests to declare that are relevant to the content of this article.

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Allred, J.D., Fraser, S., Pezzoni, A. (2024). Behavior-Driven Specification in Practice: An Experience Report. In: Mendez, D., Moreira, A. (eds) Requirements Engineering: Foundation for Software Quality. REFSQ 2024. Lecture Notes in Computer Science, vol 14588. Springer, Cham. https://doi.org/10.1007/978-3-031-57327-9_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-57327-9_21

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-57326-2

  • Online ISBN: 978-3-031-57327-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics