automated acceptance testing of mobile...

21
automated acceptance testing of mobile apps Karl Krukow, CTO, LessPainful Goto Aarhus, 2012 [email protected] , @karlkrukow 1 tirsdag den 2. oktober 12

Upload: others

Post on 26-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

automated acceptance testing of mobile apps

Karl Krukow,CTO, LessPainful

Goto Aarhus, [email protected], @karlkrukow

1

tirsdag den 2. oktober 12

Page 2: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Agenda

• Automated testing for mobile

• desirable properties for an acceptance testing tool

• Introduce Calabash via Short Live Demos

• Focus on iOS

• LessPainful: test service and device cloud

2

tirsdag den 2. oktober 12

Page 3: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Professional practices?• Invest the time once! Get the practices going.

Examples:

• Unit testing

• Acceptance tests (see this talk!).

• Continuous build

• Continuous unit test, functional test (code coverage).

• Static analysis using clang/FindBugs.

• Automated deployment to users via in-app updates or link in email.

• Automatic Crash/Error reporting.

• ...

3

Go talk t

o the g

uys fro

m eBay

Classifi

eds G

roup

DenBlåA

vis+BilB

asen

tirsdag den 2. oktober 12

Page 4: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

The QA story for mobile

4

tirsdag den 2. oktober 12

Page 5: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

The acceptance testing story for mobile apps

5

• As realistic an environment as practically possible.

• simulators/emulators are good, but not enough!

• Many devices, screens, resolutions, OS’es, CPUs

• Varying Conditions (Settings, Network, Storage...)

• Often a manual process: repetitive, expensive

• Regressions, e.g., app crashes

• Visual appearance of screens matter (alot!)

• User experience, Design guidelines, branding,...

tirsdag den 2. oktober 12

Page 6: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Significant Differences

• Problems that arise from differences are significant

• Crashes

• Graphical Errors

• Wrong Computation

• UI Components

• Inaccessible text, buttons...

tirsdag den 2. oktober 12

Page 7: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

• Minimize distance between use cases and actual test code (DSLs?).

• Expressive and efficient to write & maintain.

• Extensible (open vs closed source)

• High-level, declarative (robustness:“minor” UI changes).

• Support testing in realistic environments (real devices, on multiple OS versions, languages).

• Support Continuous integration.

7

Automated acceptance testing desiderata

tirsdag den 2. oktober 12

Page 8: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

tirsdag den 2. oktober 12

Page 9: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Calabash• Vision: Cross-platform Automated Acceptance Testing

• One interface: Cucumber, for Android and iOS.

• BDD. Business understandable spec, executable as tests

• Reuse of Cucumber features across platforms possible.

• Runs on physical devices and simulators/emulators.

• Support for native and hybrid apps (embedded webviews)

• Free, open source (Eclipse Public License)

• with optional commercial extras support, training, consulting, device cloud, private device cloud

9

tirsdag den 2. oktober 12

Page 10: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

LessPainfulTest Execution Service

• Execute Calabash tests in parallel on many devices, OS’es, languages.

• Visual test reports.

• Comparison across models and operating systems.

• Authentic: Not jailbroken/rooted, supports both iOS and Android devices.

• Continuous integration: lesspainful app.ipa KEY

tirsdag den 2. oktober 12

Page 11: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

tirsdag den 2. oktober 12

Page 12: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

tirsdag den 2. oktober 12

Page 13: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Calabash iOS: by way of Demo

13

tirsdag den 2. oktober 12

Page 14: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

The Setup- install and run

- Cucumber Basics- predefined steps

14

tirsdag den 2. oktober 12

Page 15: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Calabash Architecture

JSON over HTTP

Your App

Calabash Servers (iOS, Android)Calabash Clients

Calabash Android

Calabash iOS

Calabash JVM

...

tirsdag den 2. oktober 12

Page 16: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Cucumber + Calabash

16

Step DefsSupport

FeaturesFeaturesFeatures

Gherkin Ruby

CalabashClients

Uses

Cucumber Tool

Executes

ProducesTest Results

tirsdag den 2. oktober 12

Page 17: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Calabash iOS Basics- interactive/exploratory development

- core API- screenshots

17

tirsdag den 2. oktober 12

Page 18: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Calabash iOS Advanced- record/transform/playback

- web view support- location support

18

tirsdag den 2. oktober 12

Page 19: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Roadmap for Calabash• Support for dynamic query and action on Android.

• Better support for reuse of test code across platforms

• More uniform APIs (old apis will not dissappear)

• Naming and conceptual model

• Protocol-level

• Support platform specific actions, where useful

• Support for JVM, Better WebView support, Better tooling.

• Clojure POC already exists - supports any JVM language

• Your inputs!

19

tirsdag den 2. oktober 12

Page 20: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

References• https://github.com/calabash

• https://github.com/calabash/calabash-ios

• https://github.com/calabash/calabash-ios/wiki

• https://github.com/calabash/calabash-ios-server

• https://github.com/calabash/calabash-android

• http://blog.lesspainful.com/

• https://www.lesspainful.com/

20

tirsdag den 2. oktober 12

Page 21: automated acceptance testing of mobile appsgotocon.com/dl/goto-aar-2012/slides/KarlKrukow_Calabash... · 2012-10-02 · The acceptance testing story for mobile apps 5 • As realistic

Making app testing less painful...Please contact us with any questions:

[email protected]@lesspainful.com - iOS

[email protected] - Android

http://www.lesspainful.com

Questions?

tirsdag den 2. oktober 12