SlideShare a Scribd company logo
1 of 12
1
• Agile Methodology based on BDD and CI
Created by Nicolai Sevcenco
Agile Methodology based on BDD and CI
 What is BDD?
Behaviour-Driven Development (BDD) is about implementing an application by describing it
from the point of view of its stakeholders
2
Reqs
DoneTest
 “Golden triangle” between BA
requirements, acceptance tests and
the “Done” criteria for a feature
used by developers
Team effort:
 BA
 QA (manual & automation)
 Developer/ Architect
 BA, QA and Dev. teams speak the
same language (Gherkin, etc)
Agile
Team
3
User Stories
 BDD revolves around the concept of a Story, which represents an automatically
executable increment of business functionality. At its core a Story comprises of one
or more Scenarios, each of which represents a concrete example of the behaviour of the
system. Each Scenario comprises of a number of executable steps. These Steps can be
of three types:
4
1 Scenario: When a user enters an incorrect password on to Login page,
the corresponding error message should be displayed.
2 Given a user tst150005684 !-- comments are here
3 Given an incorrect password "test9033T"
4 When the user enters account to the account text box
5 When the user enters an incorrect password to the password text box
6 When the user clicks the login button
7 Then the "Incorrect password or user name" must be displayed
5
public class LoginPage { // hey I'm POJO
private String accnt;
private String passwd;
@Given("a user $account")
public void givenAUser(final String account){
this.accnt = account;
}
@Given("an incorrect password $pwd")
public void givenAnIncorrectPassword(final String pwd){
this.passwd = pwd;
}
@When("the user enters account to the account text box")
public void userEntersAccount() {
page.getSeleniumImpl().getDriver().findElement(By.name("USERID")).sendKeys(userId);
}
@When("the user enters an incorrect password to the password text box")
public void userEntersPassword() {
page.getSeleniumImpl().getDriver().findElement(By.name("PASSWORD")).sendKeys(password);
}
@When("the user clicks the login button")
public void userClicksLoginButton() {
page.getSeleniumImpl().getDriver().findElement(By.id("loginBtn")).click();
}
@Then("the $errmsg must be displayed")
public void checkErrMessage(final String errmsg){
Assert.assertTrue(this.loginPageImpl.checkForWrongUserIdOrPasswordMessage());
}
How to exclude needless code duplications
 an Allias annotation with the new matching step pattern comes into play:
6
@When("the item price is $price")
@Alias("the item price becomes $price") // single alias
public void theItemPriceIs(double price) {
// ...
}
7
Oracle
Development and QA consideration points
8
 BDD can help development team focus on the user’s needs and the expected
behavior instead of jumping ahead and getting caught up in implementation details
upfront.
 Much lower barrier-to-entry for new members as a result of common language
(Gherkin, etc) between BA, QA and Dev. teams.
 Perceive unit tests more like “change detectors” rather than tests with reliable
failures reports. BDD helps to shift expectations towards reusing automated
functional/ regression tests and acceptance tests.
 Greater ROI: Behavior has a much longer shelf life than implementation and
implementation related documentation. Also as the business rules change, BDD
captures it better than it being lost in documents and code.
 Predictability & Confidence: BDD makes much better predictability and confidence
to the team work.
 A genuine collaboration between business, QA and development:
 Automation team produces automated functional/regression and acceptance tests
 Dev. team re-uses automated tests to leverage unit tests coverage as well as automation
team may use unit tests, produced by developers, to better understand the
system/application.
 Business justifies priorities by showing concrete value thru the provided stories.
BDD Toolkits
9
Gherkin
JBehave
Selenium + JBehave
HTML
CI - Continues Integration
10
 Main principles:
 Integrates source code and runs test after each commit to the source repository
 Near-immediate (as quickly as possible) feedback to the “agile” team once detecting
integration errors.
 Benefits:
 Eliminates deferred integration which is very hard to predict how long it will take to do.
 Having a good test suite can dramatically easier to find and remove bugs.
 Frequent deployments: are valuable because they allow your users to get new features
more rapidly, to give more rapid feedback on those features, and generally become more
collaborative in the development cycle.
 Toolkit:
 Cruise Control
 Apache Continuum
 JetBrains Team City
 Hudson
 Jenkins
11
This document contains confidential information for use by TD AMERITRADE Holding Corporation and its subsidiaries. 12
Q U E S T I O N S
A N S W E R S

More Related Content

What's hot

Pdm Common Framework Version 0.3
Pdm Common Framework Version 0.3Pdm Common Framework Version 0.3
Pdm Common Framework Version 0.3창석 한
 
Vaadin with Java EE 7
Vaadin with Java EE 7Vaadin with Java EE 7
Vaadin with Java EE 7Peter Lehto
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak Abhishek Koserwal
 
Binding business data to vaadin components
Binding business data to vaadin componentsBinding business data to vaadin components
Binding business data to vaadin componentsPeter Lehto
 
Testing RESTful web services with REST Assured
Testing RESTful web services with REST AssuredTesting RESTful web services with REST Assured
Testing RESTful web services with REST AssuredBas Dijkstra
 
Evolving your Data Access with MongoDB Stitch - Drew Di Palma
Evolving your Data Access with MongoDB Stitch - Drew Di PalmaEvolving your Data Access with MongoDB Stitch - Drew Di Palma
Evolving your Data Access with MongoDB Stitch - Drew Di PalmaMongoDB
 
JavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopJavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopPeter Lehto
 
Building impressive layout systems with vaadin
Building impressive layout systems with vaadinBuilding impressive layout systems with vaadin
Building impressive layout systems with vaadinPeter Lehto
 
Introduction to Google Guice
Introduction to Google GuiceIntroduction to Google Guice
Introduction to Google GuiceKnoldus Inc.
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloakGuy Marom
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityRyan Dawson
 
Asp dot-net core problems and fixes
Asp dot-net core problems and fixes Asp dot-net core problems and fixes
Asp dot-net core problems and fixes sonia merchant
 
MongoDB Stitch Tutorial
MongoDB Stitch TutorialMongoDB Stitch Tutorial
MongoDB Stitch TutorialMongoDB
 
Correlation id token in share point 2010
Correlation id token in share point 2010Correlation id token in share point 2010
Correlation id token in share point 2010UGAIA
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-AssuredMichel Schudel
 
Java Security And Authentacation
Java Security And AuthentacationJava Security And Authentacation
Java Security And Authentacationckofoed
 
Microservice Protection With WSO2 Identity Server
Microservice Protection With WSO2 Identity ServerMicroservice Protection With WSO2 Identity Server
Microservice Protection With WSO2 Identity ServerAnupam Gogoi
 
Vaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkVaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkPeter Lehto
 
Box connector
Box connectorBox connector
Box connectorThang Loi
 

What's hot (20)

Pdm Common Framework Version 0.3
Pdm Common Framework Version 0.3Pdm Common Framework Version 0.3
Pdm Common Framework Version 0.3
 
Vaadin with Java EE 7
Vaadin with Java EE 7Vaadin with Java EE 7
Vaadin with Java EE 7
 
Building secure applications with keycloak
Building secure applications with keycloak Building secure applications with keycloak
Building secure applications with keycloak
 
Binding business data to vaadin components
Binding business data to vaadin componentsBinding business data to vaadin components
Binding business data to vaadin components
 
Testing RESTful web services with REST Assured
Testing RESTful web services with REST AssuredTesting RESTful web services with REST Assured
Testing RESTful web services with REST Assured
 
Evolving your Data Access with MongoDB Stitch - Drew Di Palma
Evolving your Data Access with MongoDB Stitch - Drew Di PalmaEvolving your Data Access with MongoDB Stitch - Drew Di Palma
Evolving your Data Access with MongoDB Stitch - Drew Di Palma
 
JavaEE with Vaadin - Workshop
JavaEE with Vaadin - WorkshopJavaEE with Vaadin - Workshop
JavaEE with Vaadin - Workshop
 
Building impressive layout systems with vaadin
Building impressive layout systems with vaadinBuilding impressive layout systems with vaadin
Building impressive layout systems with vaadin
 
Introduction to Google Guice
Introduction to Google GuiceIntroduction to Google Guice
Introduction to Google Guice
 
Secure your app with keycloak
Secure your app with keycloakSecure your app with keycloak
Secure your app with keycloak
 
Identity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibilityIdentity management and single sign on - how much flexibility
Identity management and single sign on - how much flexibility
 
Asp dot-net core problems and fixes
Asp dot-net core problems and fixes Asp dot-net core problems and fixes
Asp dot-net core problems and fixes
 
MongoDB Stitch Tutorial
MongoDB Stitch TutorialMongoDB Stitch Tutorial
MongoDB Stitch Tutorial
 
Correlation id token in share point 2010
Correlation id token in share point 2010Correlation id token in share point 2010
Correlation id token in share point 2010
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-Assured
 
Box Authentication Types
Box Authentication TypesBox Authentication Types
Box Authentication Types
 
Java Security And Authentacation
Java Security And AuthentacationJava Security And Authentacation
Java Security And Authentacation
 
Microservice Protection With WSO2 Identity Server
Microservice Protection With WSO2 Identity ServerMicroservice Protection With WSO2 Identity Server
Microservice Protection With WSO2 Identity Server
 
Vaadin 8 with Spring Framework
Vaadin 8 with Spring FrameworkVaadin 8 with Spring Framework
Vaadin 8 with Spring Framework
 
Box connector
Box connectorBox connector
Box connector
 

Viewers also liked

Damon Logan - resume 2016
Damon Logan - resume 2016Damon Logan - resume 2016
Damon Logan - resume 2016Damon Logan
 
Ois хичээлийн төлөвлөгөө 2013 2014
Ois хичээлийн төлөвлөгөө 2013 2014Ois хичээлийн төлөвлөгөө 2013 2014
Ois хичээлийн төлөвлөгөө 2013 2014Usukhuu Galaa
 
Mondelēz International - #OreoEclipse
Mondelēz International - #OreoEclipseMondelēz International - #OreoEclipse
Mondelēz International - #OreoEclipseNewsworks
 
Sex, Smartphones & SXSW
Sex, Smartphones & SXSWSex, Smartphones & SXSW
Sex, Smartphones & SXSWScott Bales
 
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)motivnt
 
