Download presentation
Presentation is loading. Please wait.
1
Craig Berntson www.craigberntson.com craig@craigberntson.com Twitter: @craigber
2
Microsoft MVP since 1996 Magazine and book authoring Speaker at developer events across US and in Canada, Germany, and Czech Republic
3
Continuous Integration – Why and What Prerequisites Controlling Continuous Integration Testing Feedback Copyright 2007 - 2009, Craig Berntson. All rights reserved
4
It works on my machine When will you be done The database changed Stop shipping! We found a bug! Give me what you have so we can test Customer won’t accept – lots of bugs Code duplication Copyright 2007 - 2009, Craig Berntson. All rights reserved
5
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. – Martin Fowler (http://www.martinfowler.com/articles/continuousIntegration.html) Copyright 2007 - 2009, Craig Berntson. All rights reserved
6
“CI is the embodiment of tactics that gives us, as software developers, the ability to make changes in our code, knowing that if we break software, we’ll receive immediate feedback...[It is] the centerpiece of software development, as it ensures the health of software through running a build with every change.” – Paul Duvall, “Continuous Integration” Copyright 2007 - 2009, Craig Berntson. All rights reserved
7
Feedback Mechanism Commit Changes Build Script CI Server Integration Build Machine Version Control Repository Poll
8
Compile code Produce developer documentation Run unit tests and code metrics Call sophisticated external testing applications Produce an install set and burn to CD Copyright 2007 - 2008, Craig Berntson. All rights reserved
10
Reduce risks Reduce repetitive processes Generate deployable software Enable better project visibility Establish greater product confidence Copyright 2007 - 2008, Craig Berntson. All rights reserved
11
Increased overhead to maintain the CI system Too much change Additional hardware/software costs Developers should be performing these activities Copyright 2007 - 2008, Craig Berntson. All rights reserved
12
Commit code frequently Don’t commit broken code Fix broken builds immediately Write automated developer tests All tests and inspections must pass Run private builds (each developer runs tests on their own code) Avoid getting broken code (don’t check out broken code) Copyright 2007 - 2009, Craig Berntson. All rights reserved
13
Each developer should use the same folder structure Copyright 2007 - 2009, Craig Berntson. All rights reserved
14
Use source control! Telelogic Synergy CM Subversion SourceGear Vault Copyright 2007 - 2009, Craig Berntson. All rights reserved
15
You don’t need a high powered box to get started Separate box from source control server Copyright 2007 - 2009, Craig Berntson. All rights reserved
16
Everything that needs to be done to get the application out the door. Compiling Testing Creating install bits Copyright 2007 - 2009, Craig Berntson. All rights reserved
17
Incremental Daily Weekly Test Install Copyright 2007 - 2009, Craig Berntson. All rights reserved
18
Created by ThoughtWorks Four distinct parts CCNet.exe CCService.exe WebDashBoard CCTray CCNet.config Copyright 2007 - 2009, Craig Berntson. All rights reserved
19
NAnt MSBuild Math.sln Math.csproj Math.proj Copyright 2007 - 2009, Craig Berntson. All rights reserved
20
Visual Studio NUnit Copyright 2007 - 2009, Craig Berntson. All rights reserved
21
Configuring CruiseControl.NET Building the application with MS Build Automated testing with NUnit Copyright 2007 - 2009, Craig Berntson. All rights reserved
22
Coverage Duplicated code Fitness Refactoring Coding standards Copyright 2007 - 2009, Craig Berntson. All rights reserved
23
Sandcastle Copyright 2007 - 2009, Craig Berntson. All rights reserved
24
CCNet Web Dashboard CCTray Email Text messaging Sound Message Board Ambient Orb Copyright 2007 - 2009, Craig Berntson. All rights reserved
25
Apply XSLT to output Code coverage Duplicated code Refactoring Installshield Call automated QA test tools Copyright 2007 - 2009, Craig Berntson. All rights reserved
26
Continuous Integration – Why and What Source control and build box CruiseControl.Net MSBuild Nunit Additional testing, code metrics, documentation, etc. Feedback Copyright 2007 - 2009, Craig Berntson. All rights reserved
27
Web: www.craigberntson.com Twitter: @craigber Email: craig@craigberntson.com Copyright 2007 - 2009, Craig Berntson. All rights reserved
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.