SlideShare a Scribd company logo
1 of 31
Proprietary Material Provided for Training Purposes Only
© 2012 Excella Consulting, Inc.
Stephen Ritchie
◊ 20+ years of experience in software
development
◊ Focused on Agile since 2007
– Commercial software development
– .NET software engineering & Agile
principles
– Agile coaching & mentoring
◊ Organizer of the DC Alt. NET User
Group
◊ CSM, CSPO, CSD, CSP
◊ Building Quality into the process
– Real time identification of quality issues
• Automation
– Using the right tools and techniques
21st Century Engineering Practices
Benefits*
Assuming 100 defects in
10,000 lines of code
1. Traditional testing finds
a defect in about 10
hours
2. Manual code inspections
find a defect in 1 hour
3. Automated testing finds
a defect every 6 minutes
þ 36% reduction in defect rate
when integration/regression testing at each code check-in
þ 90% reduction in bugs reaching QA
Major municipal gas utility
þ
þ
þ
þ
þ
95% cut in cost of bugs
Large retail web site
90% cut in defect remediation cost
Global supplier of healthcare equipment
Faster time-to-market
More features and higher quality
Agility in the marketplace
Added new functionality 2 weeks before ship
Confidence in the process
“Oozing Confidence”
*Sources:
• Grant, T. (2005). Continuous integration using cruise control. Northern Virginia Java Users Group (Novajug), Reston, Virginia, USA.
• Fredrick, J. (2008). Accelerate software delivery with continuous integration and testing. Japanese Symposium on Software Testing, Tokyo,
Japan.
• Rico, D. F. (2012). The Cost of Quality (CoQ) for Agile vs. Traditional Project Management. Fairfax, VA: Gantthead.Com.
Technology Stacks
◊ .Net
◊ Java
◊ Python
◊ Ruby
◊ JavaScript
◊ Others….
Don’t Do It All At Once
Do This First
1. Version
Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
First Do This
1. Version Control
– What: Repository to persist and track version of code and
artifacts
– Effort: Low
– Sample Tools:
• Traditional – TFS (MS), Subversion
• Distributed Version Control (branching and merging) - Git,
Mercurial
First Do This
2. Build Automation
– What: One click or one command launch of build process
– Effort: Low
– Sample Tools:
• Microsoft – MSBuild, Powershell
• Java/Others – Ant, Gradle, Maven
First Do This
3. Automated Unit Testing
– What: An automated stand alone test that test a single
unit of the code.
– Effort: Medium
– Sample Tools:
• Unit test tools: JUnit (Java), NUnit (MS), MS Test (MS)
• Advanced tools: Moq, Fluent Assertions
First Do This
4. Continuous Integration
– What: Provides frequent verification and notification of
changes to the code and application
– Effort: Medium
– Sample Tools: Jenkins, Hudson, TFS (MS), TeamCity
Continuous Integration
Build #1
compile
unit test
integration test
package
deploy/run
acceptance test
analyze code
Build
Report
Version
Control
change
#1
change
#2
Build
Server
Build #2
compile
unit test
integration test
package
deploy/run
acceptance test
analyze code
Build
ReportEmail
Failed Build
Continuous Integration
◊ CI involves:
– Frequent code check-ins
– Regularly scheduled, automated builds
– Automated tests
– Immediate feedback to developers detailing any build
errors or failed tests
◊ Benefit:
– Developers know immediately upon check-in if their code
works and if any other application features were broken as
a result
CI Effect on Schedule
Code Phase QA Phase Code Phase QA Phase
Code Phase Code Phase
Code + Test Phase Code + Test Phase
Schedule
Release 1 Release 2
Original Plan
Reality
With CI
Benefits of Continuous Integration
◊ Avoids last-minute chaos at release dates
◊ Early warnings of broken code
◊ Early warning of conflicting changes
◊ Immediate testing of all changes
◊ High availability of a "current" build for testing,
demo, or release purposes
Don’t Do It All At Once
Do This First
1. Version Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
Next Do This
5) Static Code Analysis
– What: Checks for coding standards and code quality
– Effort: Low
– Sample Tools: Visual Studio Code Analysis, FindBugs
(Java), PMD, Cobertura, Sonar, CheckStyle
Code Quality
Next Do This
6) Dependency Management
– What: Manages 3rd party components and ensure we have
the latest / correct version these components
– Effort: Low
– Sample Tools: Gradle, NuGet
Don’t Do It All At Once
Do This First
1. Version Control
2. Build
Automation
3. Automated
Unit Testing
4. Continuous
Integration
Next Do This
5. Static Code
Analysis
6. Dependency
Management
Then Do This
7. Automated
Integration
Testing
8. Automated
Acceptance
Testing
9. Deployment
Automation
Then Do This
7. Automated Integration Testing
– What: Testing interaction between multiple components to
ensure our component dependencies don’t break
– Effort: Medium to High
– Sample Tools: DBUnit (Java), NDBUnit (MS)
Then Do This
8. Automated Acceptance Testing
– What: Automated testing to ensure the systems meets
business needs
– Effort: High
– Sample Tools: SpecFlow, Cucumber, FitNess
– For Browser Testing: Selenium, WatiN
Automated Tests
◊ Automated tests involves:
– Unit tests: Testing of smallest possible piece of code that can
operate in isolation
– Integration tests: Testing interaction between multiple
components
– Acceptance tests: Testing complete segments of a system to
ensure it meets the business needs
◊ Benefits
– Enables rapid discovery of root cause
– Reduces defect rate
– Saves time in system test
– Ensures testing starts early in cycle
– Provides for a free regression testing suite
Testing Quadrant
Functional Tests
Acceptance Tests
Unit Tests
Component Tests
System Tests
Showcases
Exploratory Tests
Usability Tests
Performance Tests
Security Tests
TheTeam
TheProduct
Functionality
The Systemfrom Brian Marick
Then Do This
8. Automated Deployment
– What: Push button deployment capabilities
– Effort: High
– Sample Tools: FluentMigrator, Puppet, Octopus
Automated Deployments
Sandbox
Production
Version
Control
CI
Server
DB
Web ServerWeb Server
DB
Test
DB
Web ServerWeb Server
DB
DB
Web Server
Automated Nightly
Deployments
Push Button
Deployments
Managed
Deployments
Benefits of Automated Deployments
◊ Reduces complexity by using standardized script
◊ Reduces risk by re-running same script
◊ Reduces cost by speeding up deployment
◊ Frees up resources to focus on new features
One More Thing - Developers
Developer’s Bill of Rights
1. Every programmer shall have two monitors
2. Every programmer shall have a fast PC
3. Every programmer shall have their choice of mouse
and keyboard
4. Every programmer shall have a comfortable chair
5. Every programmer shall have a fast internet
connection
6. Every programmer shall have {effective} working
conditions
Posted by Jeff Atwood , http://www.codinghorror.com/blog/2006/08/the-
programmers-bill-of-rights.html
Book Resources
Clean Code
Robert C. Martin
ISBN-10 #0132350882
Code Complete
Steve McConnell
ISBN-10 #0735619670
Working Effectively with Legacy
Code
Michael Feathers
ISBN-10 #0131177052
Pro .NET Best Practices
Stephen Ritchie
ISBN #14302402237
Continuous Delivery
Jez Humble
ISBN #0321601912
Growing Object-Oriented
Software, Guided by Tests
Steve Freeman
ISBN #0321503627
Contact Information
Stephen Ritchie
Stephen.Ritchie@excella.com
http://ruthlesslyhelpful.net
http://www.excella.com
Twitter: @RuthlessHelp
Fadi Stephan
fadi.stephan@excella.com
703-840-8665
http://www.excella.com
Twitter: @FadiStephan
Excella Consulting
Experience and Expertise in Agile Solutions
– Coaching
– Training
– Assessments
– Agile Adoption
– Agile Development Teams
– Agile PMO
Training Courses
– Certified ScrumMaster (CSM)
– Certified Scrum Product Owner (CSPO): The Agile Business Analyst
– Advanced Certified Scrum Product Owner (CSPO)
– Certified Scrum Developer (CSD)
– Agile Testing
– Agile Business Intelligence and Data Warehousing
See http://www.excella.com/services/agile-training-services.aspx for more
information
Agile Training
Richard K Cheng
richard.cheng@excella.com
703-967-8620
http://www.excella.com
Twitter: @RichardKCheng

