SlideShare a Scribd company logo
Rogerio Carvalho, Fernando Carvalho e
      Silva, Rodrigo Manhães, Gabriel Oliveira
                  Instituto Federal Fluminense




 Implementing Behavior Driven
Development 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...
BDD in ERP5
BDD in ERP5
BDD in ERP5
BDD in ERP5
BDD in ERP5
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

More Related Content

Implementing Behavior Driven Development in an Open Source ERP

  • 1. Rogerio Carvalho, Fernando Carvalho e Silva, Rodrigo Manhães, Gabriel Oliveira Instituto Federal Fluminense Implementing Behavior Driven Development in an Open Source ERP
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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...
  • 12. 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