SlideShare a Scribd company logo
© All rights reserved
Want to use slides from
this presentation?
Ask for permission:
ethanram@gmail.com

Agile Tools Seminar
- Technical Introduction Ethan Ram / 16 Oct. 2013
v1.2
Agenda: Agile Tools Seminar
• Session presents the automation model
developed in Videobet, the tools used in the
R&D, QA and operations:
–
–
–
–
–
–
–

Issue mgmt.: JIRA/Greenhopper
Build system and repository: Maven & Nexus
Build server: QuickBuild
Code quality: Sonar
Continuous Integration: Selenium Grid
Crash dump analysis: Socorro
Database versioning: Flyway DB

• Open discussion
• Refreshments & tour in Videobet office
Videobet, Paldiski Mnt. 29, Tallinn
iPad Mini – Draw on Exit
10/22/13

© All rights reserved

2
Videobet
• A Playtech division
• Innovative Gaming
Platform Provider
– Established 9 years ago
– 150 employees in Tallinn
and Kiev
– Operate in 9 countries
– 60% of UK market

• R&D
– Front-end teams (C++)
– Server teams (Java)
– Game development teams
10/22/13

© All rights reserved

3
Ethan Ram - Host
• Chief architect of Videobet
• Leading Videobet’s R&D and OPs
teams Agile Injection effort
• As VP R&D of GameGround
transformed the R&D to run in
Kanban in a Continuous
Deployment environment
• Hacker in soul and a Windows
Internals hobbyist
Find me here:
•ethnram@gmail.com
•LinkedIn
•The Null Terminator blog
10/22/13

© All rights reserved

4
 “We forgot to implement this feature…”
 “Didn’t you get that urgent build request email?!”
 “But there was a much more urgent issue to work on”
 “We lost a day in QA because the build was total crap”
 “It will take me a half a day to switch to that branch”

10/22/13

© All rights reserved

5
Automate it!

Streamlined
Operations







“We forgot to implement this feature…”
“Didn’t you get that urgent build request email?!”
“But there was a much more urgent issue to work on”
“We lost a day in QA because the build was total crap”
“It will take me a half a day to switch to that branch”

10/22/13

© All rights reserved









Transparency in all operations
Prioritize often
Enable teams collaboration
Simplify dev. environment
Reduce QA cost
Improve product quality
Go Agile; go green!
6
10/22/13

© All rights reserved

7
Target: Streamline Operations
Daily Scrum meeting around team Scrum board

Filling a bug using 7” tablet 
10/22/13

© All rights reserved

8
Agile Issue Tracking and Mgmt: JIRA
Tips
•JIRA Agile is good!
•Latest versions are fast and
intuitive
– No more than 1-2 hours a
week to manage it all

•A few plugins used for
missing functionality
•Keep all R&D in one JIRA
project
– Team backlog based on a
team label

•If you cannot model your
process into JIRA better ask:
“What do I need to change in
my process”
•Missing a good
resource/project timeline tool

10/22/13

© All rights reserved

9
JIRA Agile – Scrum Board

10/22/13

© All rights reserved

10
Scrum Board – Sprint Planning

xxx
aBC

aBsddlfhasldjhlshC

10/22/13

© All rights reserved

11
Scrum Charts: Burn-Down, Velocity,
Sprint Report

10/22/13

© All rights reserved

12
Kanban: Multi-Project Epics Mgmt.
WIP
ALERT

10/22/13

© All rights reserved

13
Kanban: Operations Teams

10/22/13

© All rights reserved

14
Continuous Integration Concept

10/22/13

© All rights reserved

15
Continuous Integration - Maven
• Mavenize it all
– Product: Java, C++, scripts, game resource
compilations etc.
– Embedded Operating System images
– Customer configurations and packages

• Nexus artifact repository
– Build output is here! Snapshots, releases
– Installer downloads directly from Nexus repo.
– New artifacts pushed to 2nd Nexus in remote site

