Introducing Calabash
automated functional testing for mobile native apps
Karl Krukow, karl@lesspainful.com, LessPainful & Trifork QCon London 2012
1
fredag den 9. marts 12
Introducing Calabash automated functional testing for mobile native - - PowerPoint PPT Presentation
Introducing Calabash automated functional testing for mobile native apps Karl Krukow, karl@lesspainful.com, LessPainful & Trifork QCon London 2012 1 fredag den 9. marts 12 About me 2 fredag den 9. marts 12 About me PhD, Computer
automated functional testing for mobile native apps
Karl Krukow, karl@lesspainful.com, LessPainful & Trifork QCon London 2012
1
fredag den 9. marts 12
2
fredag den 9. marts 12
2
fredag den 9. marts 12
enterprise, last two years on iOS.
2
fredag den 9. marts 12
enterprise, last two years on iOS.
2
fredag den 9. marts 12
enterprise, last two years on iOS.
Kresten Krab Thorup.
2
fredag den 9. marts 12
enterprise, last two years on iOS.
Kresten Krab Thorup.
2
fredag den 9. marts 12
3
fredag den 9. marts 12
3
fredag den 9. marts 12
3
fredag den 9. marts 12
3
fredag den 9. marts 12
3
fredag den 9. marts 12
4
fredag den 9. marts 12
4
fredag den 9. marts 12
4
fredag den 9. marts 12
testing with each iteration.
production
5
fredag den 9. marts 12
6
fredag den 9. marts 12
code base that must be developed and maintained?
they are deleted instead!).
wanted? (too precise or too loose)
6
fredag den 9. marts 12
code base that must be developed and maintained?
they are deleted instead!).
wanted? (too precise or too loose)
need for manual testing.
6
fredag den 9. marts 12
7
fredag den 9. marts 12
code (DSLs?).
changes).
devices, on multiple OS versions, languages).
7
fredag den 9. marts 12
fredag den 9. marts 12
specifications of software
readable language that is close to natural language.
web applications.
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
Feature: As an administrator. I want to be able to add and remove users, so I can control access to the application Scenario: Add test user When I touch the Add User button And I fill in text fields as follows: | field | text | | Last Name | Knorr | | Username | knorr | And I touch "Save" Then I should be on the Users screen And I should see a table containing "Knorr" Scenario: ...
fredag den 9. marts 12
fredag den 9. marts 12
Scenario: Add test user When I touch the Add User button ...
fredag den 9. marts 12
Scenario: Add test user When I touch the Add User button ... When /^I touch the Add User button$/ do btn_txt = 'Add user' touch("button text:#{btn_txt}") end
fredag den 9. marts 12
fredag den 9. marts 12
report
fredag den 9. marts 12
report
fredag den 9. marts 12
report
fredag den 9. marts 12
report
fredag den 9. marts 12
testing of Android and iOS apps.
service, commercial support.
13
fredag den 9. marts 12
14
fredag den 9. marts 12
iOS App
fredag den 9. marts 12
iOS App
Cucumber (ruby api)
Test report (cucumber)
fredag den 9. marts 12
concurrently on many devices, OS’es, languages.
and Android devices, rotation.
and operating systems.
fredag den 9. marts 12
fredag den 9. marts 12
fredag den 9. marts 12
fredag den 9. marts 12
19
fredag den 9. marts 12
19
fredag den 9. marts 12
19
fredag den 9. marts 12
20
fredag den 9. marts 12
Extensible.
21
fredag den 9. marts 12
22
fredag den 9. marts 12
22
fredag den 9. marts 12
22
fredag den 9. marts 12
when users performs touchs (i.e., no synthetic calls to gesture rec. etc).
user actions on views.
23
fredag den 9. marts 12
views, and optionally offsets.
24
fredag den 9. marts 12
25
fredag den 9. marts 12
26
fredag den 9. marts 12
27
fredag den 9. marts 12
are just lists of dictionaries).
28
fredag den 9. marts 12
Making app testing less painful... http://www.lesspainful.com
fredag den 9. marts 12