コムニコのカルチャー "comni;code(コムニコード)"
コムニコのカルチャー "comni;code(コムニコード)"コムニコのカルチャー "comni;code(コムニコード)"
コムニコのカルチャー "comni;code(コムニコード)"comnico inc.
 
The Influencer's Mantra (NFRUG Feb 2010)
The Influencer's Mantra (NFRUG Feb 2010)The Influencer's Mantra (NFRUG Feb 2010)
The Influencer's Mantra (NFRUG Feb 2010)Siraj Sirajuddin
 
Getting your audience to create your content for you
Getting your audience to create your content for you Getting your audience to create your content for you
Getting your audience to create your content for you Sophie J Turton
 
Proceso legislativo en El Salvador
Proceso legislativo en El SalvadorProceso legislativo en El Salvador
Proceso legislativo en El SalvadorJren21
 
Online Media Data Stream Processing with Kafka
Online Media Data Stream Processing with KafkaOnline Media Data Stream Processing with Kafka
Online Media Data Stream Processing with KafkaChristian Gügi
 

Viewers also liked (17)

Damon Logan - resume 2016
Damon Logan - resume 2016Damon Logan - resume 2016
Damon Logan - resume 2016
 
Preparazione ad esami
Preparazione ad esamiPreparazione ad esami
Preparazione ad esami
 
