Presentation is loading. Please wait.

Presentation is loading. Please wait.

Craig Berntson

Similar presentations


Presentation on theme: "Craig Berntson"— Presentation transcript:

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

9

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


Download ppt "Craig Berntson"

Similar presentations


Ads by Google