Mobiltest automatisering - erfaringer direkte fra skyttegraven. TestExpo 2014

Relaterede dokumenter
Behavior Driven Test and Development. ebay Classifieds

Skær ned på de manuelle tests - Automatisér!

The LEGO Journey: Building an agile test foundation one brick at the time. Casper Gaardland Englund. Stephan Hjelmdal Nielsen The LEGO Group l

Automatiseret Test & Continuous Integration. Rikke Simonsen & Mads Danquah

Ud af krisen. Software på tværs, 15. juni 2009

DSB s egen rejse med ny DSB App. Rubathas Thirumathyam Principal Architect Mobile

IT-Universitetet, Projekt- og Programledelse November 2013 AGIL PROGRAMLEDELSE

E-PAD Bluetooth hængelås E-PAD Bluetooth padlock E-PAD Bluetooth Vorhängeschloss

Plan for præsentationen

Oasis: Part of the GIRAF System

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

WINDCHILL THE NEXT STEPS

Kvalitetssikring og agile udvikling

extreme Programming Kunders og udvikleres menneskerettigheder

QUICK START Updated: 18. Febr. 2014

Visual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?

Software test i Socialstyrelsen. af: Jan Kristensen. Nov 2013

TM4 Central Station. User Manual / brugervejledning K2070-EU. Tel Fax

Mobiltest typiske udfordringer og deres løsninger

QUICK START Updated:

WIKI & Lady Avenue New B2B shop

Succesfuld anvendelse af Behavior Driven

IPTV Box (MAG250/254) Bruger Manual

#TestExpo. Test I en skaleret udviklingsmodel

Development environments made easy

Anmode om et tilbud: og Vi vil svare inden for 24 timer!

Vejledning til Sundhedsprocenten og Sundhedstjek

Vejledning til at tjekke om du har sat manuel IP på din computer.

Det vigtigste først! Dette er måske den vigtigste bog der nogensinde er skrevet om agile vs. vandfald. Muligvis fordi det vel stadig er den eneste

Product Ownerens værktøjskasse

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Rejseplanen status og udvikling. Birgitte Woolridge, Product Manager,

Shooting tethered med Canon EOS-D i Capture One Pro. Shooting tethered i Capture One Pro 6.4 & 7.0 på MAC OS-X & 10.8

DSDM Agil projektledelse

Hvor er mine runde hjørner?

Skær ned på de manuelle tests - Automatisér!...og undgå skader!

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

10 spørgsmål der vil hjælpe dig med dine testcases

INTEGRATOR-DAG III. Status og opfølgning på udrulning af mobilt Dankort. december 2016 Nets Denmark

September : Demo. Biblioteket App

How Al-Anon Works - for Families & Friends of Alcoholics. Pris: kr. 130,00 Ikke på lager i øjeblikket Vare nr. 74 Produktkode: B-22.

Testing Tuesday 07.Juni Aarhus. CapgeminiSogeti

To the reader: Information regarding this document

Get Skeleton. Boilerplate for Responsive, Mobile-Friendly Development

dfgfdhsjfgdghjghfkfhgkfhjsrt Test som praktisk håndværksdisciplin Sara Stürup Willer

how to save excel as pdf

United Nations Secretariat Procurement Division

FOREBYGGELSE AF ARBEJDSULYKKER I DONG OIL & GAS

Casper Fabricius ActiveRecord. O/RM i Ruby on Rails

Vandeffektive mejerier. Projekter mellem Arla Foods og Ecolab

1.8.2 Overblik over releasens

Healthcare Apps. OUH Odense University Hospital & Svendborg Hospital. Kiel, Germany, November /12/13

Erfaringer fra innføring av ISO i danske kommuner (styringssystem for informasjonssikkerhet)

Succesfuld Problem management. 2. December 2015 Laurine Halkjær

Øg sporbarhed og produktivitet gennem integration

Lagerstyring i Microsoft Dynamics 365 for Finance and Operations

Agenda. Muligheder for anvendelse. Komponenter. Features. Restore muligheder. DR og TSM integration. Repository. Demo. Spørgsmål

