SlideShare uma empresa Scribd logo
1 de 18
Applying BDD and TDD
                     practices, using Jasmine.js
                                                       - Anil Tarte




© Equal Experts UK Ltd 2011     www.equalexperts.com                  1
Outline
               Development Environment
               What is TDD?
               What is BDD?
               Domain problem
               Stories
               Demonstration
               Questions?


© Equal Experts UK Ltd 2011   www.equalexperts.com   2
Development Environment
          Eclipse
           – Using Eclipse IDE for JavaScript Web
             Developers
           – Installed Jetty(Run-Jetty-Run) plugin.
                          • Help -> Eclipse Marketplace -> type Jetty -> hit enter ->
                            install Run-Jetty-Run
          Backend Server(Streamer.jar),
           – URL to access it “ws://localhost:8081/”
           – It is a Streaming Engine and a Stub
             Exchange


© Equal Experts UK Ltd 2011                     www.equalexperts.com                    3
Test Driven Development (TDD)?
          Concept
            – Add a test for each new feature/improvement
            – Write production code, to pass test
            – Refactor
          Aspect
            – KISS (Keep It Simple, Stupid)
            – YAGNI (You Ain’t Goona Need It)
            – Fake it till you make it
          Benefits
            – Designs become more cleaner and clearer
            – Testable code
            – Focus only on what is important
© Equal Experts UK Ltd 2011     www.equalexperts.com        4
Behaviour Driven Development (BDD)?
          Concept
            – Write/Automate a desired behaviour first (in natural
              language)
            – Driven by business value
          Aspect
            – Test method names should be sentence
            – It extends TDD
          Benefits
            – Clear understanding of desired software behaviour
            – Starting point
            – Encourages more collaboration, Dev + QA + BA +
              Customer
© Equal Experts UK Ltd 2011       www.equalexperts.com               5
Domain Problem

                                 Heat Map




© Equal Experts UK Ltd 2011       www.equalexperts.com   6
Top 4 gainer?




© Equal Experts UK Ltd 2011   www.equalexperts.com   7
Different representation - Heat Map




© Equal Experts UK Ltd 2011   www.equalexperts.com   8
Another version




© Equal Experts UK Ltd 2011   www.equalexperts.com   9
Stories – Identify?
          Story 1 – As a trader, when I load application,
           I want to see the instruments, so that …

          Story 2 – As a trader, I want to see “price
           change” updating in real time, so that …

          Story 3 – As a trader, I should able to see
           instruments performance visually(color
           coded), so that I will get overview of the market in
               real time



© Equal Experts UK Ltd 2011       www.equalexperts.com            10
Story 1
          As a trader, when I load application, I want to
           see the instruments, so that …
          Scenario 1
                  – When a trader starts the application
                  – Then I will see the instruments with details
                          • Instrument Symbol
                          • Instrument Name
                          • Price change in percentage




© Equal Experts UK Ltd 2011                   www.equalexperts.com   11
Design Discussion – Story 1

                                                       Connect to – ws://localhost:8081/

                              Knockout
                              bindings
                                         Application                                 Streamer
                                                                                     Engine

    HTML document




© Equal Experts UK Ltd 2011                       www.equalexperts.com                          12
Design Discussion – Story 1

                                                Connect to – ws://localhost:8081/


                  Application                         /Instrument

                                                                                      Streamer
                                         Channel                                      Engine

                   Instrument
                    Container
                                                        {
                                                        messageType:"Snapshot",
                              Knockout                  message : {[
                              bindings                           {
                                                                     "instrumentSymbol":"PL Z11",
                                                                     "instrumentName":"Platinum",
                                                                     "instrumentChange":"-3.9“
                                                                 }
                                                                  ]}
                 HTML document                          }
© Equal Experts UK Ltd 2011                  www.equalexperts.com                                   13
Story 2
          As a trader, I want to see “price change”
           updating in real time.
          Scenario 1
                  – Given I have launched Heat Map application
                  – When I monitor the Heat Map
                  – Then I will see the instrument’s “price change”
                    updates in real time




© Equal Experts UK Ltd 2011             www.equalexperts.com          14
Design Discussion – Story 2

                                                                         Connect to – ws://localhost:8081/


                                    Application                            /Instrument

                                                                                           Streamer
                                                         Channel                           Engine

                                    Instrument
       Instrument                    Container

                                                                     {
                              Knockout                               messageType:“Update",
                              bindings                               message : {[
                                                                              {
                                                                                  "instrumentName":"Platinum",
                                                                                  "instrumentChange":"-3.9“
                                                                              }
                                                                               ]}
                 HTML documents
                                                                     }
