iOS Testing

The Apple Watch is coming. Are you ready? With the release of the much-anticipated watch happening in less than a month, I thought it would be fun to talk about iOS testing. This episode should help you get up-to-speed with iOS testing and start thinking about how you’re going to test Apple Watch apps. Andy Obusek is an iOS mobile developer at the popular Email marketing firm AWeber, and he shares some of his favorite IOS tips and tricks with us.

[app_audio src=”http://traffic.libsyn.com/testtalks/ttAndyObusekIOSTesting46.mp3″]

About Andy Obusek

andyHeadShot

Andy has been an iOS Engineer since iOS 3.0 with professional experience as an independent and enterprise developer. He is the co-host of the podcast Brotherly Mobile, where he talks about technology and software development with a loose focus on mobile devices. Andy has also spent significant time coding in the J2EE world and contributes articles to many of the popular technology how-to sites, including Tuts+.

Quotes & Insights from this Test Talk

  • XCODE is where you write your IOS code in.
  • You have two options when debugging your IOS apps – either on a physical device or a simulator – and there are pros and cons for running on either one.
  • It normally takes more time to run your test on an actual device.
  • XCTest is Apple’s unit testing framework.
  • Writing automation tests is hard, and is something you need organizational support for to be successful with.
  • You write Objective-C code that calls methods from your “production” code and verify that the code under test actually does what it's intended to do.
  • UI Automation is a tool provided by Apple to perform a higher level of testing on your iOS application than anything achievable with XCTest.
  • UI Automation tests are written in JavaScript.
  • OCMock is one of Andy’s favorite open-source tools that helps to mock objects for Objective-C.
  • KIF, which stands for Keep It Functional, is an iOS integration test framework. It allows for easy automation of iOS apps by leveraging the accessibility attributes that the OS makes available for those with visual disabilities.
  • KIF allows you to write automated tests using Objective-C or Swift.
  • FBSnapshotTestCase – created by Facebook and allows you to create image-based UI automated tests.
  • It's important that KIF does not make it into production code, as it will get your app submission denied by Apple.
  • Xcode 6 and above has the ability to measure the performance of a piece of code.
  • Apple Watch uses the WatchKit to write watch apps. The code you write for Apple Watch apps is going to be bundled with the iOS app that is paired with that WatchKit app.
  • Much, much more!

Resources

Connect with{Name}

May I Ask You For a Favor?

Thanks again for listening to the show. If it has helped you in any way, shape or form, please share it using the social media buttons you see on the page.

Additionally, reviews for the podcast on iTunes are extremely helpful and greatly appreciated! They do matter in the rankings of the show and I read each and every one of them.

SauceLabsSponser

Special offer for TestTalks listeners, get 20 hours of automated testing for free when you sign-up with promo code testtalks14 (more info).

6comments
Gio - March 31, 2015

Very interesting episode, glad to hear about iOS unit and functional testing. Andy has done a great job at describing the tools available!

While KIF is, in my opinion, the best acceptance testing framework for iOS at the moment, when it comes to unit testing there are many open source frameworks that can enhance the quality of the tests written that haven’t been mentioned. Two of them: Specta https://github.com/specta/specta for Objective-C and Quick https://github.com/quick/quick for Swift. They offer an RSpec style syntax, that makes for more expressive tests.

As for when to test on device or simulator, usually the unit tests can be tested reliably on the simulator, making for a faster feedback loop. On the other hand functional tests tend to be flaky on the simulator, so I find myself mainly using the device for those. This is an important thing to keep in mind when evaluating whether to build an in-house testing setup or relying on a CI provider in the cloud, as the latter might support only simulator tests.

Finally, I do think Swift will eventually replace Objective-C, and Apple has at least one app in production written in the new language, the WWD app.

If you’re looking for more informations on iOS unit and acceptance testing I’ve written a few posts on the topic, this is a good place to start for an overview of the best tools currently available: http://www.mokacoding.com/blog/ios-testing-in-2015/

Reply
Testing Bits – 3/29/15 – 4/4/15 | Testing Curator Blog - April 5, 2015

[…] Podcast: 46: Andy Obusek: iOS Testing: The Apple Watch is Coming – Are You Ready? – Joe Colantonio – http://joecolantonio.com/testtalks/46-andy-obusek-ios-testing-the-apple-watch-is-coming-are-you-read… […]

Reply
46: Andy Obusek: iOS Testing: The Apple Watch is Coming – Are You Ready? | Testing Podcast - June 8, 2015

[…] Show notes: 46: Andy Obusek: iOS Testing: The Apple Watch is Coming – Are You Ready? […]

Reply
Podcasting with Greg Heo – Podcast S04 E09 - Ray Wenderlich - August 19, 2015

[…] Andy Obusek on Test Talks […]

Reply
Click here to add a comment

Leave a comment:


d
c