More Related Content

What's hot

Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery PresentationMauricio Ferreyra
 
How do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingHow do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingThoughtworks
 
Whats In Your QA Tool Belt?
Whats In Your QA Tool Belt?Whats In Your QA Tool Belt?
Whats In Your QA Tool Belt?Walter Mamed
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoMaaret Pyhäjärvi
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Leonard Fingerman
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityFabricio Epaminondas
 
The process of performance testing
The process of performance testingThe process of performance testing
The process of performance testingSebastián Lagoueyte
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013David Funaro
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRogue Wave Software
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test FrameworkSmartBear
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegasjaredrrichardson
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009sstolberg
 

What's hot (19)

Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
 
How do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingHow do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated Testing
 
Whats In Your QA Tool Belt?
Whats In Your QA Tool Belt?Whats In Your QA Tool Belt?
Whats In Your QA Tool Belt?
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San Diego
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
Continuous integration practices to improve the software quality
Continuous integration practices to improve the software qualityContinuous integration practices to improve the software quality
Continuous integration practices to improve the software quality
 
The process of performance testing
The process of performance testingThe process of performance testing
The process of performance testing
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Rapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysisRapid software testing and conformance with static code analysis
Rapid software testing and conformance with static code analysis
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009Enabling Agile Testing Through Continuous Integration Agile2009
Enabling Agile Testing Through Continuous Integration Agile2009
 