Minimum Viable Marketing
Minimum Viable MarketingMinimum Viable Marketing
Minimum Viable Marketing
 
Ois хичээлийн төлөвлөгөө 2013 2014
Ois хичээлийн төлөвлөгөө 2013 2014Ois хичээлийн төлөвлөгөө 2013 2014
Ois хичээлийн төлөвлөгөө 2013 2014
 
Mondelēz International - #OreoEclipse
Mondelēz International - #OreoEclipseMondelēz International - #OreoEclipse
Mondelēz International - #OreoEclipse
 
Sex, Smartphones & SXSW
Sex, Smartphones & SXSWSex, Smartphones & SXSW
Sex, Smartphones & SXSW
 
Pathway To Happiness for Easing Our Sense of Feeling Rushed
Pathway To Happiness for Easing Our Sense of Feeling RushedPathway To Happiness for Easing Our Sense of Feeling Rushed
Pathway To Happiness for Easing Our Sense of Feeling Rushed
 
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
Нейроморфный чип “Алтай” ориентированный на использование в РТК (ПСиЗУ 2016)
 
コムニコのカルチャー "comni;code(コムニコード)"
コムニコのカルチャー "comni;code(コムニコード)"コムニコのカルチャー "comni;code(コムニコード)"
コムニコのカルチャー "comni;code(コムニコード)"
 