Microsoft MB-330 Microsoft Dynamics 365 Unified Operations Core

Registratormøde. Aarhus 6. maj 2014

Forretningsmodeller for mobile applikationer

Succesfuld implementering af automatiseret test

Janni Nielsen Department of Informatics HCI Research Group

Browser eller app til My Meeting Video

GUIDE TIL BREVSKRIVNING

[A20] Kick off document and process description. 1 of 5

Escape velocity: Slashing deployment times with Docker

Hvordan vælger jeg dokumentprofilen?

3D NASAL VISTA 2.0

dansk tv guide 4FF5B32E065D94EADE23B49ADD83576C Dansk Tv Guide

Succes med agile. The hardest single part of building a software system is deciding precisely what to build. Fred Brooks, No Silver Bullet

Lovkrav vs. udvikling af sundhedsapps

Billede af den virtuelle tur rundt om minikraftværket set på en pc (Eget arkiv, 2017)

Webside score unlockdealers.com

Immigration Housing. Housing - Renting. Stating that you want to rent something. Type of accommodation. Type of accommodation. Type of accommodation

IT Service Management (ITIL) i en agil verden. Lars Zobbe Mortensen

Elma ToolCheck Dansk manual DK: EAN:

FSC Online Claims Platform. Workshop om CoC byrden

Scrum og agile. Torsdag d. 29. november 2007

Trolling Master Bornholm 2016 Nyhedsbrev nr. 8

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

DYNAMICS AX 2012 FÅ OVERBLIK OG SE NYE MULIGHEDER BUSINESS PRODUCTIVITY

Microsoft Dynamics CRM 2015 Loyale kunder er de bedste kunder.

Agil-model versus V-model set i lyset af en testers dilemmaer

TESTAUTOMATISERING. Præsentation af: BPT anvendt til automatiseret test. HP test brugerkonference november 2008

Christian Jelbo mobile manager Mobil

Customer Engagement Platform

Kend din kvalitet og prisen for den

Overvågning TestHusets servere og hjemmeside

Underbilag 2.24 Kommunernes it-miljø

Vejen til nemmere og mere sikker implementering af Microsoft Dynamics AX

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Erfaringer med gennemførelse af store IT-projekter. Fagdirektør Thomas Monefeldt, Udvikling og Forenklingsstyrelsen Skatteministeriet

Listen Mr Oxford Don, Additional Work

AGENDA. Om frog Vores tilgang til innovation Q&A

SAS Corporate Program Website

App til indmelding af glemt check ud

En måling er bedre end 100 mavefornemmelser

Transkript:

Mobiltest automatisering - erfaringer direkte fra skyttegraven TestExpo 2014

Agenda Intro Fra User story til automatisk accept test Teknikken / Værktøjer Eksempler / Demo Afvikling / Overvågning af tests Udfordringer Forbedringer Spørgsmål 2

ebay Classifieds, Denmark DBA, BilBasen og Bilinfo Mere end 1 million downloads af DBA Mere end 400.000 downloads af BilBasen Begge apps findes til iphone, ipad og Android Trafikken fra mobile enheder er fordoblet i løbet af 2013 Hyppige nye releases 3

Niels Frydenholm http://www.linkedin.com/in/frydenholm 4

Team organisering Product Owner UX Andre interessenter Udviklere QA er 5

Fra story til levende dokumentation (aka. automatisk accept test) 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story PO, QA og en udvikler gennemgår accept kriterier 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story PO, QA og en udvikler gennemgår accept kriterier Grooming og estimering af story 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story PO, QA og en udvikler gennemgår accept kriterier Grooming og estimering af story Sprint planlægning 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story PO, QA og en udvikler gennemgår accept kriterier Grooming og estimering af story Udviklere og QA er gennemgår test scenarier ud fra accept kriterier Sprint planlægning 6

Fra story til levende dokumentation (aka. automatisk accept test) Product owner skriver user story PO, QA og en udvikler gennemgår accept kriterier Grooming og estimering af story Team implementerer stories og tests Udviklere og QA er gennemgår test scenarier ud fra accept kriterier Sprint planlægning 6

