Continuous Delivery of your Legacy Application
Kev McCabe
Tuesday 10th November 2015
1
Who Am I?
• Freelance Code Smith & Agile Coach
• CF Developer Since 1996
• Scrum Master
• Kanban Practitioner
• Agile Coach
• T: @bigmadkev
• W: BigMadKev.com2
SORRY NO LEGO THIS YEAR :-(
3
I apologize for any inconvenience caused
What is Continuous Delivery
Continuous Delivery is a software development discipline where you build
software in such a way that the software can be released to production
at any time.
Martin Fowlerhttp://martinfowler.com/bliki/ContinuousDelivery.html
What is legacy code?
Legacy Code Is Code Without Tests
Michael Feathers Working Effectively with Legacy Code
Types of Testing
7
GUI
Integration
Unit Tests
Exploratory testing
Real World Testing Pyramid
8
GUI
Integration
Exploratory testing
Unit TestsManual Testing
9
GUI
Unit Tests
Exploratory testing
Humans
Selenium
TestBox
Refactoring
Without Tests Is Living Dangerously
Catch 22?
Web Apps
We have Selenium (-;
We’ll start from the outside and work in.
Selenium
What to test?
$$$ Paths
Don’t test everything!
TESTBOX
Unit Tests
Continuous Integration
Tools
Branching Strategies!
• Working on Mainline
• Branch for Release
• Branch by Feature
Pipeline
Delivery Pipeline
One Click Deployments
What? the Crash Still?
Automate Everything!
Legacy Thinking!
Release More Frequently!
Sort out infrastructure!
Resources
https://cucumber.io/school
https://www.udemy.com/selenium-2-webdriver-basics-with-java/
THANK YOUAlways happy to help, feel free to contact me
• E: [email protected]
• T: @bigmadkev
http://cfml-craftsmanship.com/eclipseupdatesite