Slide 1

Slide 1 text

Acceptance Testing ! The secret to fast, r0ck-solid, automated acceptance tests. @paulstringer

Slide 2

Slide 2 text

Two Kinds Of Tests Verify your code is correct Validate you wrote the right code

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

“Defect Avoidance is more powerful than defect removal” – Levendal (1990)

Slide 5

Slide 5 text

iOS Acceptance Testing Appium Kif Subliminal Zuchinni Calabash Frank UIAutomation Cucumber XCUITest

Slide 6

Slide 6 text

•Doesn’t scale (slow, fragile, complex) •Very hard to exercise all business logic •Very poor defect localisation •Customer doesn’t write or read them •Abandoned, revert to manual testing

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

BDD / ATDD Executable Specifications Automated Tests Living Documentation

Slide 9

Slide 9 text

“Are you doing BDD? Or are you just using Cucumber?” – Aslak Hellesøy

Slide 10

Slide 10 text

Courtesy of Aslak Hellesøy, - cucumber.io

Slide 11

Slide 11 text

Plan, Read, Write, Execute requirements Works across platforms (Mac, iOS, Android) An alternative, first UI to your App Fully integrated standalone wiki and acceptance testing framework

Slide 12

Slide 12 text

Demo

Slide 13

Slide 13 text

FitNesse Fixtures System Instructions Web Browser UIKit Views View Controllers System Touch Events Human Responses Updates CI FitNesse FitNesse YourAcceptanceTests.App Your.App

Slide 14

Slide 14 text

Clean Architecture Affords the ability to independently validate behaviour separate from annoying implementation details (e.g. Databases, Network or UI)

Slide 15

Slide 15 text

Final Thoughts ATDD/BDD is the practice of customers writing the tests Fully understanding requirements early saves effort later Non UI based testing is fast, reliable and scales Helps improve collaboration and understanding across team and most importantly with the customer. Good choice for long-term, complex software

Slide 16

Slide 16 text

TicTacToe - http:/ /bit.ly/CMDU-TTT ‘OCSlimProject’ - GitHub, CocoaPods Tutorial - http:/ /stringerstheory.net Questions - @paulstringer Discover More… Code and Resources