• No results found

Accelerate Software Delivery

N/A
N/A
Protected

Academic year: 2021

Share "Accelerate Software Delivery"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

Accelerate Software

Delivery

with

Continuous Integration and Testing

Kevin Lawrence [email protected]

(2)

Agenda

What is Continuous Integration

Continuous Integration Practices

Impact of Continuous Integration

Toolset

(3)

Agenda

What is Continuous Integration Continuous Integration Practices

Impact of Continuous Integration Toolset

(4)

What is Continuous Integration? Source Code Repository Check in code Continuous Integration Server Check out and build Developer writes code

Send email

(5)

Reducing the Cost of Mistakes

Manual CI

– practice of frequently integrating my work with work of the team

Automated CI

– practice of giving automated feedback as rapidly as possible following a change

Common goal – lower the cost of failure

(6)

Model of Finding Bugs Manually

Testing a feature takes 2 min

Investigation & reporting a bug takes 10 min

Investigation and reporting take time away from testing

In a 90 min session, we can run 45 tests — as long as we don’t find any bugs...

(example from Michael Bolton, DevelopSense.com)

Assumption

(7)

Number of bugs found

Time spent reporting bugs (minutes) Increase in testing time 0 0 0 1 10 11% 9 90 100%

Finding Bugs Manually Costs Time

Other costs of those bugs…?

Engineering time to investigate Time to retest

Bugs hidden behind bugs

90 minute testing session, 45 features tests

(8)

Code rules pass Code compiles Unit tests pass

System tests pass Installer created

Deployment successful

Early Feedback Enables Early Bug Fixes

People are generally interested in being good citizens.

– Alistair Cockburn

(9)

Agenda

What is Continuous Integration

Continuous Integration Practices Impact of Continuous Integration

Toolset

(10)

CI Practices with Examples from Agitar

Invest in tests

Minimize feedback cycles

Use multiple feedback mechanisms

(11)

Invest in Tests

No automated tests

Machine dependent tests

Machine independent tests

Automated nightly test run

Continuous Integration

Imperfect tests, run frequently, are much better than perfect tests that are never written at all.

(12)

Multiple Builds to Minimize Feedback Cycles

“quick” build

– compiles + fast tests

– feedback < 10 minutes system tests – feedback < 1 hour nightly tests (official build)

(13)

Agitar Makes Extensive Use of Multiple Build Cycles

14 servers dedicated to CI

– 8 instances of CruiseControl

– 6 machines for distributed agitation

106 builds defined

– Average 7 builds per day per module

– Coverage on multiple branches and operating systems

Continuous releases to QA

– No special test builds required

(14)

Different Feedback Paths for Each Goal

Visible feedback – Lava lamps

– eXtreme Feedback Monitor

Personal feedback

– Browser plugins, widgets

– Emails

Detailed analysis

– JSP reporting application

– Managed testing

Lava Lamps & XFM as Information Radiators

(15)

Quick Desktop Access to Information

Firefox CruiseControl plugin

(16)
(17)
(18)
(19)

Agenda

What is Continuous Integration Continuous Integration Practices

Impact of Continuous Integration Toolset

(20)

Impact of Continuous Integration

“Trade-offs between Productivity and Quality in Selecting Software Development Practices”, IEEE Software, Sept-Oct 2003

36% reduction in defect rate

(21)

Impact of Continuous Integration with Agitar Customers

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

(22)

Impact of Continuous Integration at Agitar Software

Faster time-to-market

–More features and higher quality

Agility in the marketplace

–added new functionality 2 weeks before ship

–shipped 1 week early

Confidence in the process

–“Oozing Confidence” (Mike Clark)

(23)

Agenda

What is Continuous Integration

Continuous Integration Practices

Impact of Continuous Integration Toolset

(24)

Toolset

CruiseControl

–Open Source CI framework

–~11K downloads per month

CruiseControl extensions

–3rd party –In-house scripts

AgitarOne™ integration

–Ant tasks –Reporting

(25)

AgitarOne™ brings unprecedented automation

to the activities of developer testing

(26)

Software & Information Resources

cruisecontrol.sourceforge.net CruiseControl

www.agitar.com AgitarOne

www.junit.org JUnit

www.junitfactory.com JUnitFactory

www.stickyminds.com CI: An Unlikely Hero

www.martinfowler.com Continuous Integration

developertesting.com Continuous Integration, Continuous Agitation A Bad Day With Continuous Integration eXtreme Feedback for Software Development

(27)

References

Related documents

Several prospective, randomized trials have been conducted comparing conventional chemotherapy with high-dose therapy and autologous hematopoietic stem cell transplant (HSCT)

Gaseous elemental mercury (GEM), reactive gas phase mer- cury (RGM) and particulate mercury (PHg) concentration measurements from Alert, Canada, from 2002 to 2011 are shown in

a Daniel Mejía  Reflexiones sobre Reflexiones sobre para vibráfono y electrónica en vivo para vibráfono y electrónica en vivo Rayuela  Rayuela   de Julio Cortazar   de

Recall that φ : {0, 1} ω −→ X , φ(ξ) := (Γ ξ , ξ), is the application mapping an infinite binary sequence ξ to the (rooted isomorphism class of the) orbital Schreier graph

As a response to the search for an identity for the school counselor, ASCA (2012) developed the ASCA National Model: A Framework for School Counseling Programs to help answer

When you request a hearing, your local Social Security office will send your file to the hearings office, also known as the Office of Disability Adjudication and

independent from the speed amount to P100 per hour and the distance is 200 km. The strength of a rectangular beam is proportional to the breadth and the square of the depth. Find

In order to be eligible for consideration for admission to the MSW/JD Program, applicants must apply, be admitted, and begin taking course work in the School of Law before they have