kvalitetssikring i et highperformance team
TRANSCRIPT
ebay Classifieds, Denmark
• DBA, BilBasen og BilInfo
• Mobiludvikling
– DBA og BilBasen
– iPhone, iPad og Android
2
Organisering
• 3(,5) iOS udviklere
• 1 arkitekt (DBA platform)
• 1 backend
• 1 QA ekspert
4
• Produktejere
• UX/Design
• Andre interessenter
High performance team
• Åben og ærlig kommunikation
• Samarbejde og innovation/kreativitet
• Samme værdier
– Høj faglig stolthed
– Respekt for hinanden
5
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
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
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
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
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
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
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
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
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
Stabile tests
• Rerun fejlende tests
• Løbende vedligehold / optimering
– Timing issues
– Test data
– Nye OS versioner
15
Stabile tests
• Rerun fejlende tests
• Løbende vedligehold / optimering
– Timing issues
– Test data
– Nye OS versioner
• Daglig buildserver ansvarlig
– Fælles ansvar
15
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
Tillid til QA ekspert
• Overblik over hvad (og hvor meget) der skal testes
– Risikovurdering
– Styrer evt. “papirnusseri” :-)
19
Tillid til QA ekspert
• Overblik over hvad (og hvor meget) der skal testes
– Risikovurdering
– Styrer evt. “papirnusseri” :-)
• Grundig kendskab til forretningsregler
19
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
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
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
Hvad dækkes af automatiseringen?
• Brug et værktøj der også fungerer som dokumentation
• Brug code-coverage
– Fokuser ikke kun på % tallene
21
Hvad dækkes af automatiseringen?
• Brug et værktøj der også fungerer som dokumentation
• Brug code-coverage
– Fokuser ikke kun på % tallene
21
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
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
Fejl i produktion
• Overvåg kvaliteten
– Team ansvar
• Det vil altid kunne ske
– Uanset hvor meget/længe der testes
23
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
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
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
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
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
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
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
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