Blogging & Personal Branding
Blogging & Personal BrandingBlogging & Personal Branding
Blogging & Personal Branding
 
42 3º dia do clamor de ana (hagar)
42 3º dia do clamor de ana (hagar)42 3º dia do clamor de ana (hagar)
42 3º dia do clamor de ana (hagar)
 
The Influencer's Mantra (NFRUG Feb 2010)
The Influencer's Mantra (NFRUG Feb 2010)The Influencer's Mantra (NFRUG Feb 2010)
The Influencer's Mantra (NFRUG Feb 2010)
 
Presentación1
Presentación1Presentación1
Presentación1
 
cv Biswajit.
cv Biswajit.cv Biswajit.
cv Biswajit.
 
Getting your audience to create your content for you
Getting your audience to create your content for you Getting your audience to create your content for you
Getting your audience to create your content for you
 
Proceso legislativo en El Salvador
Proceso legislativo en El SalvadorProceso legislativo en El Salvador
Proceso legislativo en El Salvador
 
Online Media Data Stream Processing with Kafka
Online Media Data Stream Processing with KafkaOnline Media Data Stream Processing with Kafka
Online Media Data Stream Processing with Kafka
 

Similar to Agile methodologies based on BDD and CI by Nikolai Shevchenko

Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and MochaAtish Narlawar
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchMongoDB
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Bridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous DeliveryBridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous Deliverymasoodjan
 
Introduction to the Compliance Driven Development (CDD) and Security Centric ...
Introduction to the Compliance Driven Development (CDD) and Security Centric ...Introduction to the Compliance Driven Development (CDD) and Security Centric ...
Introduction to the Compliance Driven Development (CDD) and Security Centric ...VMware Tanzu
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by ExampleNalin Goonawardana
 
How to get started with the Pluggable Authentication System
How to get started with the Pluggable Authentication SystemHow to get started with the Pluggable Authentication System
How to get started with the Pluggable Authentication SystemMatt Hamilton
 
Microsoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsMicrosoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsStudy Material
 
MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB
 
Test & behavior driven development
Test & behavior driven developmentTest & behavior driven development
Test & behavior driven developmentTristan Libersat
 
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...Nico Miceli
 
Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1willmation
 
ITB2017 - Intro to Behavior Driven Development
ITB2017 - Intro to Behavior Driven DevelopmentITB2017 - Intro to Behavior Driven Development
ITB2017 - Intro to Behavior Driven DevelopmentOrtus Solutions, Corp
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB
 

Similar to Agile methodologies based on BDD and CI by Nikolai Shevchenko (20)

Bdd with Cucumber and Mocha
Bdd with Cucumber and MochaBdd with Cucumber and Mocha
Bdd with Cucumber and Mocha
 
Resume-Updated
Resume-Updated Resume-Updated
Resume-Updated
 
Building Your First App with MongoDB Stitch
Building Your First App with MongoDB StitchBuilding Your First App with MongoDB Stitch
Building Your First App with MongoDB Stitch
 
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch TutorialMongoDB.local Dallas 2019: MongoDB Stitch Tutorial
MongoDB.local Dallas 2019: MongoDB Stitch Tutorial
 
Coding Naked 2023
Coding Naked 2023Coding Naked 2023
Coding Naked 2023
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Bridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous DeliveryBridging the communication Gap & Continuous Delivery
Bridging the communication Gap & Continuous Delivery
 
Introduction to the Compliance Driven Development (CDD) and Security Centric ...
Introduction to the Compliance Driven Development (CDD) and Security Centric ...Introduction to the Compliance Driven Development (CDD) and Security Centric ...
Introduction to the Compliance Driven Development (CDD) and Security Centric ...
 
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch TutorialMongoDB.local Seattle 2019: MongoDB Stitch Tutorial
MongoDB.local Seattle 2019: MongoDB Stitch Tutorial
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
CDI @javaonehyderabad
CDI @javaonehyderabadCDI @javaonehyderabad
CDI @javaonehyderabad
 
