SlideShare a Scribd company logo
Proprietary Material Provided for Training Purposes Only 
© 2012 Excella Consulting, Inc.
Richard Cheng - @RichardKCheng 
◊ Agile trainer & coach 
◊ Member of PMI, Scrum Alliance, Agile 
Alliance, Agile Leadership Network 
◊ CST, PMP, CSM, CSPO, CSP, PMI-ACP 
◊ Founder & executive committee 
member of Agile Defense Adoption 
Proponents Team (ADAPT), the Agile 
DoD Task Force 
◊ Deep expertise in Federal and 
commercial Agile transformations 
◊ Richard.Cheng@Excella.com
Quality and the Business Analyst 
Validates work Validates correctness Validates usability
21st Century Quality Practices 
◊ Building Quality into the process 
– Real time identification of quality issues 
• Automation 
– Using the right tools and techniques
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 
integra0on 
test 
package 
deploy/run 
acceptance 
test 
analyze 
code 
Build 
Report 
Version 
Control 
change 
#1 
change 
#2 
Build 
Server 
Build 
#2 
compile 
unit 
test 
integra0on 
test 
package 
deploy/run 
acceptance 
test 
analyze 
code 
Build 
Email 
Report 
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 
Release 
1 
Schedule 
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 
The Team 
The Product 
Functionality 
from Brian Marick The System
Then Do This 
8. Automated Deployment 
– What: Push button deployment capabilities 
– Effort: High 
– Sample Tools: FluentMigrator, Puppet, Octopus
Automated Deployments 
Web Server Web Server 
Managed 
Deployments 
Production Version 
Control 
Web Server Web Server 
Web Server 
Sandbox 
CI 
Server 
DB 
DB 
Test 
DB 
DB 
DB 
Push 
Bu6on 
Deployments 
Automated 
Nightly 
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
Team Member’s Bill of Rights 
1. Every {team member} shall have two monitors 
2. Every {team member} shall have a fast PC 
3. Every {team member} shall have their choice of 
mouse and keyboard 
4. Every {team member} shall have a comfortable chair 
5. Every {team member} shall have a fast internet 
connection 
6. Every {team member} shall have {effective} working 
conditions 
Modified from Jeff Atwood’s http://www.codinghorror.com/blog/2006/08/the-programmers- 
bill-of-rights.html
Useful References 
◊ Stephen Ritchie, Pro .NET Best Practices, Apress, 
2011. 
◊ Paul Duvall, Steve Matyas, and Andrew Glover, 
Continuous Integration: Improving Software Quality 
and Reducing Risk, Addison-Wesley, 2007. 
◊ Jez Humble, Continuous Delivery: Reliable Software 
Releases through Build, Test, and Deployment 
Automation, Addison-Wesley, 2010
Excella 
Consul<ng 
Experience 
and 
Exper<se 
in 
Agile 
Solu<ons 
– Coaching 
– Training 
– Assessments 
– Agile 
Adop0on 
– Agile 
Development 
Teams 
– Agile 
PMO 
Training 
Courses 
– Cer0fied 
ScrumMaster 
(CSM) 
– Cer0fied 
Scrum 
Product 
Owner 
(CSPO): 
The 
Agile 
Business 
Analyst 
– Advanced 
Cer0fied 
Scrum 
Product 
Owner 
(CSPO) 
– Cer0fied 
Scrum 
Developer 
(CSD) 
– Agile 
Tes0ng 
– Agile 
Business 
Intelligence 
and 
Data 
Warehousing 
See 
h3p://www.excella.com/services/agile-­‐training-­‐services.aspx 
for 
more 
informa@on
Contact Information 
Richard K Cheng 
richard.cheng@excella.com 
703-967-8620 
http://www.excella.com 
Twitter: @RichardKCheng
Ad

More Related Content

What's hot (20)

Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
Prabhu Ramasamy
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
DevOps.com
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
Dr. Alexander Schwartz
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
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
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentals
Cygnet Infotech
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
SmartBear
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Ubiquitous Testing
Ubiquitous TestingUbiquitous Testing
Ubiquitous Testing
Alistair McKinnell
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
Mauricio Ferreyra
 
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
Fabricio Epaminondas
 
