Agile .NET Development with BDD and Continuous Integration
Áp dụng CI là một phần không thể thiếu nếu bạn mong muốn nâng cao năng suất và giảm thiểu lỗi lầm khi phát triển cũng như deploy sản phẩm qua việc sử dụng các practices và tools để tự động hóa các khâu
Bài trình bày của anh Trương Anh Quân tại Meetup của Ha Noi .NET Group.
Chi tiết vui lòng xem tại: http://tungnt.net
Breaking the Kubernetes Kill Chain: Host Path Mount
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
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)
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.
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