Fra story til levende dokumentation (aka. automatisk accept test) Automatiserede accept tests Continuous + = Integration 6

Teknikken Jenkins (CI) 7

Cucumber - mere end et testværktøj 8

Cucumber - mere end et testværktøj Behaviour- Driven Development Sætter strøm til Gherkin syntax Kommunikation og samarbejde mellem forretningen, QA og udviklere Let at både læse og skrive Skrevet i domain sprog 8

Cucumber - mere end et testværktøj Behaviour- Driven Development Sætter strøm til Gherkin syntax Kommunikation og samarbejde mellem forretningen, QA og udviklere Feature: Simple search As a user I want to be able to do simple searches Let at både læse og skrive Skrevet i domain sprog 8

Cucumber - mere end et testværktøj Behaviour- Driven Development Sætter strøm til Gherkin syntax Kommunikation og samarbejde mellem forretningen, QA og udviklere Feature: Simple search As a user I want to be able to do simple searches Scenario: I can search without any parameters Given I am on search When I perform the search Then I see the result Let at både læse og skrive Skrevet i domain sprog 8

Cucumber - mere end et testværktøj Behaviour- Driven Development Sætter strøm til Gherkin syntax Kommunikation og samarbejde mellem forretningen, QA og udviklere Feature: Simple search As a user I want to be able to do simple searches Scenario: I can search without any parameters Given I am on search When I perform the search Then I see the result Let at både læse og skrive Skrevet i domain sprog Step-definition Then(/^I see the result$/) do unless query("view marked:'searchresultcell'").count > 0 screenshot_and_raise "No result was shown" end end 8

Calabash Gør det muligt at bruge Cucumber til native apps ios Android Interagere med apps touch, scroll, swipe etc Query- syntax (ios eksempler) query( label marked: label text ) query( button marked: Ok ) 9

Calabash - arkitektur 10

Scenario implementering 11

Scenario implementering SYI = Sell your item Scenario: Check that change classification clears matrixdata with warning Given I am logged in as "Buyer" And I am on the SYI hub And I select classification "Hovedtelefoner" And I set "Type" to Nakkekontur And I set price to "250" When I press "Kategori" Then I wait for "Du er ved at skifte kategori" to appear When I touch "Fortryd" Then I see cells containing "Nakkekontur" When I press "Kategori" Then I wait for "Du er ved at skifte kategori" to appear When I touch "Skift" Then I see the SYI classification search 11

Scenario implementering Scenario: Check that change classification clears matrixdata with warning Given I am logged in as "Buyer" And I am on the SYI hub And I select classification "Hovedtelefoner" And I set "Type" to Nakkekontur And I set price to "250" When I press "Kategori" Then I wait for "Du er ved at skifte kategori" to appear When I touch "Fortryd" Then I see cells containing "Nakkekontur" When I press "Kategori" Then I wait for "Du er ved at skifte kategori" to appear When I touch "Skift" Then I see the SYI classification search Scenario: Check that change classification clears matrixdata with warning Given I am logged in as "Buyer" And I am on the SYI hub And I select classification "Hovedtelefoner" And I set matrixdata "Type" to Nakkekontur" And I set price to "250" When I try to change classification Then I see an alert with title "Du er ved at skifte kategori" When I cancel the alert Then the classification is "Nakkekontur" When I try to change classification Then I see an alert with title "Du er ved at skifte kategori" When I accept the change classification alert Then I see the SYI classification search 11

Step implementering Step fra sell your item feature And I set price to "250" 12

Step implementering Step fra sell your item feature And I set price to "250" And /^I set price to "(.*?)"$/ do price macro 'I swipe up' sleep(1) touch("view marked:'price'") sleep(0.5) set_text("view marked:'price'", price) sleep(0.5) touch("view marked:'ok'") sleep(1) end 12

Step implementering Step fra sell your item feature And I set price to "250" And /^I set price to "(.*?)"$/ do price macro 'I swipe up' sleep(1) touch("view marked:'price'") sleep(0.5) set_text("view marked:'price'", price) sleep(0.5) touch("view marked:'ok'") sleep(1) end And /^I set price to "(.*?)"$/ do price @page.write_price(price) end 12

