By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.

Slides:



Advertisements
Similar presentations
A Brief Introduction to Test- Driven Development Shawn M. Jones.
Advertisements

Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Local Touch – Global Reach The New Tester Matthew Eakin, Manager Managed Testing Practice Sogeti, USA.
Tools for Agile Development: A Developer’s Perspective Mike Linnen Blog:
CONTINUOUS INTEGRATION AND TEST Stephen Oglesby - CSCI577b – April 2011.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Continuous Integration for OpenEdge Applications NameDivyaTheja Pachipula TitleSenior Engineer Date8 th June, 2015.
Improving Software Quality with Continuous Integration
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
Automated Builds and Testing Wm. Barrett Simms FrontRunnerMD Twitter
Introduction to Continuous Integration Mike Roberts.
Continuous Integration after Hudson, CruiseControl, and Home Built Mile High Agile 2011 – Mark Waite.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx.
Test-Driven Development With Visual Studio 2005 Erno de Weerd Info Support.
Continuous Delivery Ajey Gore Head of Technology ThoughtWorks India.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Visual Studio 2012 or 2013 VisualStudio.com (or) Github (or) Bitbucket (or more) Azure Cross-Platform Command Tools Setup if you want to play too.
All Builds Are Good With Continuous Integration Presented by: Scott Bateman Houston TechFest – August 25 th, 2007.
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Craig Berntson
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
Modern app development Continuous value delivery and rapid response to change.
& Dev Ops. Sherwin-Williams & DevOps Introduction to Sherwin-Williams.
© ALEXANDRE CUVA  VERSION 2.00 Test Driven Design.
Upload your final deck on the speaker portal on or before June 20, 2013 at 5:00 pm PT. PowerPoint presentations undergo a brief scrub process and are.
Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Build Processes and Continuous Integration Automating Build Processes Software University Technical Trainers SoftUni Team.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Coding.
A Practical Guide To Unit Testing John E. Boal TestDrivenDeveloper.com.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
1 Legacy Code From Feathers, Ch 2 Steve Chenoweth, RHIT Right – Your basic Legacy, from Subaru, starting at $ 20,295, 24 city, 32 highway.
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC
Sofia Event Center May 2014 Branimir Giurov C# MVP Solution Architect BulPros Consulting Continuous Integration of Sharepoint 2013 Solutions with.
Isolated Database Environments Kevin Howell February 2014.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Sean Chambers.  Senior Developer at Flagler County Schools for 5 years  Owner Hybrid Software, Educational Software  Contributor to various open source.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
Get the New Agile Attitude: Quality First! Object Mentor, Inc. Copyright  by Object Mentor, Inc All Rights Reserved
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
Automated tests CustomWare.Net. Goals Quality Finding problems before delivering Stability Upgrade projects Downgrade Refactoring Deacreasing of manual.
Real World SQL Server Data Tools Benjamin
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Cruise Training Introduction of Continuous Integration.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Connect with life Tejasvi Kumar Developer Technology Specialist | Microsoft India
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Continuous Deployments using SSDT
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Beginning Software Craftsmanship Brendan Enrick Steve Smith
Unit testing with NUnit Anne Lam & Chris James CMPS 4113 – Software Engineering April 15, 2015.
Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc.
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Automated Build and Test
Unit Testing.
A Case Study: Automated Continuous Software Engineering Cycle (ACSEC)
Continuous Integration (CI)
Владимир Гусаров Директор R&D, Dell Visual Studio ALM MVP ALM Ranger
Continuous Integration For Databases
X in [Integration, Delivery, Deployment]
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Bringing more value out of automation testing
CS 240 – Advanced Programming Concepts
HCL’s Viewpoint – DevOps on MS Cloud
Jamie Cool Program Manager Microsoft
Presentation transcript:

By John Boal

 Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new code is checked in ◦ Run all the automated tests for each build  What’s “continuous?” ◦ Ideally – build it after EVERY check-in ◦ Practically – for larger systems, every 1-2 hours ◦ Or at least a couple of times a day

 Rapid Feedback – we know very soon once we have made a mistake  We can fix problems right away  This practice helps keep the software working all of the time, even while work is being done  Problems tend to be smaller  Fewer bugs, faster bug repair

 Automation is the best way we can be successful at agile software development  First - we need some tools to help us ◦ Code Version Control System  Subversion, Team Foundation Server [TFS] and others ◦ Automated Build System  Cruise Control, TFS, and others ◦ Status indicators / Notifications to make problems visible right away   Information radiators (public build status monitors)

 Keep the software working at all times. ◦ It’s “working” when all automated tests pass.  Whole Team owns the code – no “mine/yours”  Build it as often as possible.  All code has automated tests. ◦ This includes unit and acceptance tests at minimum ◦ Other kinds of tests can be run if feasible  Keep check-ins very small and frequent ◦ Change only a few files, every hour, 4 hours MAX  Sync with source repository often – 4-8x per day, and (MUST!) before every check-in

 All checked-in code must have tests.  YES that means UI code too. ◦ There are techniques available to test UI in almost all cases – MVC, Selenium, UIA in.NET and others  This means bug fixes also… ◦ Find a bug, write a test … Eliminate regressions! ◦ Even for simple bugs – don’t just fix it, test it!  Tests must run fast – we’re waiting for results  Split out “slow” tests, refactor test code too  Fast feedback is the goal

 Web site, web services and a back-end SQL database  ASP.NET UI and web services, written in C#  MS SQL Database with tables, views, SP’s etc  Development Environment: Visual Studio  Test framework: NUnit for all unit tests  Acceptance Tests: ◦ FitNesse and NUnit/Selenium RC  Source Control: Subversion Server  Build system: Cruise Control.NET and nAnt

 Cruise Control.NET uses the Subversion repository to sync the source code  Each step is a separate CC.NET “project”  CC.NET builds the projects using NAnt scripts  CC.NET runs NUnit console app to drive all the unit (and other type) tests written with NUnit  CC.NET deploys binaries to local DB and web servers and test fixtures to FitNesse bin folders  CC.NET launches FitNesse server, then executes NUnit with Selenium RC to drive UI acceptance tests and automated FitNesse tests  A build failure or failing test fails the entire build

 Use a single source repository for everything  Automate the build and the deployment  Test everything – automatically  Check in changes frequently  Each check-in should kick off a new build  Build and test as fast as possible ◦ build and test in parallel if possible  Maximize visibility for current build status ◦ be as noisy as possible for broken builds…  Collective Code Ownership ◦ We all own a build break… fix a broken build ASAP, no matter how it happened. A broken build is Priority 1

 For more information on CI see the following:  Martin Fowler on CI   Ward Cunningham on CI  on  Wikipedia 