SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
December 6, 2014 
Andrii Dzynia 
Road Manager to Continuous Delivery 
@adzynia 
Quality Built In
2 
Spotify brings you the right music for 
every moment! 
Started in 2006 (in Sweden) 
Now 1500+ employees, 500+ engineers 
Over 30 million songs available 
Over 20,000 songs added every day 
5 development centres across the globe
What is Quality? 
3
4 
Quality is a “state” …. 
when expectations matches the reality. 
Not just software defects, but stakeholders expectations as well
Why Quality is Important? 
5
Cost of Bug/Change 
6
What is a way to build high 
quality product? 
7
8 Do not release until it’s perfect
9 
No one is perfect.
Example 
Implementing internal back office system
11 
Step 1 - Prototyping phase 
Technical spike investigation 
Hacking different Back-End solutions 
Ad-hoc design discussions 
Stub implementation of Front End 
Getting early user’s feedback on Front End
12 WebApp 
with 
stubs 
Sketches 
on 
whiteboard 
Whatever works 
to get end-user 
understanding
13 
Step 2 - Setting delivery pipeline 
Add more unit tests 
Add more integration tests 
Add more functional tests 
Automate deployment configuration 
Add dashboards and system monitoring 
Clarifying End User Needs
14 
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
15 
Step 3 - Connecting the dots 
Connect back-end and front-end parts 
into 
End-2-End system 
Get user’s feedback and iterate
16 
Keep releasing small, usable, incremental pieces
17 
What is under the hood ?
18
Organic Structure 
19 
@joakimsunden Scaled Agile @ Spotify
20 
Test Automation Pyramid
21 
How to avoid Ice-Cream effect?
22 
Be strict with this rule.
Testable micro-services architecture 23 
Unit Tests 
Component Tests 
Functional 
Tests 
Integration Tests 
System/End-2-End Tests 
Unit Tests 
Component Tests 
Functional 
Tests 
JS Unit Tests 
JS Component Tests 
UI 
Functional 
Tests
24 
Unit Tests 
Check logic of minimal code snippet 
with no or mocked dependencies 
https://github.com/mockito/mockito 
https://github.com/junit-team/junit
25 
Component Tests 
Very much like unit tests but emulating 
external components 
e.g. cassandra database 
https://github.com/jsevellec/cassandra-unit
26 
Fake back-end for client apps 
Client App 
Fake Back-End Server 
Spotify Back End 
https://github.com/azagniotov/stubby4j 
https://github.com/dreamhead/moco 
http://jsonstub.com
27 
Integration Tests 
Check an integration between components 
You do not need whole system to check the integration 
https://github.com/spotify/helios/blob/master/docs/testing_framework.md
28 
Create Test Environment ‘on the fly’ 
@docker containers 
https://www.docker.com
29 
Functional Tests 
Check services API behaviour 
or 
End user use cases 
http://hc.apache.org 
http://seleniumhq.org
30 
Model Based Testing 
http://graphwalker.org
32 
Code Review 
& 
Human Testing 
on 
Pull Request
Delivery Pipeline 
33
34 
Was not covered during this talk … 
Load Testing 
Gradual Rollouts 
A/B Testing 
Feature Toggles 
Monitoring/Alerting 
Information Radiators 
… but stay tuned
35 
Test Engineering Roles and Responsibilities 
Technical Test Engineer Test Engineer 
! = Test Automator ! = Manual Tester 
~ Software Engineer in Test 
~ Context Driven Tester
36 
Technical Test Engineer 
Work as a software developer 
Advocate testability of the product 
Argue on software design with software engineers 
Help with building new/injecting existed development tools
37 
Development Productivity Tools 
e.g. cli control over amazon cloud http://dashing.io 
Docker orchestration 
https://github.com/spotify/helios 
Cassandra Unit 
https://github.com/jsevellec/cassandra-unit 
Spoticloud 
Jenkins job-dsl-plugin 
https://github.com/mikaellanger/job-dsl-plugin 
Dashboards
38 
Test Engineer 
Knows business domain 
Focused on exploring the product 
Free to use any programming language to test specific use case 
Free to use any programming language to automate his work
39 
Mind Map as a Tool 
https://www.mindmup.com 
Product tree 
Scenarios 
Playbooks 
Checklists 
Session notes
Quality Engineers 
40 
@jamesmarcusbach calls us Test Jumpers 
TEST JUMPERS: ONE VISION OF AGILE TESTING 
http://www.satisfice.com/blog/archives/1372 
“RESPONSIBLE TESTER” 
http://www.satisfice.com/blog/archives/1364 
OMEGA TESTER 
http://www.satisfice.com/articles/omega_tester.pdf
41 
Any other ways 
to improve 
quality?
42 
Break Uncertainty 
test ideas during healthy 
discussions 
test requirements via end 
users collaboration 
discuss system design and 
conner cases earlier in the 
planing/design meetings 
define definition of done
43 
Use Google Docs collaboration for finding group consensus 
But have responsible person to figure out what consensus means in each case
Social Programming 
44 
write “checks” during implementation 
shape your thoughts via pair discussions 
peer review before merging to master
45 
Not mentioned Engineering Practices 
User Stories 
Planning meeting 
Standup meeting 
Open workspace 
TDD 
Refactoring 
etc…… 
http://www.extremeprogramming.org/rules.html
Employee Early Builds Testing 
46
47 
Hackathons 
One week to do whatever 
you want 
Do it alone or with a team 
Crazy ideas comes out
48 
QA engineer at Spotify 
http://continuousdelivery.com/2014/02/visualizations-of-continuous-delivery/
How to check you are on 
a right path ? 
49
That is easy to spot 50
51 Ready for a journey? 
Make Quality explicit 
Find Quality promoters 
Define your way of Quality 
improvements 
Set right Quality constraints 
Share results as early as possible 
Keep looking further quality improvements 
Probably you will never end :)
52 
@adzynia 
adzynia@spotify.com 
Spotify Engineering Culture 
part 1 
part 2
and … 
Stop saying QA 
when you mean Testing 
Want to join the band? 
Check out http://www.spotify.com/jobs or @Spotifyjobs for more information