© Equal Experts UK Ltd 2011                       www.equalexperts.com                                       15
Story 3
          As a trader, I should able to see instrument’s
           performance visually.
          Scenario 1
                  – Given I have launched Heat Map application
                  – When I monitor the Heat Map
                  – Then I will see the instrument’s tile color changing
                    according to the “price change” in real time




© Equal Experts UK Ltd 2011             www.equalexperts.com               16
Design Discussion – Story 3

                                                                         Connect to – ws://localhost:8081/

        Color Code                                                         /Instrument
                                    Application
        Calculator
                                                                                           Streamer
                                                         Channel                           Engine

                                    Instrument
        Instrument                   Container


                              Knockout
                              bindings




                 HTML documents
© Equal Experts UK Ltd 2011                       www.equalexperts.com                                       17
Questions?



© Equal Experts UK Ltd 2011      www.equalexperts.com   18

Mais conteúdo relacionado

Semelhante a Applying BDD/TDD practices, using Jasmine.js

Streamline - Stream Analytics for Everyone
Streamline - Stream Analytics for EveryoneStreamline - Stream Analytics for Everyone
Streamline - Stream Analytics for Everyone
DataWorks Summit/Hadoop Summit
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future
HiveMQ
 
Introduction to Web Application Clustering
Introduction to Web Application ClusteringIntroduction to Web Application Clustering
Introduction to Web Application Clustering
Piyush Katariya
 
Cebit-2008: Content Aggregation
Cebit-2008: Content AggregationCebit-2008: Content Aggregation
Cebit-2008: Content Aggregation
David Nuescheler
 

Semelhante a Applying BDD/TDD practices, using Jasmine.js (20)

Streamline - Stream Analytics for Everyone
Streamline - Stream Analytics for EveryoneStreamline - Stream Analytics for Everyone
Streamline - Stream Analytics for Everyone
 
Tim Jones – CTO, Trader Media
Tim Jones – CTO, Trader MediaTim Jones – CTO, Trader Media
Tim Jones – CTO, Trader Media
 
4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future4 Paradigm Shifts for the Connected Car of the Future
4 Paradigm Shifts for the Connected Car of the Future
 
ArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client TierArcReady - Architecting For The Client Tier
ArcReady - Architecting For The Client Tier
 
The Role of Standards in IoT Security
The Role of Standards in IoT SecurityThe Role of Standards in IoT Security
The Role of Standards in IoT Security
 
Introduction to Web Application Clustering
Introduction to Web Application ClusteringIntroduction to Web Application Clustering
Introduction to Web Application Clustering
 
01 introduction
01 introduction01 introduction
01 introduction
 
Cebit-2008: Content Aggregation
Cebit-2008: Content AggregationCebit-2008: Content Aggregation
Cebit-2008: Content Aggregation
 
TechHub pitch
TechHub pitchTechHub pitch
TechHub pitch
 
Distributed application usecase on docker
Distributed application usecase on dockerDistributed application usecase on docker
Distributed application usecase on docker
 
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded DayC:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
C:\Alon Tech\New Tech\Embedded Conf Tlv\Prez\Sightsys Embedded Day
 
HDF 3.1 pt. 2: A Technical Deep-Dive on New Streaming Features
HDF 3.1 pt. 2: A Technical Deep-Dive on New Streaming FeaturesHDF 3.1 pt. 2: A Technical Deep-Dive on New Streaming Features
HDF 3.1 pt. 2: A Technical Deep-Dive on New Streaming Features
 
Click, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX ApplicationsClick, Click, Test - Automated Tests for APEX Applications
Click, Click, Test - Automated Tests for APEX Applications
 
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
 
2. workload
2.  workload2.  workload
2. workload
 
44CON London 2015 - Inside Terracotta VPN
44CON London 2015 - Inside Terracotta VPN44CON London 2015 - Inside Terracotta VPN
44CON London 2015 - Inside Terracotta VPN
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 
Edge Computing risks and Opportunities for Telco and hyperscalers
Edge Computing risks and Opportunities for Telco and hyperscalersEdge Computing risks and Opportunities for Telco and hyperscalers
Edge Computing risks and Opportunities for Telco and hyperscalers
 
ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN ECI OpenFlow 2.0 the Future of SDN
ECI OpenFlow 2.0 the Future of SDN
 
Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applications
 

