Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS...

45
Put Your TestOps Shoes on! Improving Quality by Process Automation Dawid Pacia

Transcript of Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS...

Page 1: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Put Your TestOps Shoes on!

Improving Quality by Process Automation

DawidPacia

Page 2: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

It should be smart sentence here. But I couldn’t find any...

Dawid Pacia

Page 3: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

THE TRADITIONAL MODEL OF SOFTWARE TESTING

TESTS

QUALITY ASSESSMENT

RUN TESTS

SYSTEM UNDER TEST

ANALYSISPASS? FAIL?

by Seth Eliot

TEST RESULTS

Page 4: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

➜ Facebook users send on average over 31 million messages and view 2.77 million videos every minute

➜ Twitter users generate 347,222 Tweets each minute – or 21 million Tweets per hour

➜ Google provides search results for over 1 billion search queries each day

➜ Amazon deploys new software to production every 11.6 seconds.

The times have changed...

Page 5: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Let’s start with the firstset of slides

1.TRANSITION

HEADLINE

Page 6: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

EXPOSURE CONTROL

TEST CASES AND MONITORS

THE TESTOPS MODEL OF SOFTWARE TESTING

EXPOSED USERS AND SYSTEMS

SYSTEM UNDER TEST

PRODUCTION USERS AND SYSTEMS

ACTIVE MONITORS

ANALYSIS

QUALITY ASSESSMENT

PRODUCTION USAGE

TELEMETRY DATA

KPIs / PATTERNS

by Seth Eliot

Page 7: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

CONTINUOUS BUILD

CODE CHANGE / FIX

SCM(Git, Svn, Bazaar ;)

NEW BUILD(Ant, Maven, Gradle, etc.)

CI TOOLS(Jenkins, Bamboo, Travis CI, TeamCity, Ansible,

etc.)

CONTINUOUS VALIDATION

TEST ENVIRONMENTS

BUILD

DEPLOYMENT

TEST RESULTS

CONTINUOUS DELIVERY

PRODUCTIONENVIRONMENTS

CONTINUOUS MONITORING

MONITORING(Kibana, Grafana,

Scalyr, Cacti, Amazon

CloudWatch, etc.)

SYNTHETIC / SEMANTIC

MONITORING

Page 8: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

➜ Synthetic monitoring (or semantic monitoring) runs a subset of an application's automated tests against the live production system on a regular basis.

Continuous Monitoring

Page 9: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

➜ Integration with DevOps infrastructure

➜ Which tests to run and when➜ No need to stand up the whole

system to test

TestOps: What Does This Mean?

Page 10: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

WHY SHOULD WE CARE SO

MUCH?

Page 11: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

FAKAPY● Zgłaszanie błędu w komentarzy w Jirze - 500 klientom nie działało menu

nawigacyjne po aplikacji● Dobrze zorganizowane glow w Gicie - pull req, praca miedzy zespolami● Szkiletet ● Jak pisac kod (python)● Nazwy obiektow!● Re-uzywalnosc kodu● Korzystanie z paczek● Pop● Pliki readme● Jak unikac zlych praktyk● Konwencja komitowanie (a nie ‘fixed small issue’)● Konsekwencja pracy przez 2-mc na wlasnym branchu● Dlaczego nie tylko produkt powinien byc testowany, ale również same

testy

Page 12: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

BUT IN A WORLD OF FALSE...

False Negatives

False Positives

The test is marked as Passed, when the functionality is

working

The test is marked as Failed, when the functionality is not

working.

Page 13: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

False Negatives

False Positives

...YOU CAN ENCOUNTER SOMETHING WORSE

Flaky Tests

TESTS FAILING INTERMITTENTLY

Page 14: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

RIS

KV

ALU

E1) CONTINUOUS: VALUE vs RISK

PLAN CODE BUILD TEST RELEASE DEPLOY OPERATE

COLLABORATION

AGILE DEVELOPMENT

CONTINUOUS INTEGRATION

