15. Testanalyse - Overførsel
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
Overførsel
samme bank
Overførsel
anden bank
Standard
Med NemID
Straks
Med NemID
Helligdag
ScenarierMellem
egne
Uden
NemID
19. 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
22. Scenarier (Gherkin)
Domæne-specifikt sprog
Kan læses og forstås af Product Owner
Egenskab: At leve godt
Scenarie: Kagespisning
Givet der er kage
Når jeg spiser kagen
Så bliver jeg glad
23. Scenarier (Gherkin)
Egenskab: Overførsel - Clearing
Scenarie: Overførsel frem i tid (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
24. 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)
25. 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
44. 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.04.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
48. Fokus på automatiseret regressionstest
Automatisk kørsel af tests
Fremtid for automatisering
49. Nutid og fremtid for Bankdata
Selvorganiserede teams
Ejerskab og ansvar
Faste dedikerede teams
Et agilt mindsetNye roller
Øget medarbejdertilfredshed
50. Tak for i dag
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