Viewers also liked

Program for Area Dealer www.yoimginsengcoffee.com
Program for Area Dealer www.yoimginsengcoffee.comProgram for Area Dealer www.yoimginsengcoffee.com
Program for Area Dealer www.yoimginsengcoffee.comITALY COFFEE TEA STORE
 
La Veu d'Alginet juliol 2016
La Veu d'Alginet juliol 2016La Veu d'Alginet juliol 2016
La Veu d'Alginet juliol 2016Sonia Bosch
 
Power print - инстапринтер, повышающий эффективность мероприятий.
Power print - инстапринтер, повышающий эффективность мероприятий.Power print - инстапринтер, повышающий эффективность мероприятий.
Power print - инстапринтер, повышающий эффективность мероприятий.PWRG
 
What are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsWhat are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsRobert Nyman
 
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)+QSocial
 
Contextos afectivos y cognitivos en los procesos de aprendizaje
Contextos afectivos y cognitivos en los procesos de aprendizajeContextos afectivos y cognitivos en los procesos de aprendizaje
Contextos afectivos y cognitivos en los procesos de aprendizajeeducacionsinescuela
 
Huthwaite E ffectiveness
Huthwaite E ffectivenessHuthwaite E ffectiveness
Huthwaite E ffectivenessHuthwaite Inc
 
Profile dtag & company
Profile   dtag & companyProfile   dtag & company
Profile dtag & companyaboutsandeep
 
Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party
 Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party
Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro partyBrussels, Belgium
 
Semiconductores
SemiconductoresSemiconductores
SemiconductoresElio Elch
 
Smetan Engineering Company Presentation English
Smetan Engineering Company Presentation EnglishSmetan Engineering Company Presentation English
Smetan Engineering Company Presentation EnglishHSmetan
 
Programa de Navidad 2013 del Área de Cultura de Málaga
Programa de Navidad 2013 del Área de Cultura de Málaga Programa de Navidad 2013 del Área de Cultura de Málaga
Programa de Navidad 2013 del Área de Cultura de Málaga Ayuntamiento de Málaga
 