Último

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Applying BDD/TDD practices, using Jasmine.js

  • 1. Applying BDD and TDD practices, using Jasmine.js - Anil Tarte © Equal Experts UK Ltd 2011 www.equalexperts.com 1
  • 2. Outline  Development Environment  What is TDD?  What is BDD?  Domain problem  Stories  Demonstration  Questions? © Equal Experts UK Ltd 2011 www.equalexperts.com 2
  • 3. Development Environment  Eclipse – Using Eclipse IDE for JavaScript Web Developers – Installed Jetty(Run-Jetty-Run) plugin. • Help -> Eclipse Marketplace -> type Jetty -> hit enter -> install Run-Jetty-Run  Backend Server(Streamer.jar), – URL to access it “ws://localhost:8081/” – It is a Streaming Engine and a Stub Exchange © Equal Experts UK Ltd 2011 www.equalexperts.com 3
  • 4. Test Driven Development (TDD)?  Concept – Add a test for each new feature/improvement – Write production code, to pass test – Refactor  Aspect – KISS (Keep It Simple, Stupid) – YAGNI (You Ain’t Goona Need It) – Fake it till you make it  Benefits – Designs become more cleaner and clearer – Testable code – Focus only on what is important © Equal Experts UK Ltd 2011 www.equalexperts.com 4
  • 5. Behaviour Driven Development (BDD)?  Concept – Write/Automate a desired behaviour first (in natural language) – Driven by business value  Aspect – Test method names should be sentence – It extends TDD  Benefits – Clear understanding of desired software behaviour – Starting point – Encourages more collaboration, Dev + QA + BA + Customer © Equal Experts UK Ltd 2011 www.equalexperts.com 5
  • 6. Domain Problem Heat Map © Equal Experts UK Ltd 2011 www.equalexperts.com 6
  • 7. Top 4 gainer? © Equal Experts UK Ltd 2011 www.equalexperts.com 7
  • 8. Different representation - Heat Map © Equal Experts UK Ltd 2011 www.equalexperts.com 8
  • 9. Another version © Equal Experts UK Ltd 2011 www.equalexperts.com 9
  • 10. Stories – Identify?  Story 1 – As a trader, when I load application, I want to see the instruments, so that …  Story 2 – As a trader, I want to see “price change” updating in real time, so that …  Story 3 – As a trader, I should able to see instruments performance visually(color coded), so that I will get overview of the market in real time © Equal Experts UK Ltd 2011 www.equalexperts.com 10
  • 11. Story 1  As a trader, when I load application, I want to see the instruments, so that …  Scenario 1 – When a trader starts the application – Then I will see the instruments with details • Instrument Symbol • Instrument Name • Price change in percentage © Equal Experts UK Ltd 2011 www.equalexperts.com 11
  • 12. Design Discussion – Story 1 Connect to – ws://localhost:8081/ Knockout bindings Application Streamer Engine HTML document © Equal Experts UK Ltd 2011 www.equalexperts.com 12
  • 13. Design Discussion – Story 1 Connect to – ws://localhost:8081/ Application /Instrument Streamer Channel Engine Instrument Container { messageType:"Snapshot", Knockout message : {[ bindings { "instrumentSymbol":"PL Z11", "instrumentName":"Platinum", "instrumentChange":"-3.9“ } ]} HTML document } © Equal Experts UK Ltd 2011 www.equalexperts.com 13
  • 14. Story 2  As a trader, I want to see “price change” updating in real time.  Scenario 1 – Given I have launched Heat Map application – When I monitor the Heat Map – Then I will see the instrument’s “price change” updates in real time © Equal Experts UK Ltd 2011 www.equalexperts.com 14
  • 15. Design Discussion – Story 2 Connect to – ws://localhost:8081/ Application /Instrument Streamer Channel Engine Instrument Instrument Container { Knockout messageType:“Update", bindings message : {[ { "instrumentName":"Platinum", "instrumentChange":"-3.9“ } ]} HTML documents } © Equal Experts UK Ltd 2011 www.equalexperts.com 15
  • 16. Story 3  As a trader, I should able to see instrument’s performance visually.  Scenario 1 – Given I have launched Heat Map application – When I monitor the Heat Map – Then I will see the instrument’s tile color changing according to the “price change” in real time © Equal Experts UK Ltd 2011 www.equalexperts.com 16
  • 17. Design Discussion – Story 3 Connect to – ws://localhost:8081/ Color Code /Instrument Application Calculator Streamer Channel Engine Instrument Instrument Container Knockout bindings HTML documents © Equal Experts UK Ltd 2011 www.equalexperts.com 17
  • 18. Questions? © Equal Experts UK Ltd 2011 www.equalexperts.com 18