Pushing The Boundaries Of Continuous Integration

25
Pushing the Boundaries of Testing and Continuous Integration Fabrizio Cannizzo Raghav Ramesh Robbie Clutton

description

Presentation from Agile2008.org of the session 'Pushing the Boundaries of Continuous Integration.

Transcript of Pushing The Boundaries Of Continuous Integration

Page 1: Pushing The Boundaries Of Continuous Integration

Pushing the Boundaries ofTesting and

Continuous Integration

Fabrizio Cannizzo Raghav RameshRobbie Clutton

Page 2: Pushing The Boundaries Of Continuous Integration

http://flickr.com/photos/zoonabar/159442457/

Who are we?

http://flickr.com/photos/kerrybuckley/1356791754/in/pool-web21c

Page 3: Pushing The Boundaries Of Continuous Integration
Page 4: Pushing The Boundaries Of Continuous Integration

Agile to the Core!

XP/Scrum- TDD- Pair programming- Continuous Build/Integration

o Unit/Acceptance Testo Reporting

 

Page 5: Pushing The Boundaries Of Continuous Integration

Feature completeness !=

completed product

http://flickr.com/photos/mattimattila/2188826561/

Page 6: Pushing The Boundaries Of Continuous Integration

What's Missing?

Robustness Performance

Scalability  

Failover

Page 7: Pushing The Boundaries Of Continuous Integration

We needed to know the

thing would stand up

http://flickr.com/photos/alan-light/2435511982/

Page 8: Pushing The Boundaries Of Continuous Integration

But we didn't want to wait for formal QA testing

Page 9: Pushing The Boundaries Of Continuous Integration

We had to last three spooky nights

http://flickr.com/photos/luchilu/677786684/

Page 10: Pushing The Boundaries Of Continuous Integration

After four weekends, we were done

http://flickr.com/photos/22243977@N06/2457787000/

BugsMemory LeaksPoor EnvironmentLog Extractors

Page 11: Pushing The Boundaries Of Continuous Integration

What next?

Create scenarios Define expectations

Automate 

Continuously test

Page 12: Pushing The Boundaries Of Continuous Integration

So... how does it really work?

Page 13: Pushing The Boundaries Of Continuous Integration

Technologies

Cruise Control

Java Spring Framework

Hand crafted Java code

JMX Console

UltraMonkey

SIPp

JainSIP

Mockphones

Page 14: Pushing The Boundaries Of Continuous Integration

Cruise control is the engine that continuously runs typical usage scenarios.

http://flickr.com/photos/_fxr/2142296214/

Ensure the entire scenario played out as expected

http://flickr.com/photos/mike-burns/35534789/

connect connect

join

Page 15: Pushing The Boundaries Of Continuous Integration

Why are scenarios relevant?

Robustness

Performance

Scalability

Failover

Page 16: Pushing The Boundaries Of Continuous Integration

We automated phone behaviour using SIPp...

Different configurations are implemented using different spring application contexts and network setups

Scenario runners are java applications

Scenarios are POJOs loaded from spring application context

Page 17: Pushing The Boundaries Of Continuous Integration
Page 18: Pushing The Boundaries Of Continuous Integration
Page 19: Pushing The Boundaries Of Continuous Integration
Page 20: Pushing The Boundaries Of Continuous Integration
Page 21: Pushing The Boundaries Of Continuous Integration

TestRR

• Generic Frameworko Robustnesso Performance

 • http://code.google.com/p/testrr/

Page 22: Pushing The Boundaries Of Continuous Integration

Who else is talking about this?

James Bull - Pragmatic Performance Testing - http://is.gd/SUv

 Dr. Dobbs - Continuous Integration and Performance Testing - http://is.gd/12Ds

Manfred Lange - Introducing Automated Performance Testing - http://is.gd/SUj

Paul King & Dalton Cranston – Open Source Performance Testing Tools For The Web

Page 23: Pushing The Boundaries Of Continuous Integration

What we have learned that you could take away...Automate early and often

unit and acceptance tests are an essential first step

maintaining these builds can have severe impact on velocity

the customer must buy in: formulate user stories to drive the creation of tests

Page 24: Pushing The Boundaries Of Continuous Integration

... and also...

This drives creation of robust code earlier

Leverage existing frameworks for performance testing

Build up testing strategies incrementally

These tests are resource hungry, use an appropriate environment

Page 25: Pushing The Boundaries Of Continuous Integration

Q & A Fabrizio Cannizzo: 

- http://smartrics.blogspot.comRaghav Ramesh: - http://ragstorooks.wordpress.comRobbie Clutton: - http://blog.iclutton.com

Aloha SIP A/S: https://trac.osmosoft.com/AlohaWeb21C SDK: http://web21c.bt.com