Viewers also liked (20)

Agenda, Roundtable on Independence of Supreme Audit Institutions, 8 September...
Agenda, Roundtable on Independence of Supreme Audit Institutions, 8 September...Agenda, Roundtable on Independence of Supreme Audit Institutions, 8 September...
Agenda, Roundtable on Independence of Supreme Audit Institutions, 8 September...
 
Program for Area Dealer www.yoimginsengcoffee.com
Program for Area Dealer www.yoimginsengcoffee.comProgram for Area Dealer www.yoimginsengcoffee.com
Program for Area Dealer www.yoimginsengcoffee.com
 
Laboratorio experimental
Laboratorio experimentalLaboratorio experimental
Laboratorio experimental
 
Esp
EspEsp
Esp
 
La Veu d'Alginet juliol 2016
La Veu d'Alginet juliol 2016La Veu d'Alginet juliol 2016
La Veu d'Alginet juliol 2016
 
Power print - инстапринтер, повышающий эффективность мероприятий.
Power print - инстапринтер, повышающий эффективность мероприятий.Power print - инстапринтер, повышающий эффективность мероприятий.
Power print - инстапринтер, повышающий эффективность мероприятий.
 
What are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet VästeråsWhat are you going to do with your life? Geek Meet Västerås
What are you going to do with your life? Geek Meet Västerås
 
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)
Comercio electrónico: Los 7 puntos esenciales de tu tienda online (Parte 2/2)
 
Contextos afectivos y cognitivos en los procesos de aprendizaje
Contextos afectivos y cognitivos en los procesos de aprendizajeContextos afectivos y cognitivos en los procesos de aprendizaje
Contextos afectivos y cognitivos en los procesos de aprendizaje
 
C magazine-27
C magazine-27C magazine-27
C magazine-27
 
Huthwaite E ffectiveness
Huthwaite E ffectivenessHuthwaite E ffectiveness
Huthwaite E ffectiveness
 
Profile dtag & company
Profile   dtag & companyProfile   dtag & company
Profile dtag & company
 
Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party
 Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party
Scientix 9th SPWatFCL Brussels 6-8 November 2015: Astro party
 
Semiconductores
SemiconductoresSemiconductores
Semiconductores
 
Hoja de vida
Hoja de vidaHoja de vida
Hoja de vida
 
Smetan Engineering Company Presentation English
Smetan Engineering Company Presentation EnglishSmetan Engineering Company Presentation English
Smetan Engineering Company Presentation English
 
Presentacion Cafu 24 El Correo Electronico
Presentacion Cafu 24 El Correo ElectronicoPresentacion Cafu 24 El Correo Electronico
Presentacion Cafu 24 El Correo Electronico
 
Programa de Navidad 2013 del Área de Cultura de Málaga
Programa de Navidad 2013 del Área de Cultura de Málaga Programa de Navidad 2013 del Área de Cultura de Málaga
Programa de Navidad 2013 del Área de Cultura de Málaga
 
Po ny malta
Po ny maltaPo ny malta
Po ny malta
 
Rvm n-069-2015-minedu
Rvm n-069-2015-mineduRvm n-069-2015-minedu
Rvm n-069-2015-minedu
 

Similar to Implement Continuous Integration and Automated Testing