• Build promotions
– Snapshot builds avail to Scrum team immediately
(Auto-deleted after a week)
– Promote builds to QA and customer (“gold”)
10/22/13

© All rights reserved

16
Continuous Integration – Build Server
•
•
•
•
•

Build on every commit – fail build on errors
Run unit testing – fail build on assertions
Run integration tests – alert testers
Code quality metrics – produced weekly
Distributed build agents – some in remote
sites
• Daily snapshot installed and run in QA
– Nightly scripts run on 60+ terminals

• Integration testing – run every hour
– Deploy and upgrade servers and database
– Run Selenium script on management console
– Run clients simulators
10/22/13

© All rights reserved

17
CI Server - QuickBuild
Build and test queue

Latest builds
promoted to QA

Alert when Continuous
Integration fails
10/22/13

© All rights reserved

18
Code Quality Metrics - Sonar

•
•
•
•
•

Percent of code covered by unit tests, per module
Common developer mistakes: leaks, uninitialized vars, unsafe error handling etc.
Code complexity measures based on static code analysis
Drill-down to line of code
Supports continuous improvement by developers: Java and C++
10/22/13

© All rights reserved

19
Integration Testing

• This is unsustainable!
• Goal: break this is vicious cycle!
10/22/13

© All rights reserved

20
Integration Testing – The basics
• Initial goal: main data flows should
remain working at all times to allow
QA to run full regression test suite
• Long term goal: replace most
regression testing
• Tests are run hourly on active
branches - snapshot build
• Deployment on a set of virtual
machines

10/22/13

© All rights reserved

“Keeping product
stable is more
important than
developing new
features”

21
Integration Testing – DEMO

• Using Selenium scripts to test admin console and check
that a test-setup of servers and clients is working
10/22/13

© All rights reserved

22
Here’s a New Bug CI Found Today!
 Email: CI Alerts on failed test
 Tester validates it’s a bug
Bug was resolved 2 hrs after it was introduced
CI is back to “green”

10/22/13

© All rights reserved
Integration Testing – Solution
• Infrastructure
–
–
–
–
–

Virtual Machines deployment scripts
DB deployment scripts
Server install
Clients install
Client simulators (initially created used
for load-testing sessions)
– Various libs allowing triggering of
hardware events and reading screen
output – with activated over http

• Tests
– Selenium grid – for web-testing
• nUnit tests running on build server
10/22/13

© All rights reserved

24
Integration Testing – Tips
• Find the natural topic owners: the Scrum testers
– Lots a scripting is required
– They are busy – but this can be their baby

• Plan ahead but start small
– Get one test running first

• The hard part is to set the infra. You have to
combine knowledge from
–
–
–
–
–

Devs
Testers
Build
Deployment
Infra-teams

• Education is a must

– This is a radical change that ppl do not understand

• Keep tests short
• Celebrate the first bugs found 
10/22/13

© All rights reserved

25
Crashes In a Large-Scale Install-base
• A major problem on all platforms
• Intermittent crash is very hard to
find in QA
– Hard to reproduce
– May-be overlooked by tester
– Happens only when combined with
“other” software and hardware

• Crash statistics gives clarity
– Scale of problems: focus for
urgency
– Direct access to dump for devs
10/22/13

© All rights reserved

26
Crash Stats Server - Socorro
Select Product
or Content and
version

Filter by time
and platform

Sort by first time
this crash was
reported

Trending!
Crash dumps are
grouped by crash location
in code;
Click to see graph

• Open source server by Mozilla provides large scale dump analysis
• All licensee’s terminals upload dumps of platform and games (“content”)
• Dumps redirected to a single server as Videobet data center
10/22/13

© All rights reserved

27
Crash Drill-Down- Socorro
Product build
number and
client ID

Stack trace
with symbols
directly from
build server

Create
bug

Click to go
directly to
source code

• 105 bugs opened in QA night-runs (12/’12 – 8/’13)
10/22/13

© All rights reserved