Más contenido relacionado

La actualidad más candente

Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practices
nickokiss
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
Naresh Jain
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
tharindakasun
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Intetics
 

La actualidad más candente (20)

QA Best Practices in Agile World_new
QA Best Practices in Agile World_newQA Best Practices in Agile World_new
QA Best Practices in Agile World_new
 
Unit testing best practices
Unit testing best practicesUnit testing best practices
Unit testing best practices
 
Guide to Agile testing
Guide to Agile testingGuide to Agile testing
Guide to Agile testing
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian Karl
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
Inverting The Testing Pyramid
Inverting The Testing PyramidInverting The Testing Pyramid
Inverting The Testing Pyramid
 
What is Agile Testing? Edureka
What is Agile Testing? EdurekaWhat is Agile Testing? Edureka
What is Agile Testing? Edureka
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
 
Agile testing
Agile testingAgile testing
Agile testing
 
4 Major Advantages of API Testing
4 Major Advantages of API Testing4 Major Advantages of API Testing
4 Major Advantages of API Testing
 

Similar a Quality Built In @ Spotify

Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
GoIT
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practices
Skills Matter
 
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
Anna Russo
 

Similar a Quality Built In @ Spotify (20)

Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
Встреча Quality built in @Spotify от Андрея Дзыни : как стать лучшим тестиров...
 
Testing practicies not only in scala
Testing practicies not only in scalaTesting practicies not only in scala
Testing practicies not only in scala
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Leveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver ExampleLeveraging Open Source Automation: A Selenium WebDriver Example
Leveraging Open Source Automation: A Selenium WebDriver Example
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Large scale agile development practices
Large scale agile development practicesLarge scale agile development practices
Large scale agile development practices
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loop
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
 
Continuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applicationsContinuous integration and delivery for java based web applications
Continuous integration and delivery for java based web applications
 
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STARWEST 2010 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...[ENGLISH] TDC 2015 - PHP  Trail - Tests and PHP Continuous Integration Enviro...
[ENGLISH] TDC 2015 - PHP Trail - Tests and PHP Continuous Integration Enviro...
 
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
STAREAST 2011 - 7 Steps To Improving Software Quality using Microsoft Test Ma...
 
Gherkin /BDD intro
Gherkin /BDD introGherkin /BDD intro
Gherkin /BDD intro
 

Más de Andrii Dzynia

What does it mean to be a test engineer?
What does it mean to be a test engineer?What does it mean to be a test engineer?
What does it mean to be a test engineer?
Andrii Dzynia
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
Andrii Dzynia
 
How to Manage Testing in Dynamic World
How to Manage Testing in Dynamic WorldHow to Manage Testing in Dynamic World
How to Manage Testing in Dynamic World
Andrii Dzynia
 
