Paul Stringer’s Mastering TDD/BDD for iOS

Topics covered at IOS-TDD-BDD-01-02
View Schedule & Book More dates available

Next up:

Are you interested in testing? Are you ready to learn the best practices and principles to use great iOS testing tools in your projects? Join us for this 2 day hands on testing workshop!

In an industry of increasingly sophisticated iOS apps, business fortunes are dependant upon increasingly complex software. How do we get our apps right early, and keep them working as intended?

Testing is an essential part of the Agile software development process and in recent years the tools supporting testing on iOS have evolved to become some of the best in the industry. You will learn over this two day hands on workshop how to use these tools with the best practices and principles to use them well.

These skills provide an essential foundation for the modern iOS developer to craft iOS apps that are high quality, regression & bug free as-well as a pleasure to code and work with; not just for the first few weeks, but for months and even years.

Learn how to:

• Answer the question “can we submit?” in seconds not days

• Write maintainable tests that help you build Apps that get better not worse

• What to test and (just as importantly) what not to test in iOS

• Understand different considerations when testing Obj-C v Swift code

• Use tests to improve and change existing legacy code

• Spot and avoid common testing anti-patterns

• Understand acceptance testing and the role it plays in Agile software development

• Use Acceptance tests to drive more efficient development

• Work with FitNesse (an open source Wiki and acceptance testing framework)

• Automate tests using continuous integration and Xcode bots

• Apply effectively Unit Tests, Acceptance Tests and UI Tests on iOS

About the Author

Paul Stringer

Paul is an iOS expert combining skills in mobile product design with extensive software engineering experience. An influencer and leader having worked with development teams, key stakeholders and corporate clients incl. Apple and Sky. After years masquerading as a professional developer, Paul discovered 'Clean Code' and began a journey to a new understanding of what being a software professional meant. That journey continues through working with best practices such as TDD, Acceptance Testing and Pair Programming "as standard" in the pursuit of building the best possible software; Paul believes in the principle of getting software right early, and then keeping it working as intended.

Day 1

  • TDD and XCTest

  • An introduction to TDD and the XCTest framework

  • Understanding Mocks, Stubs and Fakes

  • Considerations for testing in Swift v Obj-C

  • Code Coverage reporting with Xcode and Xcode Bots

  • Testing Best Practices

  • Fundamental principles of writing testable code

  • Refactoring legacy code through tests

  • Writing defect driven tests

Day 2

  • Acceptance Testing

  • An introduction to the role of acceptance testing in Agile software development

  • Acceptance testing on iOS using FitNesse (an open source Wiki and acceptance testing framework)

  • Working with distributed Acceptance tests within a team

  • Clean Architecture

  • An introduction to Clean Architecture to facilitate simpler, easier tests.

  • User Interface Testing and Automation

  • An introduction to User Interface testing with UIAutomation and XCTest

  • Test coverage reporting and automation of tests with Xcode Bots


For developers of all abilities who are interested in furthering their skills with an improved understanding of best practices in TDD, BDD and Automation testing on iOS.


A working knowledge of Xcode and iOS development in Swift or Obj-C