28
Database Versioning
Database

Code

•
•
•
•

• Branch
• Build version

Schema
Config data
Operational data / OLTP
Reporting data / OLAP

We need to find an answer to these:
•What state is the database in on this machine?

– Has this script already been applied or not?
– Has the quick fix in production been applied in test afterwards?

•Can this DB correspond to my code version?
•How do I roll-back this DB to previous release version?
•How do you set up a new database instance?
10/22/13

© All rights reserved

29
Database Versioning

10/22/13

© All rights reserved

30
Flyway DB: First Migration

10/22/13

© All rights reserved

31
Flyway DB: Second Migration

10/22/13

© All rights reserved

32
Flyway DB is Agile!
• Migrations kept with source code
– Applying migrations added between v1 to v2 is
easy
– Roll-back of migrations supported built-in

• Merging team-branch migrations is like (even
simpler than) merging code
• Each dev can have its own DB and manage
it’s data in a simple way
– Integrative with Maven/Ant
– Command-line or JAVA API

• Data for unit-testing can be added and
removed on the fly
• Excellent for Continues Deployment
10/22/13

© All rights reserved

33
Goal: Continuous Deployment
At SlideShare, instead of big launches, we
We have been doing continuous deployment code all the time... it reduces risk.
release
at Plex since our inception in 1995. We we are putting out small changes at a
Since
formalized the process with our own “deploy” breaks we know what it is and can
time, if it
button in 2003, and hit the 25k deployment
roll back.
mark less than two years thereafter. Flickr "10+ Deploys Per Day"
We
Rashmi
Steve Conover
currently average between 50-100
At bixbe.com, we auto-deploy the latest
deployments per day as soon as anything is
checked in code to our massive online
ERP system.
installed, so no safety net at all. Using this
One of the exciting things, from a
Jerry Foster
method, we’re doing 10-30 deploys per day.One of the exciting things, from a
development perspective, about Digg is
development
It’s a totally productive way to move quickly.
WordPress.com - we’ve averaged about 16 perspective, about Digg is
continuous deployment - when developers fix
We still maintain the conceptevery continuous deployment - when developers fix
product releases a day, of ‘beta’ for the last
day
aabug or add aanew feature, there's no need
features… four and bits ofyears… Everyone in our
optional a half code that canbug or add new feature, there's no need
be
to wait for aascheduled release. Instead, the
tobutton that
turned on or off by user account. This letswait for scheduled release. Instead, the
company has access to a deploy us
change can go live right away. This is great change
roll out new capabilities to checked in code to about live right away. This is great releases the latest limited exposure can go
the turnaround time for a change drops
the
and avoid production the corein ourflow. tier in less
400 disrupting servers user web turnaround time for a change drops
dramatically.
dramatically.
than 30 mtrifiro (across 3 data centers).
seconds
Andrew Bayer
Andrew Bayer
Toni Schneider
10/22/13

© All rights reserved

34
Continues Deployment
“Let’s Leave Something
for next time…”

10/22/13

© All rights reserved

35
Q&A
Open Discussion

10/22/13

© All rights reserved

More Related Content

PPT
Making the Agile Leap to Continuous Deployment
PDF
Cloud agnostic continuous quality assurance
PDF
Journey toward3rdplatform
PPTX
Continuous Testing using Shippable and Docker
PPTX
Orchestrating Automated Tests in Different Systems - Please Download to watch...
PPTX
SONY - Process as Code: Continuous Delivery of a CD Pipeline
PDF
Getting to Walk with DevOps
PPT
SynapseIndia drupal presentation on drupal info
Making the Agile Leap to Continuous Deployment
Cloud agnostic continuous quality assurance
Journey toward3rdplatform
Continuous Testing using Shippable and Docker
Orchestrating Automated Tests in Different Systems - Please Download to watch...
SONY - Process as Code: Continuous Delivery of a CD Pipeline
Getting to Walk with DevOps
SynapseIndia drupal presentation on drupal info

