Implementing Behavior Driven Development in an Open Source ERP
Rogerio Carvalho, Fernando Carvalho e Silva, Rodrigo Manhães, Gabriel Oliveira Instituto Federal Fluminense Implementing Behavior DrivenDevelopment in an Open Source ERP
Introduction● Requirements tracing is a typical problem – through all lifecycle● Using artefacts such as the Requirements Tracing Matrix is error prone and time comsuming● Behavior Driven Development is an specification technique that aims at keeping requirements and source code synchronous through the use of executable documentation
Behavior Driven Development● Requirements are written as a set of Given- When-Then statements:Given a Context (Current State)When an Event happens (User Action)Then an Action is taken (New State)● Clearly, it defines a state machine that describes the behavior of the system● A Story Runner maps the textual statements to the underlying programming language equivalent skeleton calls
Behavior Driven Development● BDD provides an automated and cost effective way of keeping requirements traceability: ● Cost: requirements are tied to tests, so that if tests return non-expected values or simply are not implemented, the story runner will automatically point out the problem ● Change Management: whenever a requirement changes, the tests will not run until the code is also changed accordingly – Effort estimation: by changing a requirement and immediately running a build, errors will pop-up in specific places where the system must be changed
Behavior Driven Development● BDD provides an automated and cost effective way of keeping requirements traceability: ● Different stakeholder viewpoints: it is possible for any stakeholder to check system consistency, since it is based on executable documentation ● Organizational problems: it provides a proper policy for traceability, enforcing the connection between code and requirements● Shortcoming for EIS: use of text, instead of business process models
BDD in ERP5● ERP5 is an Open Source ERP: ● Object oriented Zope platform - Python language ● State-based workflow engine ● Document oriented● ERP5 is in the market for 10 years: Aparell, Banks, Aeroespace, Automotive, Government, Academy...
Conclusions● ERP5 BDD Module is a proof of concept!● Automated testing is at the core of any BDD related solution● Business Language Driven Development (BLDD): ● Seeks to use business process models directly, instead of only textual information ● Interactive testing by the user ● Proof of concept using the Yankidu platform