$30 off During Our Annual Pro Sale. View Details »

Outside In: Using UI Tests to Start Improving Your App - UIKonf Berlin, 2016

Outside In: Using UI Tests to Start Improving Your App - UIKonf Berlin, 2016

Video:
https://www.youtube.com/watch?v=hYCUy-9yq_M

Quite a bit of theory and a bit of practice about how you can use UI tests to give yourself a framework to improve an existing, untested app without unintentionally breaking functionality for your users.

Video of XCUI tests running painfully slowly available here: https://youtu.be/XbqDFokGkQc

Ellen Shapiro
PRO

May 23, 2016
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

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

    View Slide

  2. THEORY
    VS
    PRACTICE

    View Slide

  3. THEORY

    View Slide

  4. TAKING OVER AN
    EXISTING APP

    View Slide

  5. TAKING OVER AN EXISTING APP
    WITH NO TESTS

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. DOES THIS WORK
    FOR THE USER?

    View Slide

  18. ADD A SCAFFOLDING
    OF UI TESTS
    AROUND YOUR APP

    View Slide

  19. !
    BEFORE YOU START DEMOLITION
    ON THE EXISTING CODE

    View Slide

  20. UNIT TESTS
    VS
    UI TESTS

    View Slide

  21. UNIT TESTS

    View Slide

  22. UI TESTS

    View Slide

  23. SNAPSHOT TESTS
    VS
    INTEGRATION TESTS

    View Slide

  24. View Slide

  25. INTEGRATION
    TESTING

    View Slide

  26. INTEGRATION
    TESTING

    View Slide

  27. PRACTICE

    View Slide

  28. XCUI
    VS
    KIF

    View Slide

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

    View Slide

  30. APPLE BUILT IT

    View Slide

  31. APPLE BUILT IT
    TO FIT UIAUTOMATION

    View Slide

  32. !
    BLACK-BOX STYLE TESTS
    TEST RECORDER

    View Slide

  33. TESTS IN ONE PROCESS
    APP IN ANOTHER PROCESS

    View Slide

  34. !
    MOCKING IS IMPOSSIBLE
    TEST CODE IN YOUR APPLICATION

    View Slide

  35. !
    MOCKING IS IMPOSSIBLE
    TEST CODE IN YOUR APPLICATION

    View Slide

  36. View Slide

  37. KIF
    TESTING
    FACILITATING FUTURAMA JOKES
    SINCE JUNE 2011

    View Slide

  38. !
    EASY MOCKING
    BACKWARDS-COMPATIBLE
    OPEN-SOURCE CODE

    View Slide

  39. !
    EASY MOCKING
    BACKWARDS-COMPATIBLE
    OPEN-SOURCE CODE

    View Slide

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

    View Slide

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

    View Slide

  42. WHAT DO I
    USE?

    View Slide

  43. SIMPLE APPS: XCUI
    COMPLEX APPS: KIF

    View Slide

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

    View Slide

  45. WHAT
    DO I TEST
    NEXT?

    View Slide

  46. CODE
    COVERAGE
    YOUR TESTING
    ASSISTANT

    View Slide

  47. CODE
    COVERAGE
    YOUR TESTING
    ASSISTANT

    View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. View Slide

  52. View Slide

  53. REMINDER

    View Slide

  54. ROBOTS ARE AWESOME,
    BUT THEY CANNOT REPLACE
    HUMAN TESTERS

    View Slide

  55. View Slide

  56. 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
    > ! + " = ######

    View Slide

  57. 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/

    View Slide

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

    View Slide

  59. 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/

    View Slide

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

    View Slide