Oplæg på TestExpo 2016 den 28. januar
-
Upload
morten-bjerg-gregersen -
Category
Documents
-
view
30 -
download
1
Transcript of Oplæg på TestExpo 2016 den 28. januar
...og undgå skader!
Skær ned på de manuelle tests - Automatisér!
#tedk16
Hvem er vi?
Morten Bjerg Gregersen Projektkonsulent
Marianne Gadegaard Testleder
Agenda
Vores verden
Kvalitetssikring og automatisering
Gevinster
Fremtid
Vores verden
Inspiration
Teamet
Medlemsbankerne
Mobilbank Privat - til privatøkonomien
Mobilbank Erhverv - til de mindre og mellemstore virksomheder
Statistik (december 2015)
Mobilbank Privat
409.529 aktive brugere
5.119.051 sessioner
46.278.851 sidevisninger
9,20 sider pr. session
02:44 gnsn. sessionslængde
Mobilbank Erhverv
6.002 aktive brugere
99.164 sessioner
593.403 sidevisninger
5,87 sider pr. session
01:57 gnsn. sessionslængde
Reviews fra brugerne
4,2
12
13
14
Arkitektur og kvalitetssikring
Arkitektur
Backend/mainframe
Middleware Privat
Middleware Erhverv
Kvalitetssikring
Testanalyse - Overførsel
Overførsel samme bank
Overførsel anden bank
Standard
Med NemID
Straks
Med NemID
Helligdag
Scenarier
Mellem egne
Uden NemID
Input 1. del
Beløb
Fra konto
Til konto
Input 2. del
Tekst til egen konto
Tekst til modtagers
konto
Dato
Hos modtager med det samme
Overførsel samme bank
Mellem egne
Fuldmagtskonti
Overførsel anden bank
Standard
Standard - Ingen adgang
Straks
Straks - Grænse
Straks - Ingen adgang
Straks - Ikke tilladt for kunden
Dagsmaksimum
Dagsmaks. er overskredet
Signering
Egne konti uden NemID
Andres konti med NemID
Med nøglekort
Med nøgleviser
Mobilkode forkert
NemID-nøgle forkert
Kvittering
Scenarier
Helligdag
Weekend
Konto pantsat
Konto spærret
Under 18 år uden tilladelse
Særlig indlån uden disp. ret
Modtager-bank er nede
Testanalyse - Overførsel
Risikobaseret test
Funktions-
tests
Designkontrol-tests
Manuelle testskemaer
185 92
159 0
Privat Erhverv
Automatisering af tests
Målsætninger
Platformuafhængigt i høj grad
Forståeligt for forretningen
Alle kan bidrage med testskemaer
User-story Accept-kriterier
Test-skemaer
Auto-matisering
Valg af værktøj
Struktur af test-kode
Screens
Ruby
Screens
Ruby
Steps
Ruby
Scenarier
Gherkin
Scenarier (Gherkin)
Domæne-specifikt sprog
Skrives sammen med Product Owner
Egenskab: At leve godt
Scenarie: Kagespisning
Givet der er kage
Når jeg spiser kagen
Så bliver jeg glad
Scenarier (Gherkin)
Egenskab: Overførsel - Clearing
Scenarie: Overførsel frem i tid (askeonsdag/dagen
før skærtorsdag)
Givet jeg ønsker at overføre 99 kr fra min
”Lønkonto” til 2000 1234560
Når jeg vælger at modtager skal have pengene
dagen før skærtorsdag
Så ser jeg at modtager får pengene tirsdag efter
2. påskedag
Og jeg kan ikke vælge at modtager skal have
pengene med det samme
Når /^jeg vælger at modtager skal have pengene (med det samme|næste torsdag|næste
tirsdag|næste fredag|dagen før skærtorsdag)$/ do |day|
end
Når /^jeg vælger at modtager skal have pengene (med det samme|næste torsdag|næste
tirsdag|næste fredag|dagen før skærtorsdag)$/ do |day|
page = page(TransferScreen)
if day.eql?('med det samme')
touch(page.immediately_cell)
else
end
end
Når /^jeg vælger at modtager skal have pengene (med det samme|næste torsdag|næste
tirsdag|næste fredag|dagen før skærtorsdag)$/ do |day|
page = page(TransferScreen)
if day.eql?('med det samme')
touch(page.immediately_cell)
else
date = nil
if day.eql?('næste torsdag')
date = DateTime.now.next_thursday
elsif day.eql?('næste tirsdag')
date = DateTime.now.next_tuesday
elsif day.eql?('næste fredag')
date = DateTime.now.next_friday
elsif day.eql?('dagen før skærtorsdag')
date = Easter.next_maundy_thursday-1
end
end
end
Når /^jeg vælger at modtager skal have pengene (med det samme|næste torsdag|næste
tirsdag|næste fredag|dagen før skærtorsdag)$/ do |day|
page = page(TransferScreen)
if day.eql?('med det samme')
touch(page.immediately_cell)
else
date = nil
if day.eql?('næste torsdag')
date = DateTime.now.next_thursday
elsif day.eql?('næste tirsdag')
date = DateTime.now.next_tuesday
elsif day.eql?('næste fredag')
date = DateTime.now.next_friday
elsif day.eql?('dagen før skærtorsdag')
date = Easter.next_maundy_thursday-1
end
page = page.transition(tap: page.date_cell,
page: DateSelectionScreen)
end
end
Når /^jeg vælger at modtager skal have pengene (med det samme|næste torsdag|næste
tirsdag|næste fredag|dagen før skærtorsdag)$/ do |day|
page = page(TransferScreen)
if day.eql?('med det samme')
touch(page.immediately_cell)
else
date = nil
if day.eql?('næste torsdag')
date = DateTime.now.next_thursday
elsif day.eql?('næste tirsdag')
date = DateTime.now.next_tuesday
elsif day.eql?('næste fredag')
date = DateTime.now.next_friday
elsif day.eql?('dagen før skærtorsdag')
date = Easter.next_maundy_thursday-1
end
page = page.transition(tap: page.date_cell,
page: DateSelectionScreen)
page.select_date(date)
end
end
Steps (Ruby)
Screens (Ruby)
class DateSelectionScreen < IBDBase
def title; 'Vælg dato' end
def select_date(date)
end
end
class DateSelectionScreen < IBDBase
def title; 'Vælg dato' end
def select_date(date)
date_string = date.strftime('%-d. %B %Y')
end
end
class DateSelectionScreen < IBDBase
def title; 'Vælg dato' end
def select_date(date)
date_string = date.strftime('%-d. %B %Y')
query = "label marked:'#{date_string}'"
end
end
class DateSelectionScreen < IBDBase
def title; 'Vælg dato' end
def select_date(date)
date_string = date.strftime('%-d. %B %Y')
query = "label marked:'#{date_string}'"
scroll_down(until_exists: query)
end
end
class DateSelectionScreen < IBDBase
def title; 'Vælg dato' end
def select_date(date)
date_string = date.strftime('%-d. %B %Y')
query = "label marked:'#{date_string}'"
scroll_down(until_exists: query)
transition(tap: query, page: TransferScreen)
end
end
class DateSelectionScreen < ABDBase
def title; 'Vælg dato' end
def select_date(date)
seconds_since_epoch = date.to_time.to_i
query('calendarView', :method_name => 'setDate',
:arguments => [seconds_since_epoch, true, true])
transition(tap: "button text:'#{title}'",
page: TransferScreen)
end
end
Demo Click her
Designkontrol
Designkontrol
x =
Menu
Login
Kontooverblik
Godkend betalinger
Betalingsoversigt
Indstillinger
Kontobevægelser
Betalingsdetaljer
Søgning konto
Søgning betaling
Søgning godkend
...
Skærmbilleder
Alm. Brand Bank
Djurslands Bank
Jyske Bank
Nordjyske Bank
Ringkjøbing Landbobank
Sydbank
Kreditbanken
Sparekassen Sjælland
Nordfyns Bank
Skjern Bank
Nørresundby Bank
Østjydsk Bank
Pengeinstitutter
ca.
400 skærmbilleder
Designkontrol
(400 x 4 x 3 ) + (400 x 6 x 5 ) =
: iPhone-skærmstørrelser
: iOS-versioner
: Android-skærmstørrelser
: Android-versioner
16.800 skærmbilleder
Automatisering af designkontrol
UI-test-rapport
UI-test-rapport
Mock-server Privat
Mock-server Erhverv
Faste data
Forskelle mellem versioner
4.3.0 5.0.0
Billeder til lancering
Billeder til lancering
Automatisering af billeder til lancering
App Store og Google Play Butik
Hjemmesider og marketing
Gevinster
Testskemaer automatiseret
Funktions-
tests
Designkontrol-tests
33 38
25 16
Privat Erhverv
Frigivelsesproces
Før ca. 4 uger
Nu under en uge
Hyppigere leverancer
Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec
Jan Feb Mar Apr Maj Jun Jul Aug Sep Okt Nov Dec
4.0.0 4.0.1 4.0.2
4.0.3
4.1.0 4.1.1
4.2.0
4.2.1
4.2.3 4.2.4
4.3.0
5.0.0 4.2.2
4.0.0 4.0.1
4.1.0
4.1.1
4.1.2 4.1.3 4.1.4
4.2.0
5.0.0
2.3.0
2.3.0.1
1.0.0 1.0.1 1.0.2 1.0.0
iOS Android Windows Phone
2015
2014
Privat
Privat
Erhverv
3.3.0
3.3.1
2.2.0
2.2.1
2.1.0
5.1.0
5.1.0
Attraktiv arbejdsplads
Udfordringer
Mindset i teamet
Stabilisering af tests
Kun community-support på værktøj
Fremtid
Fokus på automatiseret regressionstest
Automatisk kørsel af tests
Fremtid for automatisering
Fremtid for Bankdata
Selvorganiserede teams Ejerskab og ansvar
Faste dedikerede teams
Et agilt mindset Nye roller
Øget medarbejdertilfredshed
Tak for i dag
#tedk16 https://www.flickr.com/photos/betsyweber https://www.flickr.com/photos/pictures-of-money https://www.flickr.com/photos/com_salud https://www.flickr.com/photos/pavlinajane
Spørgsmål