How to get started with the Pluggable Authentication System
How to get started with the Pluggable Authentication SystemHow to get started with the Pluggable Authentication System
How to get started with the Pluggable Authentication System
 
Microsoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam DumpsMicrosoft AZ-204 Exam Dumps
Microsoft AZ-204 Exam Dumps
 
MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day One
 
Test & behavior driven development
Test & behavior driven developmentTest & behavior driven development
Test & behavior driven development
 
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
 
Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1Behaviour Driven Development V 0.1
Behaviour Driven Development V 0.1
 
ITB2017 - Intro to Behavior Driven Development
ITB2017 - Intro to Behavior Driven DevelopmentITB2017 - Intro to Behavior Driven Development
ITB2017 - Intro to Behavior Driven Development
 
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB StitchMongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
MongoDB.local Sydney: Evolving your Data Access with MongoDB Stitch
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch Tutorial
 

More from Moldova ICT Summit

Estonian Experience in Robotics, Heilo Altin
Estonian Experience in Robotics, Heilo AltinEstonian Experience in Robotics, Heilo Altin
Estonian Experience in Robotics, Heilo AltinMoldova ICT Summit
 
How to build successful IT start-up for world market from Eastern Europe, Rag...
How to build successful IT start-up for world market from Eastern Europe, Rag...How to build successful IT start-up for world market from Eastern Europe, Rag...
How to build successful IT start-up for world market from Eastern Europe, Rag...Moldova ICT Summit
 
TypeScript vs. CoffeeScript, Vlad Iliescu
TypeScript vs. CoffeeScript, Vlad IliescuTypeScript vs. CoffeeScript, Vlad Iliescu
TypeScript vs. CoffeeScript, Vlad IliescuMoldova ICT Summit
 
How European start-ups can make a business out of the US shut-down of privacy...
How European start-ups can make a business out of the US shut-down of privacy...How European start-ups can make a business out of the US shut-down of privacy...
How European start-ups can make a business out of the US shut-down of privacy...Moldova ICT Summit
 
The Third Platform Technologies - Accelerating the Curve, Laurentiu Popescu
The Third Platform Technologies - Accelerating the Curve, Laurentiu PopescuThe Third Platform Technologies - Accelerating the Curve, Laurentiu Popescu
The Third Platform Technologies - Accelerating the Curve, Laurentiu PopescuMoldova ICT Summit
 
TrackDuck - Edmundas Balčikonis
TrackDuck - Edmundas BalčikonisTrackDuck - Edmundas Balčikonis
TrackDuck - Edmundas BalčikonisMoldova ICT Summit
 
Developing secure mobile apps by Alexandru Catariov Endava
Developing secure mobile apps by Alexandru Catariov EndavaDeveloping secure mobile apps by Alexandru Catariov Endava
Developing secure mobile apps by Alexandru Catariov EndavaMoldova ICT Summit
 
Talentalism and its impact on education in ICT sector by Diana Bocaneala Endava
Talentalism and its impact on education in ICT sector by Diana Bocaneala EndavaTalentalism and its impact on education in ICT sector by Diana Bocaneala Endava
Talentalism and its impact on education in ICT sector by Diana Bocaneala EndavaMoldova ICT Summit
 
Hitachi Unified Compute Platform by Cornel Tutuianu
Hitachi Unified Compute Platform by Cornel TutuianuHitachi Unified Compute Platform by Cornel Tutuianu
Hitachi Unified Compute Platform by Cornel TutuianuMoldova ICT Summit
 
Enterprise Architecture supporting the change by Vladimir Calmic Endava
Enterprise Architecture supporting the change by Vladimir Calmic EndavaEnterprise Architecture supporting the change by Vladimir Calmic Endava
Enterprise Architecture supporting the change by Vladimir Calmic EndavaMoldova ICT Summit
 
Strategia de crestere a competitivitatii industriei TI
Strategia de crestere a competitivitatii industriei TIStrategia de crestere a competitivitatii industriei TI
Strategia de crestere a competitivitatii industriei TIMoldova ICT Summit
 
The business of innovation by W.Grommen
The business of innovation by W.GrommenThe business of innovation by W.Grommen
The business of innovation by W.GrommenMoldova ICT Summit
 