10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch
Andrii Dzynia
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
Andrii Dzynia
 
Что такое Exploratory Testing?
Что такое Exploratory Testing?Что такое Exploratory Testing?
Что такое Exploratory Testing?
Andrii Dzynia
 
Software testing 2.0
Software testing 2.0Software testing 2.0
Software testing 2.0
Andrii Dzynia
 
Testing Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing HeuristicsTesting Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing Heuristics
Andrii Dzynia
 

Más de Andrii Dzynia (20)

Continuous Delivery as you want it
Continuous Delivery as you want itContinuous Delivery as you want it
Continuous Delivery as you want it
 
Test coaching your agile team
Test coaching your agile teamTest coaching your agile team
Test coaching your agile team
 
Testing at Spotify
Testing at SpotifyTesting at Spotify
Testing at Spotify
 
What does it mean to be a test engineer?
What does it mean to be a test engineer?What does it mean to be a test engineer?
What does it mean to be a test engineer?
 
Exploring your unit tests
Exploring your unit testsExploring your unit tests
Exploring your unit tests
 
Hermetic environment for your functional tests
Hermetic environment for your functional testsHermetic environment for your functional tests
Hermetic environment for your functional tests
 
Applying testing mindset to software development
Applying testing mindset to software developmentApplying testing mindset to software development
Applying testing mindset to software development
 
Appium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriverAppium Mobile Test Automation like WebDriver
Appium Mobile Test Automation like WebDriver
 
How to Manage Testing in Dynamic World
How to Manage Testing in Dynamic WorldHow to Manage Testing in Dynamic World
How to Manage Testing in Dynamic World
 
ExtJS WebDriver
ExtJS WebDriverExtJS WebDriver
ExtJS WebDriver
 
10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch10 правил agile тестировщика IT-Brunch
10 правил agile тестировщика IT-Brunch
 
Working Software Over Comprehensive Documentation
Working Software Over Comprehensive DocumentationWorking Software Over Comprehensive Documentation
Working Software Over Comprehensive Documentation
 
«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебя«Самоорганизуй» себя, пока не «самоорганизовали» тебя
«Самоорганизуй» себя, пока не «самоорганизовали» тебя
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
10 правил Agile тестировщика
10 правил Agile тестировщика10 правил Agile тестировщика
10 правил Agile тестировщика
 
Что такое Exploratory Testing?
Что такое Exploratory Testing?Что такое Exploratory Testing?
Что такое Exploratory Testing?
 
Software testing 2.0
Software testing 2.0Software testing 2.0
Software testing 2.0
 
Тестировщики Vs Программисты
Тестировщики Vs ПрограммистыТестировщики Vs Программисты
Тестировщики Vs Программисты
 
Testing Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing HeuristicsTesting Dojo Kyiv - Testing Heuristics
Testing Dojo Kyiv - Testing Heuristics
 

Último

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 

Último (20)

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICSUNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
UNIT-IFLUID PROPERTIES & FLOW CHARACTERISTICS
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 

