aistė stikliutė - testing in continuous delivery
TRANSCRIPT
AgendaWhat is Continuous Delivery and why it’s (slowly) going mainstream
Examples
Challenge - testing• Problems• Solutions
Do you do Continuous Delivery?
How often do you / can you deploy to Prod?
What if you’ve got to do a big change?
Who decides when to deploy / release?
Have the cake and eat it too?
● do thorough regression testingand do it often?
● add changes fastand keep up with automated
tests?
● ensure good qualitywithout (much) manual testing?
Cycle time: idea production
Design Develop Test Merge to trunk
Deploy to test
environmentTest Deploy to
stage Test
Deploy to production
Cycle time to production: testingManual tests
before merge
Automated tests after
mergeStaging tests
Analyse resultsUpdate testsBugfix
Clarify open questionsBugfix
Analyse resultsBugfix
[obvious] agile testing
Testers involved in team:grooming, planning, development
“Show me”testing before it’s finished, input for automated tests
When it’s finished, tester must be ready to test
developer responsibility
You are responsible for your code• Testing• Deploying• Supporting
• Defined code ownership• Better automated tests• Monitoring. Faster corrections• Faster & more successful deployments
branching patterns
Centralized Finds and fixes problems ASAP
Distributed Develop every change in its own branch and test
Temporary branches
Effective, combines centralized and distributed
Matrix of services
Use centralized CI for a massively scalable system
feature toggling
● Needs to be implemented● Reduces need for lab-testing, but it’s still needed● Needs to be tested itself● Reduces risk● Enables A/B testing
on off staff user_list opt-in 0-100%