European Experience developing Business Angel Ecosystem by Paulo Andrez
European Experience developing Business Angel Ecosystem by Paulo AndrezEuropean Experience developing Business Angel Ecosystem by Paulo Andrez
European Experience developing Business Angel Ecosystem by Paulo AndrezMoldova ICT Summit
 

More from Moldova ICT Summit (20)

Estonian Experience in Robotics, Heilo Altin
Estonian Experience in Robotics, Heilo AltinEstonian Experience in Robotics, Heilo Altin
Estonian Experience in Robotics, Heilo Altin
 
How to build successful IT start-up for world market from Eastern Europe, Rag...
How to build successful IT start-up for world market from Eastern Europe, Rag...How to build successful IT start-up for world market from Eastern Europe, Rag...
How to build successful IT start-up for world market from Eastern Europe, Rag...
 
TypeScript vs. CoffeeScript, Vlad Iliescu
TypeScript vs. CoffeeScript, Vlad IliescuTypeScript vs. CoffeeScript, Vlad Iliescu
TypeScript vs. CoffeeScript, Vlad Iliescu
 
How European start-ups can make a business out of the US shut-down of privacy...
How European start-ups can make a business out of the US shut-down of privacy...How European start-ups can make a business out of the US shut-down of privacy...
How European start-ups can make a business out of the US shut-down of privacy...
 
Bitdefender, Ana Cobzaru
Bitdefender, Ana CobzaruBitdefender, Ana Cobzaru
Bitdefender, Ana Cobzaru
 
The Third Platform Technologies - Accelerating the Curve, Laurentiu Popescu
The Third Platform Technologies - Accelerating the Curve, Laurentiu PopescuThe Third Platform Technologies - Accelerating the Curve, Laurentiu Popescu
The Third Platform Technologies - Accelerating the Curve, Laurentiu Popescu
 
Privesc.eu - Vitalie Esanu
Privesc.eu - Vitalie EsanuPrivesc.eu - Vitalie Esanu
Privesc.eu - Vitalie Esanu
 
TrackDuck - Edmundas Balčikonis
TrackDuck - Edmundas BalčikonisTrackDuck - Edmundas Balčikonis
TrackDuck - Edmundas Balčikonis
 
Developing secure mobile apps by Alexandru Catariov Endava
Developing secure mobile apps by Alexandru Catariov EndavaDeveloping secure mobile apps by Alexandru Catariov Endava
Developing secure mobile apps by Alexandru Catariov Endava
 
Talentalism and its impact on education in ICT sector by Diana Bocaneala Endava
Talentalism and its impact on education in ICT sector by Diana Bocaneala EndavaTalentalism and its impact on education in ICT sector by Diana Bocaneala Endava
Talentalism and its impact on education in ICT sector by Diana Bocaneala Endava
 
Hitachi Unified Compute Platform by Cornel Tutuianu
Hitachi Unified Compute Platform by Cornel TutuianuHitachi Unified Compute Platform by Cornel Tutuianu
Hitachi Unified Compute Platform by Cornel Tutuianu
 
Enterprise Architecture supporting the change by Vladimir Calmic Endava
Enterprise Architecture supporting the change by Vladimir Calmic EndavaEnterprise Architecture supporting the change by Vladimir Calmic Endava
Enterprise Architecture supporting the change by Vladimir Calmic Endava
 
Bina systems Cloud Applications
Bina systems Cloud ApplicationsBina systems Cloud Applications
Bina systems Cloud Applications
 
1C - AccountTimbal
1C - AccountTimbal1C - AccountTimbal
1C - AccountTimbal
 
Strategia de crestere a competitivitatii industriei TI
Strategia de crestere a competitivitatii industriei TIStrategia de crestere a competitivitatii industriei TI
Strategia de crestere a competitivitatii industriei TI
 
BAIT MD infoDev
BAIT MD infoDevBAIT MD infoDev
BAIT MD infoDev
 
Customs presentation
Customs presentationCustoms presentation
Customs presentation
 
White Book presentation
White Book presentationWhite Book presentation
White Book presentation
 
The business of innovation by W.Grommen
The business of innovation by W.GrommenThe business of innovation by W.Grommen
The business of innovation by W.Grommen
 
