Når det handler om at levere hyppigt uden at gå på kompromis med kvaliteten, så kræver det en teamindsats. Det dur ikke, at udviklerne bare koder løs, og derefter regner med at andre, måske endda et helt andet (test)team, sikrer at alt er ok - både før og efter ændringerne er kommet i produktion.
Udvikling og kvalitetssikring skal gå hånd i hånd, men som udvikler ved jeg, at det kan være en udfordring at få til at ske i praksis, da vi udviklere kan have en tendens til hellere at vil skrive kode end at hjælpe med at teste det vi lige har lavet. Men det kan lade sig gøre!
I dette oplæg vil jeg komme med eksempler fra hverdagen, på hvordan vi får det hele til at rulle på skinner. Hvordan gensidig respekt mellem forskellige roller, og bedst udnyttelse af hinandens kompetencer, spiller sammen med den automatisering, der er en væsentlig parameter for at få det hele til at lykkedes.
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
Taking your mobile development process cycle, and the quality of the apps, from good to great.
See how focusing on automated tests can improve app quality, time to market and much more, and learn some best practices to avoid too much trouble getting started
Presented at Xamarin Evolve 2014
Automated UI test on mobile - with Cucumber/CalabashNiels Frydenholm
Automated UI tests with Cucucumber/Calabash - experiences from the trenches, and the lessons we have learned along the way at ebay Classifieds in Denmark.
How to structure your test code, run in it in a CI environment, and get fast feedback to make it a succes.
Continuous delivery is just as important for native mobile apps, as it is for every other software project, but it is not yet so widespread among native app projects.Based on real world projects, this presentation will convince you that it’s not so different from doing it for eg. web applications. The basics in terms of branching strategy, CI setup for building and testing, as well as distributing test-builds will be covered, but the main focus will be on how to ensure the quality with automated tests. Besides a short introduction to Cucumber/Calabash, the tools used for the automated UI-tests, we’ll take a deeper dive into areas like
- How to structure your test code for good re-use and maintainability
- Do's and Don'ts to make sure your tests run both fast and stable
- CI details to ensure great reporting
- How to run the tests on real devices in a Test Cloud
This document discusses Behavior Driven Development (BDD) with Cucumber. It provides an example feature file for adding movies to a Netflix queue. It then demonstrates how to install and use Cucumber, including defining step definitions and integrating it with Rails. The document concludes that Cucumber allows specifying and testing software behavior through plain language examples.
Oplægget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 26. maj 2009.
Læs mere om interessegruppen på http://www.infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htm
Få fordelene ved agil udvikling i it-porteføljen (IBM Global Business Services)IBM Danmark
Forstå hvordan Incident Management og Release Management passer ind i arbejdsrammen ved agil udvikling og giver samme kontante fordele takket være flere evalueringer undervejs, kortere udviklingscyklus og højere kvalitet
Læs mere her: bit.ly/softwaredagservices3
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
Taking your mobile development process cycle, and the quality of the apps, from good to great.
See how focusing on automated tests can improve app quality, time to market and much more, and learn some best practices to avoid too much trouble getting started
Presented at Xamarin Evolve 2014
Automated UI test on mobile - with Cucumber/CalabashNiels Frydenholm
Automated UI tests with Cucucumber/Calabash - experiences from the trenches, and the lessons we have learned along the way at ebay Classifieds in Denmark.
How to structure your test code, run in it in a CI environment, and get fast feedback to make it a succes.
Continuous delivery is just as important for native mobile apps, as it is for every other software project, but it is not yet so widespread among native app projects.Based on real world projects, this presentation will convince you that it’s not so different from doing it for eg. web applications. The basics in terms of branching strategy, CI setup for building and testing, as well as distributing test-builds will be covered, but the main focus will be on how to ensure the quality with automated tests. Besides a short introduction to Cucumber/Calabash, the tools used for the automated UI-tests, we’ll take a deeper dive into areas like
- How to structure your test code for good re-use and maintainability
- Do's and Don'ts to make sure your tests run both fast and stable
- CI details to ensure great reporting
- How to run the tests on real devices in a Test Cloud
This document discusses Behavior Driven Development (BDD) with Cucumber. It provides an example feature file for adding movies to a Netflix queue. It then demonstrates how to install and use Cucumber, including defining step definitions and integrating it with Rails. The document concludes that Cucumber allows specifying and testing software behavior through plain language examples.
Oplægget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 26. maj 2009.
Læs mere om interessegruppen på http://www.infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htm
Få fordelene ved agil udvikling i it-porteføljen (IBM Global Business Services)IBM Danmark
Forstå hvordan Incident Management og Release Management passer ind i arbejdsrammen ved agil udvikling og giver samme kontante fordele takket være flere evalueringer undervejs, kortere udviklingscyklus og højere kvalitet
Læs mere her: bit.ly/softwaredagservices3
’Hands on’ erfaringer fra innovationscentre i Cambridge og BostonMuninsight
Keynote presented in November 2013 at Dansk Industri's innovationskonference 2013 (Confederation of Danish Industries Innovation Conference).
Find out more at http://www.muninsight.com/experience-boston-cambridge-innovation-center-dansk-industri-innovation-conference
Slides fra temadag om remote usability testing, 10. december 2014:
http://www.infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/reportage-fra-temadag-om-remote-usability-testing.htm
Oplægget blev holdt ved InfinIT-arrangementet "Workshop om usability og interaktionsdesign", der blev afholdt den 10. marts 2010. Læs mere om arrangementet her: http://www.infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/brugerne_i_fokus_i_nystartet_interessegruppe.htm
Oplægget blev holdt ved InfinIT-arrangementet Temadag om integrering af usability-arbejde i agile udviklingsprocesser, der blev afholdt den 6. maj 2014. Læs mere om arrangementet her: http://infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/hvordan_kombineres_agil_udvikling_og_usability-arbejde.htm
Mangler du en pragmatisk introduktion til Scrum og Agile? Leder du efter startblokken for at komme i gang med agile projekter? Eller er dit behov essentiel viden om den agile proces, så du forstår hvad der forventes af dig?
På en aften vil du få løftet din forståelse af de tre mest udbredte agile metoder: Scrum, Kanban og XP. Du vil få præsenteret de enkelte metoders bestanddele og hvordan de hænger sammen. Du vil forstå metodernes forskelle og vil også få et indblik i hvordan de kan kombineres.
Alt i alt vil du få et godt grundlag på din vej til at blive en dygtig agil praktiker.
Sådan arbejder du dit digitale design sikkert i målPeytz & Co
Digitalt design handler om at ramme målet rent på mobilen, tabletten og skrivebordsskærmen. Og det handler om at gøre brugerne glade, så de gør, som du ønsker.
For at lykkes med dit design anbefaler vi at gå igennem nogle processer i en bestemt rækkefølge, og på vores morgeninspiration den 31/3 gennemgik Kreativ Direktør Laust Jørgensen denne designproces.
Se alle slides her.
Oplægget blev holdt ved InfinIT-arrangementet "Kan usability-arbejde virkelig betale sig?" der blev afholdt den 25. september 2013. Læs mere om arrangementet her: http://infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/kan_usability-arbejde_virkelig_betale_sig-.htm
Dette er vores standard-præsentation omkring Reload og vores proces. Det handler om, hvem vi er, hvordan vi arbejder og hvorfor vi synes, at det giver mening.
Det handler om hvorfor en agil tilgang og en proces omkring fast pris og et minimumsscope (MVP) giver mening.
Læs mere på https://reload.dk/proces
Steven Aneel Hasz-Singhs slides fra Digicures web performance seminar på Bella Sky, 24. oktober 2012.
Steven er stifter og teknisk direktør i webudviklingshuset Codehouse. Her har han gennem en lang årrække været i tæt kontakt med problemstillinger relateret til performanceoptimeringer for større danske forbrugerorienterede virksomheder.
I takt med at verden bliver mere global og mange mennesker har adgang til internettet, i alle deres vågne timer, bliver det tilsvarende vigtigt, at virksomheder har fokus på at levere deres indhold effektivt til deres målgruppe. Hvad betyder det for udviklingsprocessen og hvordan skal man prioritere i det daglige arbejde med ens webløsninger? Det er hvad Steven vil fokusere på i dette oplæg.
’Hands on’ erfaringer fra innovationscentre i Cambridge og BostonMuninsight
Keynote presented in November 2013 at Dansk Industri's innovationskonference 2013 (Confederation of Danish Industries Innovation Conference).
Find out more at http://www.muninsight.com/experience-boston-cambridge-innovation-center-dansk-industri-innovation-conference
Slides fra temadag om remote usability testing, 10. december 2014:
http://www.infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/reportage-fra-temadag-om-remote-usability-testing.htm
Oplægget blev holdt ved InfinIT-arrangementet "Workshop om usability og interaktionsdesign", der blev afholdt den 10. marts 2010. Læs mere om arrangementet her: http://www.infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/brugerne_i_fokus_i_nystartet_interessegruppe.htm
Oplægget blev holdt ved InfinIT-arrangementet Temadag om integrering af usability-arbejde i agile udviklingsprocesser, der blev afholdt den 6. maj 2014. Læs mere om arrangementet her: http://infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/hvordan_kombineres_agil_udvikling_og_usability-arbejde.htm
Mangler du en pragmatisk introduktion til Scrum og Agile? Leder du efter startblokken for at komme i gang med agile projekter? Eller er dit behov essentiel viden om den agile proces, så du forstår hvad der forventes af dig?
På en aften vil du få løftet din forståelse af de tre mest udbredte agile metoder: Scrum, Kanban og XP. Du vil få præsenteret de enkelte metoders bestanddele og hvordan de hænger sammen. Du vil forstå metodernes forskelle og vil også få et indblik i hvordan de kan kombineres.
Alt i alt vil du få et godt grundlag på din vej til at blive en dygtig agil praktiker.
Sådan arbejder du dit digitale design sikkert i målPeytz & Co
Digitalt design handler om at ramme målet rent på mobilen, tabletten og skrivebordsskærmen. Og det handler om at gøre brugerne glade, så de gør, som du ønsker.
For at lykkes med dit design anbefaler vi at gå igennem nogle processer i en bestemt rækkefølge, og på vores morgeninspiration den 31/3 gennemgik Kreativ Direktør Laust Jørgensen denne designproces.
Se alle slides her.
Oplægget blev holdt ved InfinIT-arrangementet "Kan usability-arbejde virkelig betale sig?" der blev afholdt den 25. september 2013. Læs mere om arrangementet her: http://infinit.dk/dk/hvad_kan_vi_goere_for_dig/viden/reportager/kan_usability-arbejde_virkelig_betale_sig-.htm
Dette er vores standard-præsentation omkring Reload og vores proces. Det handler om, hvem vi er, hvordan vi arbejder og hvorfor vi synes, at det giver mening.
Det handler om hvorfor en agil tilgang og en proces omkring fast pris og et minimumsscope (MVP) giver mening.
Læs mere på https://reload.dk/proces
Steven Aneel Hasz-Singhs slides fra Digicures web performance seminar på Bella Sky, 24. oktober 2012.
Steven er stifter og teknisk direktør i webudviklingshuset Codehouse. Her har han gennem en lang årrække været i tæt kontakt med problemstillinger relateret til performanceoptimeringer for større danske forbrugerorienterede virksomheder.
I takt med at verden bliver mere global og mange mennesker har adgang til internettet, i alle deres vågne timer, bliver det tilsvarende vigtigt, at virksomheder har fokus på at levere deres indhold effektivt til deres målgruppe. Hvad betyder det for udviklingsprocessen og hvordan skal man prioritere i det daglige arbejde med ens webløsninger? Det er hvad Steven vil fokusere på i dette oplæg.
10. High performance team
• Åben og ærlig kommunikation
• Samarbejde og innovation/kreativitet
• Samme værdier
– Høj faglig stolthed
– Respekt for hinanden
5
11. 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
12. iOS releases 2014
6
5.2.1
3.53.3.1
3.2.3
3.2.2
3.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.1
3.5.2
3.6
4.0
5.2.3
5.3
5.3.1
18. 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
19. 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
24. Alle bør skal teste
• Team / holdånd
• Udviklere og Test eksperter tænker forskelligt
10
25. 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
26. 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
29. 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
30. 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
31. 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
39. Stabile tests
• Rerun fejlende tests
• Løbende vedligehold / optimering
– Timing issues
– Test data
– Nye OS versioner
15
40. Stabile tests
• Rerun fejlende tests
• Løbende vedligehold / optimering
– Timing issues
– Test data
– Nye OS versioner
• Daglig buildserver ansvarlig
– Fælles ansvar
15
41. 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
47. Tillid til QA ekspert
• Overblik over hvad (og hvor meget) der skal testes
– Risikovurdering
– Styrer evt. “papirnusseri” :-)
19
48. Tillid til QA ekspert
• Overblik over hvad (og hvor meget) der skal testes
– Risikovurdering
– Styrer evt. “papirnusseri” :-)
• Grundig kendskab til forretningsregler
19
49. 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
51. QA har tillid til automatisering
20
Feature
Scenario
Step
Page object
iOS Android
52. QA har tillid til automatisering
20
Feature
Scenario
Step
Page object
iOS Android
53. 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
54. 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 later
end
60. 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
61. 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
64. Fejl i produktion
• Overvåg kvaliteten
– Team ansvar
• Det vil altid kunne ske
– Uanset hvor meget/længe der testes
23
65. 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
66. 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
71. 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
75. 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
76. 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
78. 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
79. 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
80. 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