What's hot (20)

PDF
Node.js Tools Ecosystem
PDF
Preparing for DevOps
PDF
Continuous Integration, Delivery and Deployment
PDF
Introduction to dev ops
PDF
Testing in a continuous delivery environment
PDF
2016 09-dev opsjourney-devopsdaysoslo
PPTX
CI/CD for mobile at HERE
PPTX
Automating the build and deployment of legacy applications
PDF
Deployability
PDF
Dev ops and safety critical systems
PDF
Successful testing continuous delivery - coding serbia 2013
PDF
Agile Strategies for Traditional Software Development Teams
PDF
Packaging tool options
PPT
Continuous Load Testing with CloudTest and Jenkins
PDF
Continuous delivery with Jenkins Enterprise and Deployit
PPTX
Continuous Delivery Applied (Agile Richmond)
PPTX
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
PPTX
State of mobile Continuous Delivery at Spotify
PDF
Continuous Delivery at Oracle Database Insights
PDF
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
Node.js Tools Ecosystem
Preparing for DevOps
Continuous Integration, Delivery and Deployment
Introduction to dev ops
Testing in a continuous delivery environment
2016 09-dev opsjourney-devopsdaysoslo
CI/CD for mobile at HERE
Automating the build and deployment of legacy applications
Deployability
Dev ops and safety critical systems
Successful testing continuous delivery - coding serbia 2013
Agile Strategies for Traditional Software Development Teams
Packaging tool options
Continuous Load Testing with CloudTest and Jenkins
Continuous delivery with Jenkins Enterprise and Deployit
Continuous Delivery Applied (Agile Richmond)
DevOps: Sprinkle Dev, Sprinkle Ops, Let's make Cake, not Mud Pies
State of mobile Continuous Delivery at Spotify
Continuous Delivery at Oracle Database Insights
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
Ad

Viewers also liked (13)

PPT
Advanced topics in Agile: Implementing Scrum in a project-based company
PDF
How to Measure Agility Project Success in Business Terms
PDF
DevOps: Building by feature with immutable infrastructure at Serv.sg
PDF
seminar report content
PDF
Sonar Project Report
PPTX
Sonar technology ppt
PPTX
Jira fundamentals
PPTX
Software And Computer Applications for civil engineering
PDF
Kanban boards step by step
PDF
Jira as a Project Management Tool
PPTX
Civil engineering powerpoint
PPTX
Civil Engineering (Beams,Columns)
Advanced topics in Agile: Implementing Scrum in a project-based company
How to Measure Agility Project Success in Business Terms
DevOps: Building by feature with immutable infrastructure at Serv.sg
seminar report content
Sonar Project Report
Sonar technology ppt
Jira fundamentals
Software And Computer Applications for civil engineering
Kanban boards step by step
Jira as a Project Management Tool
Civil engineering powerpoint
Civil Engineering (Beams,Columns)
Ad

Similar to DevOps / Agile Tools Seminar 2013 (20)

PDF
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
PDF
Developer want change Ops want control - devops
PDF
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
PDF
Enterprise CI as-a-Service using Jenkins
PDF
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
PPTX
The Rocky Cloud Road
PDF
Hyd virtual meetupslides11jul
PPTX
Modern Web-site Development Pipeline
PDF
Keeping your build tool updated in a multi repository world
PPTX
The Hard Problems of Continuous Deployment
PDF
A Reference Architecture to Enable Visibility and Traceability across the Ent...
PPT
Moving the Guidewire platform to OSGi - Paul D'Albora
PPTX
Warsaw MuleSoft Meetup #6 - CI/CD
PPTX
Developing apps faster
PPTX
Session on evaluation of DevSecOps
PPTX
Cognos Performance Tuning Tips & Tricks
PDF
Cloud native development without the toil
PDF
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
PPTX
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
PDF
BATbern54 Build & Run on the same platform, embracing Platform Engineering & ...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Developer want change Ops want control - devops
apidays LIVE New York - Navigating the Sea of Javascript Tools to Discover Sc...
Enterprise CI as-a-Service using Jenkins
[DPE Summit] How Improving the Testing Experience Goes Beyond Quality: A Deve...
The Rocky Cloud Road
Hyd virtual meetupslides11jul
Modern Web-site Development Pipeline
Keeping your build tool updated in a multi repository world
The Hard Problems of Continuous Deployment
A Reference Architecture to Enable Visibility and Traceability across the Ent...
Moving the Guidewire platform to OSGi - Paul D'Albora
Warsaw MuleSoft Meetup #6 - CI/CD
Developing apps faster
Session on evaluation of DevSecOps
Cognos Performance Tuning Tips & Tricks
Cloud native development without the toil
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
BATbern54 Build & Run on the same platform, embracing Platform Engineering & ...

