Slide 1

Slide 1 text

USING UI TESTS TO START IMPROVING YOUR APP Ellen Shapiro | UIKonf 2016 | Berlin, Germany spothero.com | justhum.com | @designatednerd

Slide 2

Slide 2 text

THEORY VS PRACTICE

Slide 3

Slide 3 text

THEORY

Slide 4

Slide 4 text

TAKING OVER AN EXISTING APP

Slide 5

Slide 5 text

TAKING OVER AN EXISTING APP WITH NO TESTS

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

DOES THIS WORK FOR THE USER?

Slide 18

Slide 18 text

ADD A SCAFFOLDING OF UI TESTS AROUND YOUR APP

Slide 19

Slide 19 text

! BEFORE YOU START DEMOLITION ON THE EXISTING CODE

Slide 20

Slide 20 text

UNIT TESTS VS UI TESTS

Slide 21

Slide 21 text

UNIT TESTS

Slide 22

Slide 22 text

UI TESTS

Slide 23

Slide 23 text

SNAPSHOT TESTS VS INTEGRATION TESTS

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

INTEGRATION TESTING

Slide 26

Slide 26 text

INTEGRATION TESTING

Slide 27

Slide 27 text

PRACTICE

Slide 28

Slide 28 text

XCUI VS KIF

Slide 29

Slide 29 text

XCUI TESTING XCODE 7 / IOS 9+ / OS 10.11+

Slide 30

Slide 30 text

APPLE BUILT IT

Slide 31

Slide 31 text

APPLE BUILT IT TO FIT UIAUTOMATION

Slide 32

Slide 32 text

! BLACK-BOX STYLE TESTS TEST RECORDER

Slide 33

Slide 33 text

TESTS IN ONE PROCESS APP IN ANOTHER PROCESS

Slide 34

Slide 34 text

! MOCKING IS IMPOSSIBLE TEST CODE IN YOUR APPLICATION

Slide 35

Slide 35 text

! MOCKING IS IMPOSSIBLE TEST CODE IN YOUR APPLICATION

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

KIF TESTING FACILITATING FUTURAMA JOKES SINCE JUNE 2011

Slide 38

Slide 38 text

! EASY MOCKING BACKWARDS-COMPATIBLE OPEN-SOURCE CODE

Slide 39

Slide 39 text

! EASY MOCKING BACKWARDS-COMPATIBLE OPEN-SOURCE CODE

Slide 40

Slide 40 text

! USES PRIVATE APIS LOTS OF CRUFT FOR BACKWARDS COMPATIBILITY INCONSISTENT (ESP. ON CI SERVERS)

Slide 41

Slide 41 text

! USES PRIVATE APIS LOTS OF CRUFT FOR BACKWARDS COMPATIBILITY INCONSISTENT (ESP. ON CI SERVERS)

Slide 42

Slide 42 text

WHAT DO I USE?

Slide 43

Slide 43 text

SIMPLE APPS: XCUI COMPLEX APPS: KIF

Slide 44

Slide 44 text

SIMPLE APPS: XCUI COMPLEX APPS: KIF * AS OF A MONTH BEFORE WWDC 2016

Slide 45

Slide 45 text

WHAT DO I TEST NEXT?

Slide 46

Slide 46 text

CODE COVERAGE YOUR TESTING ASSISTANT

Slide 47

Slide 47 text

CODE COVERAGE YOUR TESTING ASSISTANT

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

REMINDER

Slide 54

Slide 54 text

ROBOTS ARE AWESOME, BUT THEY CANNOT REPLACE HUMAN TESTERS

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

OBLIGATORY SUMMARY SLIDE! > UI Tests give you user-centric feedback > UI Tests let you refactor confidently > Use XCUI for simple, KIF for complex stuff > Use Code Coverage to guide your testing > ! + " = ######

Slide 57

Slide 57 text

LINKS (PT 1) XCUI WWDC Session: https:// developer.apple.com/videos/play/ wwdc2015-406/ ObjC.io on Snapshot Testing: https:// www.objc.io/issues/15-testing/ snapshot-testing/

Slide 58

Slide 58 text

LINKS (PT 2) PSPDFKit "Ludicrous Speed" KIF: https:// pspdfkit.com/blog/2016/running-ui- tests-with-ludicrous-speed/

Slide 59

Slide 59 text

PHOTO CREDITS (PT 1) 130320-Z-TK422-893 by the Oregon National Guard https://www.flickr.com/photos/ oregonmildep/8576624536/ Serious Scaffolding by Dan DeLuca https:// www.flickr.com/photos/dandeluca/ 3261603273/

Slide 60

Slide 60 text

PHOTO CREDITS (PT 2) Gears by Joe deSousa https:// www.flickr.com/photos/mustangjoe/ 20437315996/