Step implementering Step fra sell your item feature And I set price to "250" And /^I set price to "(.*?)"$/ do price macro 'I swipe up' sleep(1) touch("view marked:'price'") sleep(0.5) set_text("view marked:'price'", price) sleep(0.5) touch("view marked:'ok'") sleep(1) end And /^I set price to "(.*?)"$/ do price @page.write_price(price) end SellYourItemPage (page object) def write_price(price) scroll_and_wait_for_row_with_mark("pricecell") touch("view marked:'price'") keyboard_enter_text price close_keyboard end 12

PageObject pattern Feature Scenario Step 13

PageObject pattern Feature Scenario Step Page object ipad iphone Android 13

PageObject pattern Feature Scenario Step Page object ipad iphone Android 13

PageObject pattern Feature Scenario Step SyiHubPage (PageObject) go_to_picture_center go_to_classification_search go_to_value_selection_for_matrix data(label) write_price(price) Page object ipad iphone Android 13

PageObject pattern Feature Scenario Step SyiHubPage (PageObject) go_to_picture_center go_to_classification_search go_to_value_selection_for_matrix data(label) write_price(price) Page object ipad iphone Android 13

DEMO 14

Continuous Integration Jenkins på en Mac Mini Afvikler tests parallelt (Master/Slave Jenkins setup) Kun afvikling på simulator (indtil videre) Tests køres efter hvert commit Unit tests > Integration tests > Accept/UI tests 15

Overvågning af CI 16

Overvågning af CI 16

Cucumber rapportering fra CI 17

Cucumber rapportering fra CI 17

Når det fejler 18

Kvalitetssikring af tests Review og Pair program med QA er Brug (kun) Custom steps Testkode er (også) produktionskode Lad kvaliteten afspejle det Refactor, Refactor, Refactor Følg op på om testene dækker det forventede Med konkret viden - ingen gætterier/antagelser 19

Code coverage Fokuser ikke (nødvendigvis) på % tallet Find inspiration til nye tests Kontroller at hver feature er godt dækket ind 20

Code coverage Fokuser ikke (nødvendigvis) på % tallet Find inspiration til nye tests Kontroller at hver feature er godt dækket ind 20

Code coverage Fokuser ikke (nødvendigvis) på % tallet Find inspiration til nye tests Kontroller at hver feature er godt dækket ind 20

Code coverage Fokuser ikke (nødvendigvis) på % tallet Find inspiration til nye tests Kontroller at hver feature er godt dækket ind 20

Forudsætninger for success Fælles team indsats Definition of Done (DoD) inkluderer automatiseret tests Afsæt tid til løbende vedligehold af nye versioner (primært ios og Calabash) m.v. Fix broken builds ASAP 21

Udfordringer Få defineret accept kriterier i god tid ios 7 En længere periode med langsomme tests Fejl/ændringer i test data Holde Ruby miljø i synk på alle udviklermaskiner 22

Fremtidige ønsker/forbedringer Afvikle tests i Xamarin Test cloud et par gange om ugen Mere BDD/TDD Hurtigere afvikling af tests efter commits Ikke alle tests behøver at køre pr. commit Evt. tags: @daily, @commit etc Database state før tests Få implementeret tests til Android apps 23

Wrap up Test scenarier følger koden - fortæller altid sandheden Muliggør hurtig Time to Market Nødvendigt for at levere høj kvalitet Meget mindre tid på bruges på trivielle regressionstests Glade QA er Modige udviklere Kvalitetsprodukt Glade brugere 24

SPØRGSMÅL 25

Ressourcer The Cucumber Book Calabash @github (https://github.com/calabash/) Calabash google groups https://groups.google.com/forum/#forum/calabash- ios https://groups.google.com/forum/#forum/calabash- android Calabash overview (http://docs.xamarin.com/guides/cross- platform/test_cloud/calabash/intro_to_calabash/) Jenkins (http://jenkins- ci.org/) plugins: Cucumber- reports, Cobertura (code coverage), Build monitor view RubyMine (http://www.jetbrains.com/ruby/) Uncle Bobs Clean Code 26