(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices Marcelo Freire
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & DeploymentsShinu Suresh
 
Neev Independent Testing Services
Neev Independent Testing ServicesNeev Independent Testing Services
Neev Independent Testing ServicesNeev Technologies
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overviewAlex Pop
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsQuontra Solutions
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build AutomationHeiswayi Nrird
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitisSteve Povilaitis
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQMIBM Rational
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio worldCodecamp Romania
 

Similar to Implement Continuous Integration and Automated Testing (20)

(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & Deployments
 
Testing concepts
Testing conceptsTesting concepts
Testing concepts
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Neev Independent Testing Services
Neev Independent Testing ServicesNeev Independent Testing Services
Neev Independent Testing Services
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Upstream testing.
Upstream testing.Upstream testing.
Upstream testing.
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
Continuous deployment steve povilaitis
Continuous deployment   steve povilaitisContinuous deployment   steve povilaitis
Continuous deployment steve povilaitis
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 

More from Stephen Ritchie

Overview of .NET Best Practices
Overview of .NET Best PracticesOverview of .NET Best Practices
Overview of .NET Best PracticesStephen Ritchie
 
Lightweight Documentation
Lightweight DocumentationLightweight Documentation
Lightweight DocumentationStephen Ritchie
 
Continuous Integration - NoVA CodeCamp 2014-10-11
Continuous Integration - NoVA CodeCamp 2014-10-11Continuous Integration - NoVA CodeCamp 2014-10-11
Continuous Integration - NoVA CodeCamp 2014-10-11Stephen Ritchie
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachStephen Ritchie
 
Continuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftContinuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftStephen Ritchie
 
Dc scrum agile_eng_20130923
Dc scrum agile_eng_20130923Dc scrum agile_eng_20130923
Dc scrum agile_eng_20130923Stephen Ritchie
 
Test Driven Development: Blueprint, Toolbox, and Master Craft
Test Driven Development: Blueprint, Toolbox, and Master CraftTest Driven Development: Blueprint, Toolbox, and Master Craft
Test Driven Development: Blueprint, Toolbox, and Master CraftStephen Ritchie
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best PracticesStephen Ritchie
 
Continuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftContinuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftStephen Ritchie
 
Continuous Integration DCAEC12
Continuous Integration DCAEC12Continuous Integration DCAEC12
Continuous Integration DCAEC12Stephen Ritchie
 
An Overview of .NET Best Practices
An Overview of .NET Best PracticesAn Overview of .NET Best Practices
An Overview of .NET Best PracticesStephen Ritchie
 
Advanced Code Analysis with .NET
Advanced Code Analysis with .NETAdvanced Code Analysis with .NET
Advanced Code Analysis with .NETStephen Ritchie
 
Overcoming the Obstacles, Pitfalls, and Dangers of Unit Testing
Overcoming the Obstacles, Pitfalls, and Dangers of Unit TestingOvercoming the Obstacles, Pitfalls, and Dangers of Unit Testing
Overcoming the Obstacles, Pitfalls, and Dangers of Unit TestingStephen Ritchie
 
An Overview of .NET Best Practices
An Overview of .NET Best PracticesAn Overview of .NET Best Practices
An Overview of .NET Best PracticesStephen Ritchie
 
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangers
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangersDCDNUG 10/16/2012 Automated testing obstacles pitfalls dangers
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangersStephen Ritchie
 
Automated Testing: Obstacles, Pitfalls, and Dangers
Automated Testing: Obstacles, Pitfalls, and DangersAutomated Testing: Obstacles, Pitfalls, and Dangers
Automated Testing: Obstacles, Pitfalls, and DangersStephen Ritchie
 
Advanced Code Analysis In .NET
Advanced Code Analysis In .NETAdvanced Code Analysis In .NET
Advanced Code Analysis In .NETStephen Ritchie
 
Automated Testing with Databases
Automated Testing with DatabasesAutomated Testing with Databases
Automated Testing with DatabasesStephen Ritchie
 

More from Stephen Ritchie (19)

Overview of .NET Best Practices
Overview of .NET Best PracticesOverview of .NET Best Practices
Overview of .NET Best Practices
 
Lightweight Documentation
Lightweight DocumentationLightweight Documentation
Lightweight Documentation
 
DevOps Requires Agility
DevOps Requires AgilityDevOps Requires Agility
DevOps Requires Agility
 
Continuous Integration - NoVA CodeCamp 2014-10-11
Continuous Integration - NoVA CodeCamp 2014-10-11Continuous Integration - NoVA CodeCamp 2014-10-11
Continuous Integration - NoVA CodeCamp 2014-10-11
 
Lightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile ApproachLightweight Documentation: An Agile Approach
Lightweight Documentation: An Agile Approach
 
Continuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftContinuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master Craft
 
Dc scrum agile_eng_20130923
Dc scrum agile_eng_20130923Dc scrum agile_eng_20130923
Dc scrum agile_eng_20130923
 
Test Driven Development: Blueprint, Toolbox, and Master Craft
Test Driven Development: Blueprint, Toolbox, and Master CraftTest Driven Development: Blueprint, Toolbox, and Master Craft
Test Driven Development: Blueprint, Toolbox, and Master Craft
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best Practices
 
Continuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master CraftContinuous Integration: Blueprint, Toolbox, Master Craft
Continuous Integration: Blueprint, Toolbox, Master Craft
 
Continuous Integration DCAEC12
Continuous Integration DCAEC12Continuous Integration DCAEC12
Continuous Integration DCAEC12
 
An Overview of .NET Best Practices
An Overview of .NET Best PracticesAn Overview of .NET Best Practices
An Overview of .NET Best Practices
 
Advanced Code Analysis with .NET
Advanced Code Analysis with .NETAdvanced Code Analysis with .NET
Advanced Code Analysis with .NET
 
Overcoming the Obstacles, Pitfalls, and Dangers of Unit Testing
Overcoming the Obstacles, Pitfalls, and Dangers of Unit TestingOvercoming the Obstacles, Pitfalls, and Dangers of Unit Testing
Overcoming the Obstacles, Pitfalls, and Dangers of Unit Testing
 
An Overview of .NET Best Practices
An Overview of .NET Best PracticesAn Overview of .NET Best Practices
An Overview of .NET Best Practices
 
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangers
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangersDCDNUG 10/16/2012 Automated testing obstacles pitfalls dangers
DCDNUG 10/16/2012 Automated testing obstacles pitfalls dangers
 
Automated Testing: Obstacles, Pitfalls, and Dangers
Automated Testing: Obstacles, Pitfalls, and DangersAutomated Testing: Obstacles, Pitfalls, and Dangers
Automated Testing: Obstacles, Pitfalls, and Dangers
 
Advanced Code Analysis In .NET
Advanced Code Analysis In .NETAdvanced Code Analysis In .NET
Advanced Code Analysis In .NET
 
Automated Testing with Databases
Automated Testing with DatabasesAutomated Testing with Databases
Automated Testing with Databases
 

Recently uploaded

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 

Implement Continuous Integration and Automated Testing

  • 1. Proprietary Material Provided for Training Purposes Only © 2012 Excella Consulting, Inc.
  • 2. Stephen Ritchie ◊ 20+ years of experience in software development ◊ Focused on Agile since 2007 – Commercial software development – .NET software engineering & Agile principles – Agile coaching & mentoring ◊ Organizer of the DC Alt. NET User Group ◊ CSM, CSPO, CSD, CSP
  • 3. ◊ Building Quality into the process – Real time identification of quality issues • Automation – Using the right tools and techniques 21st Century Engineering Practices
  • 4. Benefits* Assuming 100 defects in 10,000 lines of code 1. Traditional testing finds a defect in about 10 hours 2. Manual code inspections find a defect in 1 hour 3. Automated testing finds a defect every 6 minutes þ 36% reduction in defect rate when integration/regression testing at each code check-in þ 90% reduction in bugs reaching QA Major municipal gas utility þ þ þ þ þ 95% cut in cost of bugs Large retail web site 90% cut in defect remediation cost Global supplier of healthcare equipment Faster time-to-market More features and higher quality Agility in the marketplace Added new functionality 2 weeks before ship Confidence in the process “Oozing Confidence” *Sources: • Grant, T. (2005). Continuous integration using cruise control. Northern Virginia Java Users Group (Novajug), Reston, Virginia, USA. • Fredrick, J. (2008). Accelerate software delivery with continuous integration and testing. Japanese Symposium on Software Testing, Tokyo, Japan. • Rico, D. F. (2012). The Cost of Quality (CoQ) for Agile vs. Traditional Project Management. Fairfax, VA: Gantthead.Com.
  • 5. Technology Stacks ◊ .Net ◊ Java ◊ Python ◊ Ruby ◊ JavaScript ◊ Others….
  • 6. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 7. First Do This 1. Version Control – What: Repository to persist and track version of code and artifacts – Effort: Low – Sample Tools: • Traditional – TFS (MS), Subversion • Distributed Version Control (branching and merging) - Git, Mercurial
  • 8. First Do This 2. Build Automation – What: One click or one command launch of build process – Effort: Low – Sample Tools: • Microsoft – MSBuild, Powershell • Java/Others – Ant, Gradle, Maven
  • 9. First Do This 3. Automated Unit Testing – What: An automated stand alone test that test a single unit of the code. – Effort: Medium – Sample Tools: • Unit test tools: JUnit (Java), NUnit (MS), MS Test (MS) • Advanced tools: Moq, Fluent Assertions
  • 10. First Do This 4. Continuous Integration – What: Provides frequent verification and notification of changes to the code and application – Effort: Medium – Sample Tools: Jenkins, Hudson, TFS (MS), TeamCity
  • 11. Continuous Integration Build #1 compile unit test integration test package deploy/run acceptance test analyze code Build Report Version Control change #1 change #2 Build Server Build #2 compile unit test integration test package deploy/run acceptance test analyze code Build ReportEmail Failed Build
  • 12. Continuous Integration ◊ CI involves: – Frequent code check-ins – Regularly scheduled, automated builds – Automated tests – Immediate feedback to developers detailing any build errors or failed tests ◊ Benefit: – Developers know immediately upon check-in if their code works and if any other application features were broken as a result
  • 13. CI Effect on Schedule Code Phase QA Phase Code Phase QA Phase Code Phase Code Phase Code + Test Phase Code + Test Phase Schedule Release 1 Release 2 Original Plan Reality With CI
  • 14. Benefits of Continuous Integration ◊ Avoids last-minute chaos at release dates ◊ Early warnings of broken code ◊ Early warning of conflicting changes ◊ Immediate testing of all changes ◊ High availability of a "current" build for testing, demo, or release purposes
  • 15. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 16. Next Do This 5) Static Code Analysis – What: Checks for coding standards and code quality – Effort: Low – Sample Tools: Visual Studio Code Analysis, FindBugs (Java), PMD, Cobertura, Sonar, CheckStyle
  • 18. Next Do This 6) Dependency Management – What: Manages 3rd party components and ensure we have the latest / correct version these components – Effort: Low – Sample Tools: Gradle, NuGet
  • 19. Don’t Do It All At Once Do This First 1. Version Control 2. Build Automation 3. Automated Unit Testing 4. Continuous Integration Next Do This 5. Static Code Analysis 6. Dependency Management Then Do This 7. Automated Integration Testing 8. Automated Acceptance Testing 9. Deployment Automation
  • 20. Then Do This 7. Automated Integration Testing – What: Testing interaction between multiple components to ensure our component dependencies don’t break – Effort: Medium to High – Sample Tools: DBUnit (Java), NDBUnit (MS)
  • 21. Then Do This 8. Automated Acceptance Testing – What: Automated testing to ensure the systems meets business needs – Effort: High – Sample Tools: SpecFlow, Cucumber, FitNess – For Browser Testing: Selenium, WatiN
  • 22. Automated Tests ◊ Automated tests involves: – Unit tests: Testing of smallest possible piece of code that can operate in isolation – Integration tests: Testing interaction between multiple components – Acceptance tests: Testing complete segments of a system to ensure it meets the business needs ◊ Benefits – Enables rapid discovery of root cause – Reduces defect rate – Saves time in system test – Ensures testing starts early in cycle – Provides for a free regression testing suite
  • 23. Testing Quadrant Functional Tests Acceptance Tests Unit Tests Component Tests System Tests Showcases Exploratory Tests Usability Tests Performance Tests Security Tests TheTeam TheProduct Functionality The Systemfrom Brian Marick
  • 24. Then Do This 8. Automated Deployment – What: Push button deployment capabilities – Effort: High – Sample Tools: FluentMigrator, Puppet, Octopus
  • 25. Automated Deployments Sandbox Production Version Control CI Server DB Web ServerWeb Server DB Test DB Web ServerWeb Server DB DB Web Server Automated Nightly Deployments Push Button Deployments Managed Deployments
  • 26. Benefits of Automated Deployments ◊ Reduces complexity by using standardized script ◊ Reduces risk by re-running same script ◊ Reduces cost by speeding up deployment ◊ Frees up resources to focus on new features
  • 27. One More Thing - Developers Developer’s Bill of Rights 1. Every programmer shall have two monitors 2. Every programmer shall have a fast PC 3. Every programmer shall have their choice of mouse and keyboard 4. Every programmer shall have a comfortable chair 5. Every programmer shall have a fast internet connection 6. Every programmer shall have {effective} working conditions Posted by Jeff Atwood , http://www.codinghorror.com/blog/2006/08/the- programmers-bill-of-rights.html
  • 28. Book Resources Clean Code Robert C. Martin ISBN-10 #0132350882 Code Complete Steve McConnell ISBN-10 #0735619670 Working Effectively with Legacy Code Michael Feathers ISBN-10 #0131177052 Pro .NET Best Practices Stephen Ritchie ISBN #14302402237 Continuous Delivery Jez Humble ISBN #0321601912 Growing Object-Oriented Software, Guided by Tests Steve Freeman ISBN #0321503627
  • 29. Contact Information Stephen Ritchie Stephen.Ritchie@excella.com http://ruthlesslyhelpful.net http://www.excella.com Twitter: @RuthlessHelp Fadi Stephan fadi.stephan@excella.com 703-840-8665 http://www.excella.com Twitter: @FadiStephan
  • 30. Excella Consulting Experience and Expertise in Agile Solutions – Coaching – Training – Assessments – Agile Adoption – Agile Development Teams – Agile PMO Training Courses – Certified ScrumMaster (CSM) – Certified Scrum Product Owner (CSPO): The Agile Business Analyst – Advanced Certified Scrum Product Owner (CSPO) – Certified Scrum Developer (CSD) – Agile Testing – Agile Business Intelligence and Data Warehousing See http://www.excella.com/services/agile-training-services.aspx for more information
  • 31. Agile Training Richard K Cheng richard.cheng@excella.com 703-967-8620 http://www.excella.com Twitter: @RichardKCheng

Editor's Notes

  1. Best teams and best products where everyone is responsible for process Quality is not just a phase Its more then just building quality into the process It’s a shared responsibility for everyone
  2. Whatever technology stack you use, this works in Areas outside Sharepoint, ETL/BI, BizTalk
  3. thousands of committers around the world, spoke and hub models will not work Traditional is more command and control, distributed more peer to peer (collaborative) and spreads the load of administration
  4. First list are test runners, they run tests Second list, isolation facilities, for test isolation – create test Fluent makes tests more readable Requires less coaching and more workshopping Someone to help coach you through the initial sets, the CSD is helpful for this
  5. Maintence is light standing it up is easy if you have done it, tougher if you have not
  6. FindBugs – potentially buggy code CheckStyle – potential out of coding standards PMD – shows a little bit of both
  7. FindBugs – potentially buggy code CheckStyle – potential out of coding standards PMD – shows a little bit of both Coverage report, shows how much of this code is being tested Shows how much code is being covered
  8. ORM against DB as the example Biggest challenge revolves around the data and database High if integrating the components can be expensive OPM – background investigation is expensive because of massive infrastructure
  9. Make the problem statement first prolonged sprints or need for more testers velocity is limited by number of testers