CONTINUOUS DELIVERY

DEVOPS

Page 15: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Dawid Pacia

“More automatically, more continuously,

more risky...”

Page 16: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

2) Pains of “high tech” companies

➜ Lack of time:

○ No TDD/BDD/XP, lack of Unit tests

○ No documentation

○ Not enough testers!

➜ Event-driven development (CES, IoT World, etc.)

➜ Chaotic environment with constantly changing

priorities (on a daily basis)

Page 17: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

3) “PICK TWO” → NEVERENDING DILEMMA...

Page 18: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Speed vs Quality Speed vs Quality → Speed and Quality → Quick Wins

Page 19: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Quick-win 1

Quick/Ad hoc manual testing

Page 20: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

TEST MANAGEMENT

PROJECT MANAGEMENT

COMMUNICATION & NOTIFICATIONS

CI/CD

CRASH REPORTING & LOGGING

+

Toolset and collaboration

Page 21: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Quick win 1

Quick/Ad hoc manual testing

Page 22: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 23: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

TESTS BUCKET

TEST SUITES

TEST CASES

(aka. TEST CYCLE !?)

FW

BEiOS

ANDROID

SUCCESSFUL PRODUCT!PRODUCT &

COMPONENTS

Page 24: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

TESTS BUCKET

TEST SUITES

TEST CASES

(aka. TEST CYCLE !?)

FW

BEiOS

ANDROID

Page 25: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

IL TUQ A Y

TU A

FW

BEiOS

ANDROID

SUCCESSFUL PRODUCT!PRODUCT &

COMPONENTS

Page 26: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 27: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 28: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Quick win 2

Project workflow management

Page 29: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Project issue/ticket workflow

Page 30: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Project issue/ticket workflow

Tests

CODE CHANGE / FIX

Git

NEW BUILD

Jenkins

JIRA ORGANIZER

○○○

Page 31: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Project issue/ticket workflow

CLICK

Page 32: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Quick win 3

Mobile app handling

Page 33: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 34: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 35: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Number of Occurrences and the number of Devices (treated as Users) for a chosen periodWe have following monthly stats:iOS = 44.4 WAUAndroid = 12.3k WAU

99.5% crash free sessions is a bottom line that we shouldn't exceed. Let's approximate it:➜ iOS: Less than 44.4k * 0.005 = 222 crashed unique devices per week➜ Android: Less than 12.3k * 0.005 = 61.5 crashed unique devices per week

Crashed devices per week (CDpW) as a threshold between Critical and Blocker:➜ > CDpW = Blocker➜ > 50% * CDpW = Critical➜ > 20% * CDpW = High➜ < 20% * CDpW = Middle

One more condition as Blocker is: Occurences/Devices per week > 20 (i.e. an average customer experiences this crash 3 times each day).

Lets calculate statistics

Page 36: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Android

Jenkins CI

iOS FW

Elasticsearch

Logstash

Jobs

Kibana SlackJIRA

Crashlytics

Logs

Data

Page 37: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 38: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Don’t forget about resolved bugs! They are like your wife or girlfriend -

they love to bring back the same problem after a long time...

Dawid Pacia

Page 39: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 40: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 41: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 42: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

But...what is developer’s role in

TestOps approach?

Page 43: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS
Page 44: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

➜ TestOps provides a unique aspect for

automation and quality assurance

➜ It plays a vital role to integrate the automated

testing with Dev team for CI

➜ Don’t focus on tools! Focus on problem solving

➜ Invest your time in continuous improvement

➜ Incorporate “quick-wins” approach into your

everyday work

➜ Explore and investigate!

Takeaways

Page 45: Pacia Shoes on! Dawid Improving Quality by Process Automation - … · 2020-01-28 · CI TOOLS (Jenkins, Bamboo, Travis CI, TeamCity, Ansible, etc.) CONTINUOUS VALIDATION TEST ENVIRONMENTS

Thanks!Any questions?You can find me at:

● / paciadawid

● / @dawid_py