Why source control your Oracle Database?
Why source control your Oracle Database?Why source control your Oracle Database?
Why source control your Oracle Database?
Red Gate Software
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
Mairbek Khadikov
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
Kurt Bliefernich
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
Bhavin Javia
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
Prabhu Ramasamy
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 
Security Implications for a DevOps Transformation
Security Implications for a DevOps TransformationSecurity Implications for a DevOps Transformation
Security Implications for a DevOps Transformation
DevOps.com
 
Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?Devops, Secops, Opsec, DevSec *ops *.* ?
Devops, Secops, Opsec, DevSec *ops *.* ?
Kris Buytaert
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
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
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentals
Cygnet Infotech
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
SmartBear
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
Mauricio Ferreyra
 
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
Fabricio Epaminondas
 
Why source control your Oracle Database?
Why source control your Oracle Database?Why source control your Oracle Database?
Why source control your Oracle Database?
Red Gate Software
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
Mairbek Khadikov
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
Kurt Bliefernich
 

Viewers also liked (6)

High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
Lars Thorup
 
Getting started right
Getting started rightGetting started right
Getting started right
Richard Cheng
 
The DNA of an Innovative Product Owner by Anu Smalley
The DNA of an Innovative Product Owner by Anu SmalleyThe DNA of an Innovative Product Owner by Anu Smalley
The DNA of an Innovative Product Owner by Anu Smalley
Accenture | SolutionsIQ
 
Building Great Software Engineering Teams
Building Great Software Engineering TeamsBuilding Great Software Engineering Teams
Building Great Software Engineering Teams
Brian Link
 
Why Design Matters - P&G Keynote
Why Design Matters - P&G KeynoteWhy Design Matters - P&G Keynote
Why Design Matters - P&G Keynote
Preston Smalley
 
Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software Development
Dev9Com
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
Lars Thorup
 
Getting started right
Getting started rightGetting started right
Getting started right
Richard Cheng
 
The DNA of an Innovative Product Owner by Anu Smalley
The DNA of an Innovative Product Owner by Anu SmalleyThe DNA of an Innovative Product Owner by Anu Smalley
The DNA of an Innovative Product Owner by Anu Smalley
Accenture | SolutionsIQ
 
Building Great Software Engineering Teams
Building Great Software Engineering TeamsBuilding Great Software Engineering Teams
Building Great Software Engineering Teams
Brian Link
 
Why Design Matters - P&G Keynote
Why Design Matters - P&G KeynoteWhy Design Matters - P&G Keynote
Why Design Matters - P&G Keynote
Preston Smalley
 
Organizational Design for Effective Software Development
Organizational Design for Effective Software DevelopmentOrganizational Design for Effective Software Development
Organizational Design for Effective Software Development
Dev9Com
 
Ad

