SlideShare a Scribd company logo
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Hanoi .NET Group – Meetup #6
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven Development
Introduction to Specification by Example
Introduction to CI – Continuous Integration
Practices of Continuous Integration
Tools to Use
Demos
What’s Next
Q&A
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Behavior-driven development (BDD) is a software
development process that emerged from test-driven
development (TDD).
While in TDD the focus is on writing tests that single
out units of the application, BDD is focused on writing
tests on the behavior of the application.
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
BDD style testing framework
xBehave
Writing user level stories in a form comprehensible by anyone.
Typically use a story defined in a DSL close to English and then map
this story to a test written in code by the developers.
Well-known example: SpecFlow, NBehave
xSpec
Writing tests in code using an approach that favors testing behavior
and functionality by developers .
Usually closer to unit tests in both appearance and granularity but
feature some differences.
Well-known example: Nspec, StoryQ
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
#BDD in a tweet:
Using examples at multiple levels to create a shared
understanding and surface uncertainly to deliver software
that matters
Dan North @tastapod
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
#BDD in a tweet:
Using examples at multiple levels to create a shared
understanding and surface uncertainly to deliver software
that matters
Dan North @tastapod
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
#BDD in a tweet:
Using examples at multiple levels to create a shared
understanding and surface uncertainly to deliver software
that matters
Dan North @tastapod
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
#BDD in a tweet:
Using examples at multiple levels to create a shared
understanding and surface uncertainly to deliver software
that matters
Dan North @tastapod
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Wikipedia
Specification by example (SBE) is a collaborative approach to
defining requirements and business-oriented functional
tests for software products based on capturing and
illustrating requirements using realistic examples instead of
abstract statements
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Continuous Integration is a software development
practice where members of a team integrate their
work frequently, usually each person integrates at least
daily - leading to multiple integrations per day.
Each integration is verified by an automated build
(including test) to detect integration errors as quickly
as possible.
Many teams find that this approach leads to
significantly reduced integration problems and allows a
team to develop cohesive software more rapidly
(Source: http://www.martinfowler.com/articles/continuousIntegration.html)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Build
Quality
Management
Development
Continuous
Integration
1 - Maintain a Single Source Repository
4 - Everyone Commits To the Mainline Every Day
5 - Every Commit Should Build the Mainline on an Integration Machine
2 - Automate the Build
3 - Make Your Build Self-Testing
6 - Fix Broken Builds Immediately
7 - Keep the Build Fast
8 - Test in a Clone of the Production Environment
9 - Make it Easy for Anyone to Get the Latest Executable
10 - Everyone can see what’s happening
(Source: http://www.martinfowler.com/articles/continuousIntegration.html)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Git is a free and open source distributed version
control system designed to handle everything from
small to very large projects with speed and efficiency
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Git Workflow
(Source: A successful Git branching model – Vincent Driessen)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Jenkins CI
Jenkins is an open source continuous integration tool written in Java.
The project was forked from Hudson after a dispute with Oracle.
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
SonarQube
SonarQube is an open source quality management platform, dedicated
to continuously analyze and measure source code quality.
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
(Source: http://nemo.sonarqube.org/)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Continuous Integration and Delivery
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Continuous Integration and Delivery with Docker
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group

More Related Content

What's hot

BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
Knoldus Inc.
 
Behavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatBehavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatAndrei Jechiu
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
Allen Dean
 
Spec(ing) Out Your Workflow with SpecFlow
Spec(ing) Out Your Workflow with SpecFlowSpec(ing) Out Your Workflow with SpecFlow
Spec(ing) Out Your Workflow with SpecFlow
Sarah Dutkiewicz
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
sam chiu
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
vodQA
 
Vagrant and Docker
Vagrant and DockerVagrant and Docker
Vagrant and Docker
Nascenia IT
 
JIRA & Stach, The Love Story
JIRA & Stach, The Love StoryJIRA & Stach, The Love Story
JIRA & Stach, The Love Story
Atlassian 대한민국
 
Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016
Ramit Surana
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
Srinivas Katakam
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
XP Conference India
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
Rachid Kherrazi
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDays Riga
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
Vishal Banthia
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Abhinav Gupta
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
123abcda
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
cromwellryan
 
Team City
Team CityTeam City
Team City
Vaclav Pech
 
Web based automation testing on Node.js environment
Web based automation testing on Node.js environmentWeb based automation testing on Node.js environment
Web based automation testing on Node.js environment
Yu-Lin Huang
 
Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startupsMona Soni
 

What's hot (20)

BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Behavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behatBehavior driven development. Testing drupal using behat
Behavior driven development. Testing drupal using behat
 
A Tour of Swagger for APIs
A Tour of Swagger for APIsA Tour of Swagger for APIs
A Tour of Swagger for APIs
 
Spec(ing) Out Your Workflow with SpecFlow
Spec(ing) Out Your Workflow with SpecFlowSpec(ing) Out Your Workflow with SpecFlow
Spec(ing) Out Your Workflow with SpecFlow
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Continous integration with jenkins
Continous integration with jenkinsContinous integration with jenkins
Continous integration with jenkins
 
Vagrant and Docker
Vagrant and DockerVagrant and Docker
Vagrant and Docker
 
JIRA & Stach, The Love Story
JIRA & Stach, The Love StoryJIRA & Stach, The Love Story
JIRA & Stach, The Love Story
 
Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016
 
BDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVABDD WITH CUCUMBER AND JAVA
BDD WITH CUCUMBER AND JAVA
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
 
Behavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlowBehavior Driven Development with SpecFlow
Behavior Driven Development with SpecFlow
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - SydneySimplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
Simplified CI/CD Flows for Salesforce via SFDX - Downunder Dreamin - Sydney
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
 
Team City
Team CityTeam City
Team City
 
Web based automation testing on Node.js environment
Web based automation testing on Node.js environmentWeb based automation testing on Node.js environment
Web based automation testing on Node.js environment
 
Testing and beyond at startups
Testing and beyond at startupsTesting and beyond at startups
Testing and beyond at startups
 

Viewers also liked

Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015
Tung Nguyen Thanh
 
Xp not windows xp
Xp not windows xpXp not windows xp
Xp not windows xp
Tung Nguyen Thanh
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automationMidVision
 
Agile Systems Admin
Agile Systems AdminAgile Systems Admin
Agile Systems Admin
Julian Simpson
 
I gotta dependency on dependency injection
I gotta dependency on dependency injectionI gotta dependency on dependency injection
I gotta dependency on dependency injection
mhenroid
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
mhenroid
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automationMidVision
 
Test driven development
Test driven developmentTest driven development
Test driven developmentShalabh Saxena
 
Domain's Robot Army
Domain's Robot ArmyDomain's Robot Army
Domain's Robot Army
domaingroup
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Martin de Keijzer
 
Core Principles Of Ci
Core Principles Of CiCore Principles Of Ci
Core Principles Of Ci
OpenSource Connections
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET World
Dima Pasko
 
SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
Tung Nguyen Thanh
 
How to become senior .net developer
How to become senior .net developerHow to become senior .net developer
How to become senior .net developer
Tung Nguyen Thanh
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven developmenttoteb5
 
Integration with Docker and .NET Core
Integration with Docker and .NET CoreIntegration with Docker and .NET Core
Integration with Docker and .NET Core
Sriram Hariharan
 
Performance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL DatabasePerformance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL Database
Tung Nguyen Thanh
 
Docker for .net developer
Docker for .net developerDocker for .net developer
Docker for .net developer
Tung Nguyen Thanh
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
Tung Nguyen Thanh
 

Viewers also liked (20)

Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015Continuous Delivery with VS2015 and TFS2015
Continuous Delivery with VS2015 and TFS2015
 
Xp not windows xp
Xp not windows xpXp not windows xp
Xp not windows xp
 
The art of .net deployment automation
The art of .net deployment automationThe art of .net deployment automation
The art of .net deployment automation
 
Agile Systems Admin
Agile Systems AdminAgile Systems Admin
Agile Systems Admin
 
I gotta dependency on dependency injection
I gotta dependency on dependency injectionI gotta dependency on dependency injection
I gotta dependency on dependency injection
 
Implementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for CheapskatesImplementing Continuous Integration in .NET for Cheapskates
Implementing Continuous Integration in .NET for Cheapskates
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automation
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Buildbot
BuildbotBuildbot
Buildbot
 
Domain's Robot Army
Domain's Robot ArmyDomain's Robot Army
Domain's Robot Army
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Core Principles Of Ci
Core Principles Of CiCore Principles Of Ci
Core Principles Of Ci
 
Ideal Deployment In .NET World
Ideal Deployment In .NET WorldIdeal Deployment In .NET World
Ideal Deployment In .NET World
 
SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6SignalR with ASP.NET MVC 6
SignalR with ASP.NET MVC 6
 
How to become senior .net developer
How to become senior .net developerHow to become senior .net developer
How to become senior .net developer
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
Integration with Docker and .NET Core
Integration with Docker and .NET CoreIntegration with Docker and .NET Core
Integration with Docker and .NET Core
 
Performance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL DatabasePerformance Tuning And Optimization Microsoft SQL Database
Performance Tuning And Optimization Microsoft SQL Database
 
Docker for .net developer
Docker for .net developerDocker for .net developer
Docker for .net developer
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 

Similar to Agile .NET Development with BDD and Continuous Integration

Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
Sunil Dalal
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
Hoa Le
 
mohansundarcv_2016
mohansundarcv_2016mohansundarcv_2016
mohansundarcv_2016mohan sundar
 
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
AgileNetwork
 
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
AgileNetwork
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
Ivan Porta
 
SmartBear Solutions for Agile & DevOps
SmartBear Solutions for Agile & DevOpsSmartBear Solutions for Agile & DevOps
SmartBear Solutions for Agile & DevOps
SmartBear
 
Continuous integration
Continuous integration Continuous integration
Continuous integration
John Temoty Roca
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevProTop 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
SofiaCarter4
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & Zowe
DevOps.com
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
Hasan Hosgel
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
Promet Source
 
How Dealogic Scaled Agile &; Delivers Effectively
How Dealogic Scaled Agile &; Delivers EffectivelyHow Dealogic Scaled Agile &; Delivers Effectively
How Dealogic Scaled Agile &; Delivers Effectively
Irfan Ikram
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWDVikas Sarin
 
DevOps at Lean Apps
DevOps at Lean AppsDevOps at Lean Apps
DevOps at Lean Apps
Lean Apps
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform Engineering
Adityo Pratomo
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
Denis Santos
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
Justin Gordon
 

Similar to Agile .NET Development with BDD and Continuous Integration (20)

Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
mohansundarcv_2016
mohansundarcv_2016mohansundarcv_2016
mohansundarcv_2016
 
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...Agile Network India | Continuous Integration & Continuous Deployment & Automa...
Agile Network India | Continuous Integration & Continuous Deployment & Automa...
 
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
Agile Chennai 2021 | Achieving High DevOps Maturity through Platform Engineer...
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
SmartBear Solutions for Agile & DevOps
SmartBear Solutions for Agile & DevOpsSmartBear Solutions for Agile & DevOps
SmartBear Solutions for Agile & DevOps
 
Continuous integration
Continuous integration Continuous integration
Continuous integration
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevProTop 25+ .Net development tools for intelligent business solutions - AppsDevPro
Top 25+ .Net development tools for intelligent business solutions - AppsDevPro
 
Enterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & ZoweEnterprise DevOps Series: Using VS Code & Zowe
Enterprise DevOps Series: Using VS Code & Zowe
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
How Dealogic Scaled Agile &; Delivers Effectively
How Dealogic Scaled Agile &; Delivers EffectivelyHow Dealogic Scaled Agile &; Delivers Effectively
How Dealogic Scaled Agile &; Delivers Effectively
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 
DevOps at Lean Apps
DevOps at Lean AppsDevOps at Lean Apps
DevOps at Lean Apps
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform Engineering
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
 
xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012xUnit and TDD: Why and How in Enterprise Software, August 2012
xUnit and TDD: Why and How in Enterprise Software, August 2012
 

More from Tung Nguyen Thanh

HaNoi Net Group Introduction
HaNoi Net Group IntroductionHaNoi Net Group Introduction
HaNoi Net Group Introduction
Tung Nguyen Thanh
 
Software architecture for high traffic website
Software architecture for high traffic websiteSoftware architecture for high traffic website
Software architecture for high traffic website
Tung Nguyen Thanh
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
Tung Nguyen Thanh
 
Refactoring code in .net
Refactoring code in .netRefactoring code in .net
Refactoring code in .net
Tung Nguyen Thanh
 
Visual studio 2015 ide new features
Visual studio 2015 ide new featuresVisual studio 2015 ide new features
Visual studio 2015 ide new features
Tung Nguyen Thanh
 
Whatmakesoftwareflexible
WhatmakesoftwareflexibleWhatmakesoftwareflexible
Whatmakesoftwareflexible
Tung Nguyen Thanh
 
How to release every week case study of continuous integration
How to release every week case study of continuous integrationHow to release every week case study of continuous integration
How to release every week case study of continuous integration
Tung Nguyen Thanh
 
Is xp still extreme
Is xp still extremeIs xp still extreme
Is xp still extreme
Tung Nguyen Thanh
 
Workshop fight legacy code write unit test
Workshop fight legacy code write unit testWorkshop fight legacy code write unit test
Workshop fight legacy code write unit test
Tung Nguyen Thanh
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
Tung Nguyen Thanh
 
Developing windows phone 7 application with silverlight
Developing windows phone 7 application with silverlightDeveloping windows phone 7 application with silverlight
Developing windows phone 7 application with silverlight
Tung Nguyen Thanh
 
Top 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and AnswersTop 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and Answers
Tung Nguyen Thanh
 
New in Visual Studio and TFS 2013
New in Visual Studio and TFS 2013New in Visual Studio and TFS 2013
New in Visual Studio and TFS 2013
Tung Nguyen Thanh
 
Visual studio2012 tipsandtricks
Visual studio2012 tipsandtricksVisual studio2012 tipsandtricks
Visual studio2012 tipsandtricksTung Nguyen Thanh
 
UI prototyping with ms expression blend sketch flow
UI prototyping with ms expression blend sketch flowUI prototyping with ms expression blend sketch flow
UI prototyping with ms expression blend sketch flow
Tung Nguyen Thanh
 

More from Tung Nguyen Thanh (15)

HaNoi Net Group Introduction
HaNoi Net Group IntroductionHaNoi Net Group Introduction
HaNoi Net Group Introduction
 
Software architecture for high traffic website
Software architecture for high traffic websiteSoftware architecture for high traffic website
Software architecture for high traffic website
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Refactoring code in .net
Refactoring code in .netRefactoring code in .net
Refactoring code in .net
 
Visual studio 2015 ide new features
Visual studio 2015 ide new featuresVisual studio 2015 ide new features
Visual studio 2015 ide new features
 
Whatmakesoftwareflexible
WhatmakesoftwareflexibleWhatmakesoftwareflexible
Whatmakesoftwareflexible
 
How to release every week case study of continuous integration
How to release every week case study of continuous integrationHow to release every week case study of continuous integration
How to release every week case study of continuous integration
 
Is xp still extreme
Is xp still extremeIs xp still extreme
Is xp still extreme
 
Workshop fight legacy code write unit test
Workshop fight legacy code write unit testWorkshop fight legacy code write unit test
Workshop fight legacy code write unit test
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
 
Developing windows phone 7 application with silverlight
Developing windows phone 7 application with silverlightDeveloping windows phone 7 application with silverlight
Developing windows phone 7 application with silverlight
 
Top 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and AnswersTop 100 .NET Interview Questions and Answers
Top 100 .NET Interview Questions and Answers
 
New in Visual Studio and TFS 2013
New in Visual Studio and TFS 2013New in Visual Studio and TFS 2013
New in Visual Studio and TFS 2013
 
Visual studio2012 tipsandtricks
Visual studio2012 tipsandtricksVisual studio2012 tipsandtricks
Visual studio2012 tipsandtricks
 
UI prototyping with ms expression blend sketch flow
UI prototyping with ms expression blend sketch flowUI prototyping with ms expression blend sketch flow
UI prototyping with ms expression blend sketch flow
 

Recently uploaded

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

Agile .NET Development with BDD and Continuous Integration

  • 1. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Hanoi .NET Group – Meetup #6
  • 2. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Introduction to BDD – Behavior Driven Development Introduction to Specification by Example Introduction to CI – Continuous Integration Practices of Continuous Integration Tools to Use Demos What’s Next Q&A
  • 3. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD). While in TDD the focus is on writing tests that single out units of the application, BDD is focused on writing tests on the behavior of the application.
  • 4. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group BDD style testing framework xBehave Writing user level stories in a form comprehensible by anyone. Typically use a story defined in a DSL close to English and then map this story to a test written in code by the developers. Well-known example: SpecFlow, NBehave xSpec Writing tests in code using an approach that favors testing behavior and functionality by developers . Usually closer to unit tests in both appearance and granularity but feature some differences. Well-known example: Nspec, StoryQ
  • 5. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group #BDD in a tweet: Using examples at multiple levels to create a shared understanding and surface uncertainly to deliver software that matters Dan North @tastapod
  • 6. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group #BDD in a tweet: Using examples at multiple levels to create a shared understanding and surface uncertainly to deliver software that matters Dan North @tastapod
  • 7. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group #BDD in a tweet: Using examples at multiple levels to create a shared understanding and surface uncertainly to deliver software that matters Dan North @tastapod
  • 8. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group #BDD in a tweet: Using examples at multiple levels to create a shared understanding and surface uncertainly to deliver software that matters Dan North @tastapod
  • 9. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Wikipedia Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements
  • 10. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 11. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 12. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly (Source: http://www.martinfowler.com/articles/continuousIntegration.html)
  • 13. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 14. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 15. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Build Quality Management Development Continuous Integration 1 - Maintain a Single Source Repository 4 - Everyone Commits To the Mainline Every Day 5 - Every Commit Should Build the Mainline on an Integration Machine 2 - Automate the Build 3 - Make Your Build Self-Testing 6 - Fix Broken Builds Immediately 7 - Keep the Build Fast 8 - Test in a Clone of the Production Environment 9 - Make it Easy for Anyone to Get the Latest Executable 10 - Everyone can see what’s happening (Source: http://www.martinfowler.com/articles/continuousIntegration.html)
  • 16. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency
  • 17. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Git Workflow (Source: A successful Git branching model – Vincent Driessen)
  • 18. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Jenkins CI Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle.
  • 19. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 20. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group SonarQube SonarQube is an open source quality management platform, dedicated to continuously analyze and measure source code quality.
  • 21. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group (Source: http://nemo.sonarqube.org/)
  • 22. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Continuous Integration and Delivery
  • 23. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group Continuous Integration and Delivery with Docker
  • 24. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 25. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
  • 26. Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group