Top Banner
Kvalitetssikring i et high performance team DSTB Årsmøde, 2015
80

Kvalitetssikring i et highperformance team

Jan 25, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kvalitetssikring i et highperformance team

Kvalitetssikring i et high performance team

DSTB Årsmøde, 2015

Page 2: Kvalitetssikring i et highperformance team

ebay Classifieds, Denmark

• DBA, BilBasen og BilInfo

• Mobiludvikling

– DBA og BilBasen

– iPhone, iPad og Android

2

Page 3: Kvalitetssikring i et highperformance team

3

Page 4: Kvalitetssikring i et highperformance team

Organisering

4

Page 5: Kvalitetssikring i et highperformance team

Organisering

• 3(,5) iOS udviklere

• 1 arkitekt (DBA platform)

• 1 backend

• 1 QA ekspert

4

Page 6: Kvalitetssikring i et highperformance team

Organisering

• 3(,5) iOS udviklere

• 1 arkitekt (DBA platform)

• 1 backend

• 1 QA ekspert

4

• Produktejere

• UX/Design

• Andre interessenter

Page 7: Kvalitetssikring i et highperformance team

High performance team

5

Page 8: Kvalitetssikring i et highperformance team

High performance team

• Åben og ærlig kommunikation

5

Page 9: Kvalitetssikring i et highperformance team

High performance team

• Åben og ærlig kommunikation

• Samarbejde og innovation/kreativitet

5

Page 10: Kvalitetssikring i et highperformance team

High performance team

• Åben og ærlig kommunikation

• Samarbejde og innovation/kreativitet

• Samme værdier

– Høj faglig stolthed

– Respekt for hinanden

5

Page 11: Kvalitetssikring i et highperformance team

High performance team

• Åben og ærlig kommunikation

• Samarbejde og innovation/kreativitet

• Samme værdier

– Høj faglig stolthed

– Respekt for hinanden

• Leverer

– Til tiden / forudsigeligt

– Konstant høj kvalitet

5

Page 12: Kvalitetssikring i et highperformance team

iOS releases 2014

6

5.2.1

3.53.3.1

3.2.3

3.2.23.1.1

JAN

DBA versioner

BilBasen versioner

FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC

3.0.1 3.1 3.2.1 3.4 3.4.2

5.0.3

3.2 3.3 3.4.1

5.0.4 5.0.5 5.0.6 5.1 5.2 5.2.2

3.5.13.5.2 3.6

4.0

5.2.3

5.3

5.3.1

Page 13: Kvalitetssikring i et highperformance team

Fra en udviklers perspektiv…

7

Page 14: Kvalitetssikring i et highperformance team

8

Page 15: Kvalitetssikring i et highperformance team

Kommunikation

9

Page 16: Kvalitetssikring i et highperformance team

Kommunikation

• Åben og ærlig

9

Page 17: Kvalitetssikring i et highperformance team

Kommunikation

• Åben og ærlig

• Respekt - både fagligt og personligt

9

Page 18: Kvalitetssikring i et highperformance team

Kommunikation

• Åben og ærlig

• Respekt - både fagligt og personligt

• Mundtligt fremfor skriftligt

– Hvor mange (nær)læser de lange mails, (forældede)

dokumenter m.v.?

9

Page 19: Kvalitetssikring i et highperformance team

Kommunikation

• Åben og ærlig

• Respekt - både fagligt og personligt

• Mundtligt fremfor skriftligt

– Hvor mange (nær)læser de lange mails, (forældede)

dokumenter m.v.?

• Slack (skriftligt) har afløst mange mails

9

Page 20: Kvalitetssikring i et highperformance team

Alle bør skal teste

10

Page 21: Kvalitetssikring i et highperformance team

Alle bør skal teste

10

Page 22: Kvalitetssikring i et highperformance team

Alle bør skal teste

10

Page 23: Kvalitetssikring i et highperformance team

Alle bør skal teste

• Team / holdånd

10

Page 24: Kvalitetssikring i et highperformance team

Alle bør skal teste

• Team / holdånd

• Udviklere og Test eksperter tænker forskelligt

10

Page 25: Kvalitetssikring i et highperformance team

Alle bør skal teste

• Team / holdånd

• Udviklere og Test eksperter tænker forskelligt

• Udviklere tester andres kode

– Ikke sin egen

– Øger forståelsen for kvalitetssikring

10

Page 26: Kvalitetssikring i et highperformance team

Alle bør skal teste

• Team / holdånd

• Udviklere og Test eksperter tænker forskelligt

• Udviklere tester andres kode

– Ikke sin egen

– Øger forståelsen for kvalitetssikring

• Test eksperter tager sig af største risiko områder

10

Page 27: Kvalitetssikring i et highperformance team

Test automatisering

En væsentlig forudsætning for at vi:

11

Page 28: Kvalitetssikring i et highperformance team

Test automatisering

En væsentlig forudsætning for at vi:

• Leverer forudsigeligt

11

Page 29: Kvalitetssikring i et highperformance team

Test automatisering