Quality Built In @ Spotify

  • 1. December 6, 2014 Andrii Dzynia Road Manager to Continuous Delivery @adzynia Quality Built In
  • 2. 2 Spotify brings you the right music for every moment! Started in 2006 (in Sweden) Now 1500+ employees, 500+ engineers Over 30 million songs available Over 20,000 songs added every day 5 development centres across the globe
  • 4. 4 Quality is a “state” …. when expectations matches the reality. Not just software defects, but stakeholders expectations as well
  • 5. Why Quality is Important? 5
  • 7. What is a way to build high quality product? 7
  • 8. 8 Do not release until it’s perfect
  • 9. 9 No one is perfect.
  • 10. Example Implementing internal back office system
  • 11. 11 Step 1 - Prototyping phase Technical spike investigation Hacking different Back-End solutions Ad-hoc design discussions Stub implementation of Front End Getting early user’s feedback on Front End
  • 12. 12 WebApp with stubs Sketches on whiteboard Whatever works to get end-user understanding
  • 13. 13 Step 2 - Setting delivery pipeline Add more unit tests Add more integration tests Add more functional tests Automate deployment configuration Add dashboards and system monitoring Clarifying End User Needs
  • 15. 15 Step 3 - Connecting the dots Connect back-end and front-end parts into End-2-End system Get user’s feedback and iterate
  • 16. 16 Keep releasing small, usable, incremental pieces
  • 17. 17 What is under the hood ?
  • 18. 18
  • 19. Organic Structure 19 @joakimsunden Scaled Agile @ Spotify
  • 21. 21 How to avoid Ice-Cream effect?
  • 22. 22 Be strict with this rule.
  • 23. Testable micro-services architecture 23 Unit Tests Component Tests Functional Tests Integration Tests System/End-2-End Tests Unit Tests Component Tests Functional Tests JS Unit Tests JS Component Tests UI Functional Tests
  • 24. 24 Unit Tests Check logic of minimal code snippet with no or mocked dependencies https://github.com/mockito/mockito https://github.com/junit-team/junit
  • 25. 25 Component Tests Very much like unit tests but emulating external components e.g. cassandra database https://github.com/jsevellec/cassandra-unit
  • 26. 26 Fake back-end for client apps Client App Fake Back-End Server Spotify Back End https://github.com/azagniotov/stubby4j https://github.com/dreamhead/moco http://jsonstub.com
  • 27. 27 Integration Tests Check an integration between components You do not need whole system to check the integration https://github.com/spotify/helios/blob/master/docs/testing_framework.md
  • 28. 28 Create Test Environment ‘on the fly’ @docker containers https://www.docker.com
  • 29. 29 Functional Tests Check services API behaviour or End user use cases http://hc.apache.org http://seleniumhq.org
  • 30. 30 Model Based Testing http://graphwalker.org
  • 31.
  • 32. 32 Code Review & Human Testing on Pull Request
  • 34. 34 Was not covered during this talk … Load Testing Gradual Rollouts A/B Testing Feature Toggles Monitoring/Alerting Information Radiators … but stay tuned
  • 35. 35 Test Engineering Roles and Responsibilities Technical Test Engineer Test Engineer ! = Test Automator ! = Manual Tester ~ Software Engineer in Test ~ Context Driven Tester
  • 36. 36 Technical Test Engineer Work as a software developer Advocate testability of the product Argue on software design with software engineers Help with building new/injecting existed development tools
  • 37. 37 Development Productivity Tools e.g. cli control over amazon cloud http://dashing.io Docker orchestration https://github.com/spotify/helios Cassandra Unit https://github.com/jsevellec/cassandra-unit Spoticloud Jenkins job-dsl-plugin https://github.com/mikaellanger/job-dsl-plugin Dashboards
  • 38. 38 Test Engineer Knows business domain Focused on exploring the product Free to use any programming language to test specific use case Free to use any programming language to automate his work
  • 39. 39 Mind Map as a Tool https://www.mindmup.com Product tree Scenarios Playbooks Checklists Session notes
  • 40. Quality Engineers 40 @jamesmarcusbach calls us Test Jumpers TEST JUMPERS: ONE VISION OF AGILE TESTING http://www.satisfice.com/blog/archives/1372 “RESPONSIBLE TESTER” http://www.satisfice.com/blog/archives/1364 OMEGA TESTER http://www.satisfice.com/articles/omega_tester.pdf
  • 41. 41 Any other ways to improve quality?
  • 42. 42 Break Uncertainty test ideas during healthy discussions test requirements via end users collaboration discuss system design and conner cases earlier in the planing/design meetings define definition of done
  • 43. 43 Use Google Docs collaboration for finding group consensus But have responsible person to figure out what consensus means in each case
  • 44. Social Programming 44 write “checks” during implementation shape your thoughts via pair discussions peer review before merging to master
  • 45. 45 Not mentioned Engineering Practices User Stories Planning meeting Standup meeting Open workspace TDD Refactoring etc…… http://www.extremeprogramming.org/rules.html
  • 46. Employee Early Builds Testing 46
  • 47. 47 Hackathons One week to do whatever you want Do it alone or with a team Crazy ideas comes out
  • 48. 48 QA engineer at Spotify http://continuousdelivery.com/2014/02/visualizations-of-continuous-delivery/
  • 49. How to check you are on a right path ? 49
  • 50. That is easy to spot 50
  • 51. 51 Ready for a journey? Make Quality explicit Find Quality promoters Define your way of Quality improvements Set right Quality constraints Share results as early as possible Keep looking further quality improvements Probably you will never end :)
  • 52. 52 @adzynia adzynia@spotify.com Spotify Engineering Culture part 1 part 2
  • 53. and … Stop saying QA when you mean Testing Want to join the band? Check out http://www.spotify.com/jobs or @Spotifyjobs for more information