Recently uploaded (20)

PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Cloud computing and distributed systems.
PDF
Advanced IT Governance
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
KodekX | Application Modernization Development
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
Modernizing your data center with Dell and AMD
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Cloud computing and distributed systems.
Advanced IT Governance
Diabetes mellitus diagnosis method based random forest with bat algorithm
KodekX | Application Modernization Development
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity

DevOps / Agile Tools Seminar 2013

  • 1. © All rights reserved Want to use slides from this presentation? Ask for permission: ethanram@gmail.com Agile Tools Seminar - Technical Introduction Ethan Ram / 16 Oct. 2013 v1.2
  • 2. Agenda: Agile Tools Seminar • Session presents the automation model developed in Videobet, the tools used in the R&D, QA and operations: – – – – – – – Issue mgmt.: JIRA/Greenhopper Build system and repository: Maven & Nexus Build server: QuickBuild Code quality: Sonar Continuous Integration: Selenium Grid Crash dump analysis: Socorro Database versioning: Flyway DB • Open discussion • Refreshments & tour in Videobet office Videobet, Paldiski Mnt. 29, Tallinn iPad Mini – Draw on Exit 10/22/13 © All rights reserved 2
  • 3. Videobet • A Playtech division • Innovative Gaming Platform Provider – Established 9 years ago – 150 employees in Tallinn and Kiev – Operate in 9 countries – 60% of UK market • R&D – Front-end teams (C++) – Server teams (Java) – Game development teams 10/22/13 © All rights reserved 3
  • 4. Ethan Ram - Host • Chief architect of Videobet • Leading Videobet’s R&D and OPs teams Agile Injection effort • As VP R&D of GameGround transformed the R&D to run in Kanban in a Continuous Deployment environment • Hacker in soul and a Windows Internals hobbyist Find me here: •ethnram@gmail.com •LinkedIn •The Null Terminator blog 10/22/13 © All rights reserved 4
  • 5.  “We forgot to implement this feature…”  “Didn’t you get that urgent build request email?!”  “But there was a much more urgent issue to work on”  “We lost a day in QA because the build was total crap”  “It will take me a half a day to switch to that branch” 10/22/13 © All rights reserved 5
  • 6. Automate it! Streamlined Operations      “We forgot to implement this feature…” “Didn’t you get that urgent build request email?!” “But there was a much more urgent issue to work on” “We lost a day in QA because the build was total crap” “It will take me a half a day to switch to that branch” 10/22/13 © All rights reserved        Transparency in all operations Prioritize often Enable teams collaboration Simplify dev. environment Reduce QA cost Improve product quality Go Agile; go green! 6
  • 8. Target: Streamline Operations Daily Scrum meeting around team Scrum board Filling a bug using 7” tablet  10/22/13 © All rights reserved 8
  • 9. Agile Issue Tracking and Mgmt: JIRA Tips •JIRA Agile is good! •Latest versions are fast and intuitive – No more than 1-2 hours a week to manage it all •A few plugins used for missing functionality •Keep all R&D in one JIRA project – Team backlog based on a team label •If you cannot model your process into JIRA better ask: “What do I need to change in my process” •Missing a good resource/project timeline tool 10/22/13 © All rights reserved 9
  • 10. JIRA Agile – Scrum Board 10/22/13 © All rights reserved 10
  • 11. Scrum Board – Sprint Planning xxx aBC aBsddlfhasldjhlshC 10/22/13 © All rights reserved 11
  • 12. Scrum Charts: Burn-Down, Velocity, Sprint Report 10/22/13 © All rights reserved 12
  • 13. Kanban: Multi-Project Epics Mgmt. WIP ALERT 10/22/13 © All rights reserved 13
  • 14. Kanban: Operations Teams 10/22/13 © All rights reserved 14
  • 16. Continuous Integration - Maven • Mavenize it all – Product: Java, C++, scripts, game resource compilations etc. – Embedded Operating System images – Customer configurations and packages • Nexus artifact repository – Build output is here! Snapshots, releases – Installer downloads directly from Nexus repo. – New artifacts pushed to 2nd Nexus in remote site • Build promotions – Snapshot builds avail to Scrum team immediately (Auto-deleted after a week) – Promote builds to QA and customer (“gold”) 10/22/13 © All rights reserved 16
  • 17. Continuous Integration – Build Server • • • • • Build on every commit – fail build on errors Run unit testing – fail build on assertions Run integration tests – alert testers Code quality metrics – produced weekly Distributed build agents – some in remote sites • Daily snapshot installed and run in QA – Nightly scripts run on 60+ terminals • Integration testing – run every hour – Deploy and upgrade servers and database – Run Selenium script on management console – Run clients simulators 10/22/13 © All rights reserved 17
  • 18. CI Server - QuickBuild Build and test queue Latest builds promoted to QA Alert when Continuous Integration fails 10/22/13 © All rights reserved 18
  • 19. Code Quality Metrics - Sonar • • • • • Percent of code covered by unit tests, per module Common developer mistakes: leaks, uninitialized vars, unsafe error handling etc. Code complexity measures based on static code analysis Drill-down to line of code Supports continuous improvement by developers: Java and C++ 10/22/13 © All rights reserved 19
  • 20. Integration Testing • This is unsustainable! • Goal: break this is vicious cycle! 10/22/13 © All rights reserved 20
  • 21. Integration Testing – The basics • Initial goal: main data flows should remain working at all times to allow QA to run full regression test suite • Long term goal: replace most regression testing • Tests are run hourly on active branches - snapshot build • Deployment on a set of virtual machines 10/22/13 © All rights reserved “Keeping product stable is more important than developing new features” 21
  • 22. Integration Testing – DEMO • Using Selenium scripts to test admin console and check that a test-setup of servers and clients is working 10/22/13 © All rights reserved 22
  • 23. Here’s a New Bug CI Found Today!  Email: CI Alerts on failed test  Tester validates it’s a bug Bug was resolved 2 hrs after it was introduced CI is back to “green” 10/22/13 © All rights reserved
  • 24. Integration Testing – Solution • Infrastructure – – – – – Virtual Machines deployment scripts DB deployment scripts Server install Clients install Client simulators (initially created used for load-testing sessions) – Various libs allowing triggering of hardware events and reading screen output – with activated over http • Tests – Selenium grid – for web-testing • nUnit tests running on build server 10/22/13 © All rights reserved 24
  • 25. Integration Testing – Tips • Find the natural topic owners: the Scrum testers – Lots a scripting is required – They are busy – but this can be their baby • Plan ahead but start small – Get one test running first • The hard part is to set the infra. You have to combine knowledge from – – – – – Devs Testers Build Deployment Infra-teams • Education is a must – This is a radical change that ppl do not understand • Keep tests short • Celebrate the first bugs found  10/22/13 © All rights reserved 25
  • 26. Crashes In a Large-Scale Install-base • A major problem on all platforms • Intermittent crash is very hard to find in QA – Hard to reproduce – May-be overlooked by tester – Happens only when combined with “other” software and hardware • Crash statistics gives clarity – Scale of problems: focus for urgency – Direct access to dump for devs 10/22/13 © All rights reserved 26
  • 27. Crash Stats Server - Socorro Select Product or Content and version Filter by time and platform Sort by first time this crash was reported Trending! Crash dumps are grouped by crash location in code; Click to see graph • Open source server by Mozilla provides large scale dump analysis • All licensee’s terminals upload dumps of platform and games (“content”) • Dumps redirected to a single server as Videobet data center 10/22/13 © All rights reserved 27
  • 28. Crash Drill-Down- Socorro Product build number and client ID Stack trace with symbols directly from build server Create bug Click to go directly to source code • 105 bugs opened in QA night-runs (12/’12 – 8/’13) 10/22/13 © All rights reserved 28
  • 29. Database Versioning Database Code • • • • • Branch • Build version Schema Config data Operational data / OLTP Reporting data / OLAP We need to find an answer to these: •What state is the database in on this machine? – Has this script already been applied or not? – Has the quick fix in production been applied in test afterwards? •Can this DB correspond to my code version? •How do I roll-back this DB to previous release version? •How do you set up a new database instance? 10/22/13 © All rights reserved 29
  • 31. Flyway DB: First Migration 10/22/13 © All rights reserved 31
  • 32. Flyway DB: Second Migration 10/22/13 © All rights reserved 32
  • 33. Flyway DB is Agile! • Migrations kept with source code – Applying migrations added between v1 to v2 is easy – Roll-back of migrations supported built-in • Merging team-branch migrations is like (even simpler than) merging code • Each dev can have its own DB and manage it’s data in a simple way – Integrative with Maven/Ant – Command-line or JAVA API • Data for unit-testing can be added and removed on the fly • Excellent for Continues Deployment 10/22/13 © All rights reserved 33
  • 34. Goal: Continuous Deployment At SlideShare, instead of big launches, we We have been doing continuous deployment code all the time... it reduces risk. release at Plex since our inception in 1995. We we are putting out small changes at a Since formalized the process with our own “deploy” breaks we know what it is and can time, if it button in 2003, and hit the 25k deployment roll back. mark less than two years thereafter. Flickr "10+ Deploys Per Day" We Rashmi Steve Conover currently average between 50-100 At bixbe.com, we auto-deploy the latest deployments per day as soon as anything is checked in code to our massive online ERP system. installed, so no safety net at all. Using this One of the exciting things, from a Jerry Foster method, we’re doing 10-30 deploys per day.One of the exciting things, from a development perspective, about Digg is development It’s a totally productive way to move quickly. WordPress.com - we’ve averaged about 16 perspective, about Digg is continuous deployment - when developers fix We still maintain the conceptevery continuous deployment - when developers fix product releases a day, of ‘beta’ for the last day aabug or add aanew feature, there's no need features… four and bits ofyears… Everyone in our optional a half code that canbug or add new feature, there's no need be to wait for aascheduled release. Instead, the tobutton that turned on or off by user account. This letswait for scheduled release. Instead, the company has access to a deploy us change can go live right away. This is great change roll out new capabilities to checked in code to about live right away. This is great releases the latest limited exposure can go the turnaround time for a change drops the and avoid production the corein ourflow. tier in less 400 disrupting servers user web turnaround time for a change drops dramatically. dramatically. than 30 mtrifiro (across 3 data centers). seconds Andrew Bayer Andrew Bayer Toni Schneider 10/22/13 © All rights reserved 34
  • 35. Continues Deployment “Let’s Leave Something for next time…” 10/22/13 © All rights reserved 35

Editor's Notes

  • #4: Expand project mode in VB slide; expand on Playtech
  • #15: A mix-n-match from Scrum and Kanban Continuous sprint Backlog ordered daily Daily Scrums Focus on minimizing Work in Progress Report is based on Monthly retrospectives to improve throughput