En væsentlig forudsætning for at vi:

• Leverer forudsigeligt

• Kan arbejde kontinuerligt med at refactor / rydde

op i teknisk gæld

11

Page 30: Kvalitetssikring i et highperformance team

Test automatisering

En væsentlig forudsætning for at vi:

• Leverer forudsigeligt

• Kan arbejde kontinuerligt med at refactor / rydde

op i teknisk gæld

• Ikke bruger alt vores tid på trivielle gentagelser

11

Page 31: Kvalitetssikring i et highperformance team

Test automatisering

En væsentlig forudsætning for at vi:

• Leverer forudsigeligt

• Kan arbejde kontinuerligt med at refactor / rydde

op i teknisk gæld

• Ikke bruger alt vores tid på trivielle gentagelser

• Har levende dokumentation

11

Page 32: Kvalitetssikring i et highperformance team

Teknikken skal være i orden

Page 33: Kvalitetssikring i et highperformance team

Feature branches

13

Page 34: Kvalitetssikring i et highperformance team

Jenkins jobs pr. branch

14

Page 35: Kvalitetssikring i et highperformance team

Jenkins jobs pr. branch

14

Page 36: Kvalitetssikring i et highperformance team

Jenkins jobs pr. branch

14

Page 37: Kvalitetssikring i et highperformance team

Stabile tests

15

Page 38: Kvalitetssikring i et highperformance team

Stabile tests

• Rerun fejlende tests

15

Page 39: Kvalitetssikring i et highperformance team

Stabile tests

• Rerun fejlende tests

• Løbende vedligehold / optimering

– Timing issues

– Test data

– Nye OS versioner

15

Page 40: Kvalitetssikring i et highperformance team

Stabile tests

• Rerun fejlende tests

• Løbende vedligehold / optimering

– Timing issues

– Test data

– Nye OS versioner

• Daglig buildserver ansvarlig

– Fælles ansvar

15

Page 41: Kvalitetssikring i et highperformance team

Buildserver vs. TestCloud

• Build server afvikler kun tests på iOS simulator

– Android på vej (måske på et device)

• TestCloud tester på rigtige devices (og mange af dem)

16

Page 42: Kvalitetssikring i et highperformance team

Test Cloud

17

Page 43: Kvalitetssikring i et highperformance team

Test Cloud

17

Page 44: Kvalitetssikring i et highperformance team

Test Cloud

17

Page 45: Kvalitetssikring i et highperformance team
Page 46: Kvalitetssikring i et highperformance team

Tillid til QA ekspert

19

Page 47: Kvalitetssikring i et highperformance team

Tillid til QA ekspert

• Overblik over hvad (og hvor meget) der skal testes

– Risikovurdering

– Styrer evt. “papirnusseri” :-)

19

Page 48: Kvalitetssikring i et highperformance team

Tillid til QA ekspert

• Overblik over hvad (og hvor meget) der skal testes

– Risikovurdering

– Styrer evt. “papirnusseri” :-)

• Grundig kendskab til forretningsregler

19

Page 49: Kvalitetssikring i et highperformance team

Tillid til QA ekspert

• Overblik over hvad (og hvor meget) der skal testes

– Risikovurdering

– Styrer evt. “papirnusseri” :-)

• Grundig kendskab til forretningsregler

• Bruger (meget) tid på exploratory tests

– Finder det andre (inkl. automatisering) har overset

– Lange brugs-sessioner

19

Page 50: Kvalitetssikring i et highperformance team

QA har tillid til automatisering

20

Page 51: Kvalitetssikring i et highperformance team

QA har tillid til automatisering

20

Feature

Scenario

Step

Page object

iOS Android

Page 52: Kvalitetssikring i et highperformance team

QA har tillid til automatisering

20

Feature

Scenario

Step

Page object

iOS Android

Page 53: Kvalitetssikring i et highperformance team

QA har tillid til automatisering

20

Feature

Scenario

Step

Page object

iOS Android

QA Review

Scenario: I can only send a valid report of a listing once Given I am logged in as "UniqueSeller" using quick login And I am on the VIP for "iPhone" When I go to report listing And I try to send the report Then I see the validation error for "Årsag, Beskriv din anmeldelse"

When I close the system message view And I select report listing cause "Annoncen er ulovlig" And I set report description text to "Den er billigere end min!" And I send the report Then I see the report listing VIP

When I close the system message view And I touch the report listing button Then I am informed that I already has reported the listing

Page 54: Kvalitetssikring i et highperformance team

QA har tillid til automatisering

20

Feature

Scenario

Step

Page object

iOS Android

QA Review

Dev Review

def assert_listing_already_reported_by_user wait_for_no_page_activity_indicator #TODO: Not sure how to verify this...maybe we'll do it laterend

Page 55: Kvalitetssikring i et highperformance team

Hvad dækkes af automatiseringen?

21

Page 56: Kvalitetssikring i et highperformance team

Hvad dækkes af automatiseringen?

• Brug et værktøj der også fungerer som dokumentation

21