European Experience developing Business Angel Ecosystem by Paulo Andrez
European Experience developing Business Angel Ecosystem by Paulo AndrezEuropean Experience developing Business Angel Ecosystem by Paulo Andrez
European Experience developing Business Angel Ecosystem by Paulo Andrez
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Agile methodologies based on BDD and CI by Nikolai Shevchenko

  • 1. 1 • Agile Methodology based on BDD and CI Created by Nicolai Sevcenco
  • 2. Agile Methodology based on BDD and CI  What is BDD? Behaviour-Driven Development (BDD) is about implementing an application by describing it from the point of view of its stakeholders 2 Reqs DoneTest  “Golden triangle” between BA requirements, acceptance tests and the “Done” criteria for a feature used by developers Team effort:  BA  QA (manual & automation)  Developer/ Architect  BA, QA and Dev. teams speak the same language (Gherkin, etc) Agile Team
  • 3. 3
  • 4. User Stories  BDD revolves around the concept of a Story, which represents an automatically executable increment of business functionality. At its core a Story comprises of one or more Scenarios, each of which represents a concrete example of the behaviour of the system. Each Scenario comprises of a number of executable steps. These Steps can be of three types: 4 1 Scenario: When a user enters an incorrect password on to Login page, the corresponding error message should be displayed. 2 Given a user tst150005684 !-- comments are here 3 Given an incorrect password "test9033T" 4 When the user enters account to the account text box 5 When the user enters an incorrect password to the password text box 6 When the user clicks the login button 7 Then the "Incorrect password or user name" must be displayed
  • 5. 5 public class LoginPage { // hey I'm POJO private String accnt; private String passwd; @Given("a user $account") public void givenAUser(final String account){ this.accnt = account; } @Given("an incorrect password $pwd") public void givenAnIncorrectPassword(final String pwd){ this.passwd = pwd; } @When("the user enters account to the account text box") public void userEntersAccount() { page.getSeleniumImpl().getDriver().findElement(By.name("USERID")).sendKeys(userId); } @When("the user enters an incorrect password to the password text box") public void userEntersPassword() { page.getSeleniumImpl().getDriver().findElement(By.name("PASSWORD")).sendKeys(password); } @When("the user clicks the login button") public void userClicksLoginButton() { page.getSeleniumImpl().getDriver().findElement(By.id("loginBtn")).click(); } @Then("the $errmsg must be displayed") public void checkErrMessage(final String errmsg){ Assert.assertTrue(this.loginPageImpl.checkForWrongUserIdOrPasswordMessage()); }
  • 6. How to exclude needless code duplications  an Allias annotation with the new matching step pattern comes into play: 6 @When("the item price is $price") @Alias("the item price becomes $price") // single alias public void theItemPriceIs(double price) { // ... }
  • 8. Development and QA consideration points 8  BDD can help development team focus on the user’s needs and the expected behavior instead of jumping ahead and getting caught up in implementation details upfront.  Much lower barrier-to-entry for new members as a result of common language (Gherkin, etc) between BA, QA and Dev. teams.  Perceive unit tests more like “change detectors” rather than tests with reliable failures reports. BDD helps to shift expectations towards reusing automated functional/ regression tests and acceptance tests.  Greater ROI: Behavior has a much longer shelf life than implementation and implementation related documentation. Also as the business rules change, BDD captures it better than it being lost in documents and code.  Predictability & Confidence: BDD makes much better predictability and confidence to the team work.  A genuine collaboration between business, QA and development:  Automation team produces automated functional/regression and acceptance tests  Dev. team re-uses automated tests to leverage unit tests coverage as well as automation team may use unit tests, produced by developers, to better understand the system/application.  Business justifies priorities by showing concrete value thru the provided stories.
  • 10. CI - Continues Integration 10  Main principles:  Integrates source code and runs test after each commit to the source repository  Near-immediate (as quickly as possible) feedback to the “agile” team once detecting integration errors.  Benefits:  Eliminates deferred integration which is very hard to predict how long it will take to do.  Having a good test suite can dramatically easier to find and remove bugs.  Frequent deployments: are valuable because they allow your users to get new features more rapidly, to give more rapid feedback on those features, and generally become more collaborative in the development cycle.  Toolkit:  Cruise Control  Apache Continuum  JetBrains Team City  Hudson  Jenkins
  • 11. 11
  • 12. This document contains confidential information for use by TD AMERITRADE Holding Corporation and its subsidiaries. 12 Q U E S T I O N S A N S W E R S