agile .net development with bdd and continuous integration
TRANSCRIPT
![Page 1: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/1.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Agile .NET Developmentwith BDD and Continuous Integration
Hanoi .NET Group – Meetup #6
![Page 2: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/2.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
AgendaIntroduction to BDD – Behavior Driven DevelopmentIntroduction to Specification by ExampleIntroduction to CI – Continuous IntegrationPractices of Continuous IntegrationTools to UseDemosWhat’s NextQ&A
![Page 3: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/3.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven DevelopmentBehavior-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.
![Page 4: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/4.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven DevelopmentBDD style testing framework
xBehaveWriting 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
xSpecWriting 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
![Page 5: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/5.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven Development#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
![Page 6: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/6.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven Development#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
![Page 7: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/7.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven Development#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
![Page 8: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/8.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to BDD – Behavior Driven Development#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
![Page 9: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/9.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Specification by ExampleWikipedia
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
![Page 10: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/10.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Specification by Example
![Page 11: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/11.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Specification by Example
![Page 12: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/12.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Continuous IntegrationContinuous 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)
![Page 13: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/13.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Continuous Integration
![Page 14: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/14.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Introduction to Continuous Integration
![Page 15: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/15.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Practices of Continuous Integration
Build
Quality Management
Development
ContinuousIntegration
1 - Maintain a Single Source Repository4 - Everyone Commits To the Mainline Every Day5 - Every Commit Should Build the Mainline on an Integration Machine
2 - Automate the Build3 - Make Your Build Self-Testing6 - Fix Broken Builds Immediately7 - Keep the Build Fast8 - Test in a Clone of the Production Environment9 - 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)
![Page 16: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/16.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to UseGit is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency
![Page 17: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/17.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to UseGit Workflow
(Source: A successful Git branching model – Vincent Driessen)
![Page 18: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/18.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to UseJenkins CI
Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle.
![Page 19: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/19.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to Use
![Page 20: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/20.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to UseSonarQube
SonarQube is an open source quality management platform, dedicated to continuously analyze and measure source code quality.
![Page 21: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/21.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Tools to Use
(Source: http://nemo.sonarqube.org/)
![Page 22: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/22.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
What’s NextContinuous Integration and Delivery
![Page 23: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/23.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
What’s NextContinuous Integration and Delivery with Docker
![Page 24: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/24.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Demos
![Page 25: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/25.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group
Q&A
![Page 26: Agile .NET Development with BDD and Continuous Integration](https://reader035.vdocuments.net/reader035/viewer/2022070517/58d0caa41a28ab866c8b6043/html5/thumbnails/26.jpg)
Agile .NET Development with BDD and Continuous IntegrationHanoi .NET Group