Page 57: Kvalitetssikring i et highperformance team

Hvad dækkes af automatiseringen?

• Brug et værktøj der også fungerer som dokumentation

• Brug code-coverage

– Fokuser ikke kun på % tallene

21

Page 58: Kvalitetssikring i et highperformance team

Hvad dækkes af automatiseringen?

• Brug et værktøj der også fungerer som dokumentation

• Brug code-coverage

– Fokuser ikke kun på % tallene

21

Page 59: Kvalitetssikring i et highperformance team

Bedst udnyttelse af kompetencer

22

Page 60: Kvalitetssikring i et highperformance team

Bedst udnyttelse af kompetencer

• QA finder ud af at genskabe crashes fra logs

– Udvikler hjælper med at forstå stacktrace og pege i den rigtige retning

22

Page 61: Kvalitetssikring i et highperformance team

Bedst udnyttelse af kompetencer

• QA finder ud af at genskabe crashes fra logs

– Udvikler hjælper med at forstå stacktrace og pege i den rigtige retning

• Udnyt test automatisering til ad-hoc fejlsøgning

– Eksempel: Manglende billeder i BilBasens app

22

Page 62: Kvalitetssikring i et highperformance team

Fejl i produktion

23

Page 63: Kvalitetssikring i et highperformance team

Fejl i produktion

• Overvåg kvaliteten

– Team ansvar

23

Page 64: Kvalitetssikring i et highperformance team

Fejl i produktion

• Overvåg kvaliteten

– Team ansvar

• Det vil altid kunne ske

– Uanset hvor meget/længe der testes

23

Page 65: Kvalitetssikring i et highperformance team

Fejl i produktion

• Overvåg kvaliteten

– Team ansvar

• Det vil altid kunne ske

– Uanset hvor meget/længe der testes

• Reager hurtigt

– Kan det fikses på serveren?

– Gør en ny version klar til upload

23

Page 66: Kvalitetssikring i et highperformance team

Fejl i produktion

• Overvåg kvaliteten

– Team ansvar

• Det vil altid kunne ske

– Uanset hvor meget/længe der testes

• Reager hurtigt

– Kan det fikses på serveren?

– Gør en ny version klar til upload

• Tving evt. brugerne til at opdatere

23

Page 67: Kvalitetssikring i et highperformance team

Fejl i produktion - lær af det

24

Page 68: Kvalitetssikring i et highperformance team

Fejl i produktion - lær af det

24

Page 69: Kvalitetssikring i et highperformance team

Fejl i produktion - lær af det

24

Page 70: Kvalitetssikring i et highperformance team

Fejl i produktion - lær af det

24

Page 71: Kvalitetssikring i et highperformance team

Minimer risici

• Undgå “Big bang” releases

– Start f.eks. med ny infrastruktur i et lille hjørne

• Continuous deployment (web) / Hyppige releases (mobil)

• Feature toggles

– Evt. kun åbne for X% af brugerne først

25

Page 72: Kvalitetssikring i et highperformance team

Gør automatisering virkelig en forskel?

26

Page 73: Kvalitetssikring i et highperformance team

Gør automatisering virkelig en forskel?

26

JA

Page 74: Kvalitetssikring i et highperformance team

Gør automatisering virkelig en forskel?

• Fanger fejl hurtigt

– Husk at fejre det

26

Page 75: Kvalitetssikring i et highperformance team

Gør automatisering virkelig en forskel?

• Fanger fejl hurtigt

– Husk at fejre det

• Giver en herlig følelse som udvikler

– Modig og tryg

26

Undgå dette fænomen

Page 76: Kvalitetssikring i et highperformance team

Gør automatisering virkelig en forskel?

• Fanger fejl hurtigt

– Husk at fejre det

• Giver en herlig følelse som udvikler

– Modig og tryg

• Kan ikke stå alene

– Manuel exploratory tests

26

Undgå dette fænomen

Page 77: Kvalitetssikring i et highperformance team

Opsummering

27

Page 78: Kvalitetssikring i et highperformance team

Opsummering

• Alle på et team hjælper til med kvalitetssikring – Accepter at vi har forskellige måder at arbejde på – Tekniske udfordringer er sjove for udviklere – Udnyt alles kompetencer bedst muligt

27

Page 79: Kvalitetssikring i et highperformance team

Opsummering

• Alle på et team hjælper til med kvalitetssikring – Accepter at vi har forskellige måder at arbejde på – Tekniske udfordringer er sjove for udviklere – Udnyt alles kompetencer bedst muligt

27

Page 80: Kvalitetssikring i et highperformance team

Opsummering

• Alle på et team hjælper til med kvalitetssikring – Accepter at vi har forskellige måder at arbejde på – Tekniske udfordringer er sjove for udviklere – Udnyt alles kompetencer bedst muligt

• Automatiseret tests er nødvendigt – Det giver bedre kode (mod til at refactor) – Det skal ikke ses som en besparelse – Det fanger ikke alle fejl – QA får bedre tid til fordybelse og fokus på ikke-trivielle regressionstests

27