Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Secret to blazing fast, rock-solid acceptance testing on iOS.

The Secret to blazing fast, rock-solid acceptance testing on iOS.

Acceptance Testing is one of the essential components of a healthy software development process; unfortunately on iOS this can result in the creation of slow, brittle and highly complex UI automation tests. These can leave you wondering, is it worth it? By revisiting fundamentals this talk explores the role it should play in driving collaboration between business and software and how it can be best applied to iOS.

In this talk you discover an alternative approach to UI based testing. Through using Fitnesse (a lightweight, open-source testing framework) we walk through an example of how to implement Acceptance Tests on iOS that are blazing fast, rock-solid and actually improve the architecture of your app. Increase you and your teams productivity and discover the secret to answering the question "Can we submit yet?" in seconds instead not days.

Paul Stringer

May 26, 2016
Tweet

More Decks by Paul Stringer

Other Decks in Technology

Transcript

  1. Acceptance Testing? Who should write them? What level of detail

    is sufficient? Who’s reading them? How should we test them? What language do we use? What tool should we write them with? When do we write them?
  2. “"Customers write functional tests so that their confidence in the

    operation of the program can become part of the program, too. The result is a program that becomes more and more confident over time - it becomes more capable of accepting change, not less" –Kent Beck, XP Explained
  3. UI Automation FAST ❌ INDEPENDANT ❌ REPEATABLE ❌ SELF-VALIDATING ❌

    TIMELY ❌ Source: Clean Code, Robert C. Martin Test Acceptance Criteria
  4. Acceptance Test-Driven Development (ATDD) Precise requirements are written Whole team

    writes these together Written in a ubiquitous language Examples drives the development
  5. Read, Write, Execute the requirements Works with everything (Mac, iOS,

    Android) No dependancy on UI Fully integrated standalone wiki and acceptance testing framework
  6. FitNesse <Slim Server> Fixtures System Instructions Web Browser UIKit Views

    View Controllers System Touch Events Human Responses Updates CI FitNesse FitNesse YourAcceptanceTests.App Your.App
  7. Final Thoughts Acceptance testing is essential in Agile software Understanding

    requirements early saves time & effort Non UI based testing is faster, and more reliable Try on something small, see how it works
  8. “Show me your flowcharts and conceal your tables, and I

    shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.” –Fred Brooks, The Mythical Man Month @paulstringer stringerstheory.net/acceptance-testing-with-ios/