Similar to Agile Engineering Best Practices by Richard Cheng (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
Richard Cheng
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
Marcelo Freire
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
Abhijeet Vaikar
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
Soumyak Bhattacharyya
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Joseph Wang
 
Automating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdfAutomating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdf
flufftailshop
 
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdfTop Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Jace Reed
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
Alex Pop
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
Heiswayi Nrird
 
Automating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdfAutomating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdf
kalichargn70th171
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & Deployments
Shinu Suresh
 
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
Sunil Dalal
 
CI/CD Test Automation: Key Strategies, Tools, and Challenges
CI/CD Test Automation: Key Strategies, Tools, and ChallengesCI/CD Test Automation: Key Strategies, Tools, and Challenges
CI/CD Test Automation: Key Strategies, Tools, and Challenges
Asher Hartwell
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
Ken McCorkell
 
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
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 
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
Quontra Solutions
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
Continuous Everything v2.0
Continuous Everything v2.0Continuous Everything v2.0
Continuous Everything v2.0
Soumyak Bhattacharyya
 
Neev QA Offering
Neev QA OfferingNeev QA Offering
Neev QA Offering
Neev Technologies
 
(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
Richard Cheng
 
Continuous Integration Practices
Continuous Integration Practices Continuous Integration Practices
Continuous Integration Practices
Marcelo Freire
 
End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020End-end tests as first class citizens - SeleniumConf 2020
End-end tests as first class citizens - SeleniumConf 2020
Abhijeet Vaikar
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Joseph Wang
 
Automating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdfAutomating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdf
flufftailshop
 
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdfTop Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Top Automation Testing Tools of 2025_ What’s New and What’s Next.pdf
Jace Reed
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
Alex Pop
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
Heiswayi Nrird
 
Automating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdfAutomating Regression Testing in CI_CD.pdf
Automating Regression Testing in CI_CD.pdf
kalichargn70th171
 
Continuous Integrations & Deployments
Continuous Integrations & DeploymentsContinuous Integrations & Deployments
Continuous Integrations & Deployments
Shinu Suresh
 
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
Sunil Dalal
 
CI/CD Test Automation: Key Strategies, Tools, and Challenges
CI/CD Test Automation: Key Strategies, Tools, and ChallengesCI/CD Test Automation: Key Strategies, Tools, and Challenges
CI/CD Test Automation: Key Strategies, Tools, and Challenges
Asher Hartwell
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
Ken McCorkell
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 
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
Quontra Solutions
 
Ad

More from Excella (20)

DCSUG - What's Really Going On? Observer Worksheet
DCSUG - What's Really Going On? Observer WorksheetDCSUG - What's Really Going On? Observer Worksheet
DCSUG - What's Really Going On? Observer Worksheet
Excella
 
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa AdkinsDCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
Excella
 
DCSUG - Servant Leadership Handout
DCSUG - Servant Leadership HandoutDCSUG - Servant Leadership Handout
DCSUG - Servant Leadership Handout
Excella
 
DCSUG - Servant Leadership
DCSUG - Servant LeadershipDCSUG - Servant Leadership
DCSUG - Servant Leadership
Excella
 
DCSUG - Applying Analysis in an Agile World
DCSUG - Applying Analysis in an Agile WorldDCSUG - Applying Analysis in an Agile World
DCSUG - Applying Analysis in an Agile World
Excella
 
DCSUG - The Art and Practice of the Agile Leader
DCSUG - The Art and Practice of the Agile LeaderDCSUG - The Art and Practice of the Agile Leader
DCSUG - The Art and Practice of the Agile Leader
Excella
 
DCSUG - Finding Lean in Agile
DCSUG - Finding Lean in AgileDCSUG - Finding Lean in Agile
DCSUG - Finding Lean in Agile
Excella
 
DCSUG - Impact Mapping
DCSUG - Impact MappingDCSUG - Impact Mapping
DCSUG - Impact Mapping
Excella
 
DCSUG - Happiness: A Key Component of Agile
DCSUG - Happiness: A Key Component of AgileDCSUG - Happiness: A Key Component of Agile
DCSUG - Happiness: A Key Component of Agile
Excella
 
The Awkward Teenager of Testing
The Awkward Teenager of TestingThe Awkward Teenager of Testing
The Awkward Teenager of Testing
Excella
 
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting TimeLet's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Excella
 
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Excella
 
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
Excella
 
Get Your Productivity Game On!!
Get Your Productivity Game On!!Get Your Productivity Game On!!
Get Your Productivity Game On!!
Excella
 
How to Structure Multi Team Organizations
How to Structure Multi Team OrganizationsHow to Structure Multi Team Organizations
How to Structure Multi Team Organizations
Excella
 
Tactics to Kickstart Your Journey Toward DevOps
Tactics to Kickstart Your Journey Toward DevOpsTactics to Kickstart Your Journey Toward DevOps
Tactics to Kickstart Your Journey Toward DevOps
Excella
 
Intro to Mocking - DjangoCon 2015
Intro to Mocking - DjangoCon 2015Intro to Mocking - DjangoCon 2015
Intro to Mocking - DjangoCon 2015
Excella
 
Tactics to Kickstart Your Journey Toward Continuous Delivery
Tactics to Kickstart Your Journey Toward Continuous DeliveryTactics to Kickstart Your Journey Toward Continuous Delivery
Tactics to Kickstart Your Journey Toward Continuous Delivery
Excella
 
Using ansible vault to protect your secrets
Using ansible vault to protect your secretsUsing ansible vault to protect your secrets
Using ansible vault to protect your secrets
Excella
 
Using Lean Thinking to Increase the Value of Agile
Using Lean Thinking to Increase the Value of AgileUsing Lean Thinking to Increase the Value of Agile
Using Lean Thinking to Increase the Value of Agile
Excella
 
DCSUG - What's Really Going On? Observer Worksheet
DCSUG - What's Really Going On? Observer WorksheetDCSUG - What's Really Going On? Observer Worksheet
DCSUG - What's Really Going On? Observer Worksheet
Excella
 
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa AdkinsDCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
DCSUG - We Are The Leaders We Have Been Waiting For by Lyssa Adkins
Excella
 
DCSUG - Servant Leadership Handout
DCSUG - Servant Leadership HandoutDCSUG - Servant Leadership Handout
DCSUG - Servant Leadership Handout
Excella
 
DCSUG - Servant Leadership
DCSUG - Servant LeadershipDCSUG - Servant Leadership
DCSUG - Servant Leadership
Excella
 
DCSUG - Applying Analysis in an Agile World
DCSUG - Applying Analysis in an Agile WorldDCSUG - Applying Analysis in an Agile World
DCSUG - Applying Analysis in an Agile World
Excella
 
DCSUG - The Art and Practice of the Agile Leader
DCSUG - The Art and Practice of the Agile LeaderDCSUG - The Art and Practice of the Agile Leader
DCSUG - The Art and Practice of the Agile Leader
Excella
 
DCSUG - Finding Lean in Agile
DCSUG - Finding Lean in AgileDCSUG - Finding Lean in Agile
DCSUG - Finding Lean in Agile
Excella
 
DCSUG - Impact Mapping
DCSUG - Impact MappingDCSUG - Impact Mapping
DCSUG - Impact Mapping
Excella
 
DCSUG - Happiness: A Key Component of Agile
DCSUG - Happiness: A Key Component of AgileDCSUG - Happiness: A Key Component of Agile
DCSUG - Happiness: A Key Component of Agile
Excella
 
The Awkward Teenager of Testing
The Awkward Teenager of TestingThe Awkward Teenager of Testing
The Awkward Teenager of Testing
Excella
 
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting TimeLet's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Excella
 
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Managing for Happiness by Jurgen Appelo at DCSUG on 8/9/2016
Excella
 
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
Excella
 
Get Your Productivity Game On!!
Get Your Productivity Game On!!Get Your Productivity Game On!!
Get Your Productivity Game On!!
Excella
 
How to Structure Multi Team Organizations
How to Structure Multi Team OrganizationsHow to Structure Multi Team Organizations
How to Structure Multi Team Organizations
Excella
 
Tactics to Kickstart Your Journey Toward DevOps
Tactics to Kickstart Your Journey Toward DevOpsTactics to Kickstart Your Journey Toward DevOps
Tactics to Kickstart Your Journey Toward DevOps
Excella
 
Intro to Mocking - DjangoCon 2015
Intro to Mocking - DjangoCon 2015Intro to Mocking - DjangoCon 2015
Intro to Mocking - DjangoCon 2015
Excella
 
Tactics to Kickstart Your Journey Toward Continuous Delivery
Tactics to Kickstart Your Journey Toward Continuous DeliveryTactics to Kickstart Your Journey Toward Continuous Delivery
Tactics to Kickstart Your Journey Toward Continuous Delivery
Excella
 
Using ansible vault to protect your secrets
Using ansible vault to protect your secretsUsing ansible vault to protect your secrets
Using ansible vault to protect your secrets
Excella
 
Using Lean Thinking to Increase the Value of Agile
Using Lean Thinking to Increase the Value of AgileUsing Lean Thinking to Increase the Value of Agile
Using Lean Thinking to Increase the Value of Agile
Excella
 

Recently uploaded (20)

Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Social Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTechSocial Media App Development Company-EmizenTech
Social Media App Development Company-EmizenTech
Steve Jonas
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 

Agile Engineering Best Practices by Richard Cheng

  • 1. Proprietary Material Provided for Training Purposes Only © 2012 Excella Consulting, Inc.
  • 2. Richard Cheng - @RichardKCheng ◊ Agile trainer & coach ◊ Member of PMI, Scrum Alliance, Agile Alliance, Agile Leadership Network ◊ CST, PMP, CSM, CSPO, CSP, PMI-ACP ◊ Founder & executive committee member of Agile Defense Adoption Proponents Team (ADAPT), the Agile DoD Task Force ◊ Deep expertise in Federal and commercial Agile transformations ◊ [email protected]
  • 3. Quality and the Business Analyst Validates work Validates correctness Validates usability
  • 4. 21st Century Quality Practices ◊ Building Quality into the process – Real time identification of quality issues • Automation – Using the right tools and techniques
  • 5. 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.
  • 6. Technology Stacks ◊ .Net ◊ Java ◊ Python ◊ Ruby ◊ JavaScript ◊ Others….
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Continuous Integration Build #1 compile unit test integra0on test package deploy/run acceptance test analyze code Build Report Version Control change #1 change #2 Build Server Build #2 compile unit test integra0on test package deploy/run acceptance test analyze code Build Email Report Failed Build
  • 13. 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
  • 14. CI Effect on Schedule Code Phase QA Phase Code Phase QA Phase Code Phase Code Phase Code + Test Phase Code + Test Phase Release 1 Schedule Release 2 Original Plan Reality With CI
  • 15. 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
  • 16. 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
  • 17. 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
  • 19. 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
  • 20. 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
  • 21. 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)
  • 22. 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
  • 23. 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
  • 24. Testing Quadrant Functional Tests Acceptance Tests Unit Tests Component Tests System Tests Showcases Exploratory Tests Usability Tests Performance Tests Security Tests The Team The Product Functionality from Brian Marick The System
  • 25. Then Do This 8. Automated Deployment – What: Push button deployment capabilities – Effort: High – Sample Tools: FluentMigrator, Puppet, Octopus
  • 26. Automated Deployments Web Server Web Server Managed Deployments Production Version Control Web Server Web Server Web Server Sandbox CI Server DB DB Test DB DB DB Push Bu6on Deployments Automated Nightly Deployments
  • 27. 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
  • 28. Team Member’s Bill of Rights 1. Every {team member} shall have two monitors 2. Every {team member} shall have a fast PC 3. Every {team member} shall have their choice of mouse and keyboard 4. Every {team member} shall have a comfortable chair 5. Every {team member} shall have a fast internet connection 6. Every {team member} shall have {effective} working conditions Modified from Jeff Atwood’s http://www.codinghorror.com/blog/2006/08/the-programmers- bill-of-rights.html
  • 29. Useful References ◊ Stephen Ritchie, Pro .NET Best Practices, Apress, 2011. ◊ Paul Duvall, Steve Matyas, and Andrew Glover, Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley, 2007. ◊ Jez Humble, Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Addison-Wesley, 2010
  • 30. Excella Consul<ng Experience and Exper<se in Agile Solu<ons – Coaching – Training – Assessments – Agile Adop0on – Agile Development Teams – Agile PMO Training Courses – Cer0fied ScrumMaster (CSM) – Cer0fied Scrum Product Owner (CSPO): The Agile Business Analyst – Advanced Cer0fied Scrum Product Owner (CSPO) – Cer0fied Scrum Developer (CSD) – Agile Tes0ng – Agile Business Intelligence and Data Warehousing See h3p://www.excella.com/services/agile-­‐training-­‐services.aspx for more informa@on
  • 31. Contact Information Richard K Cheng [email protected] 703-967-8620 http://www.excella.com Twitter: @RichardKCheng