Apple introduced it's UI Testing framework (XCUITest) at WWDC 2015. The XCUITest framework enabled UI Tests to be written in Swift, Apple's own programming language, which can be understood by both QA and Developers to bridge the technology gap. Shashikant goes over why he thinks native automation for iOS apps might be a better option than Appium or Calabash. He also goes over other tips on automating in Apple’s iOS ecosystem.
About Shashikant Jagtap
Shashikant is passionate about DevOps practices for mobile apps especially iOS. He works on implementing DevOps, BDD CI/CD, Release Automation for platforms. Shashikant's tech toolbox include Swift, XCTest, XCUITest, Xcode Server, Fastlane, Ansible and experienced in setting up self-hosted or cloud-based CI for iOS apps. He is the author of XCFit open-source Tools which supports BDD in Swift for iOS apps. He is tech blogger @XCblog and writes about iOS Development, Testing, and DevOps.
Quotes & Insights from this Test Talk
- But in recent days, the team has been drastically changed. Now, businesses are adopting the Mobile First approach. And they have realized the importance of having iOS apps for their businesses. So as a result, they started hiring more and more iOS developers, so the team started growing. And that initiates need of having QA or QA team to test the iOS apps.
- Developers used to develop an application using their local machines, and then build the application, and hand it to the QA team for testing. Then the QA used to test those things manually. And there's heavy manual testing involved during this phase. So the regression cycles might be a week or weeks or, in some cases, it would be months. And usually, it takes months to release iOS apps to the users. So this approach is clearly not suitable for the fast paced competitive world.
- Tools like Appium or Calabash got really popular because of their cross-platform support. Because we can write a test both for iOS and Android platform using those tools. And there's no need to have two different tests made. And we can get both platforms automated using those sort of tools. But to me, this approach in very dangerous.
- So basically, we have to build an app in Calabash app format or in Appium format. And then we have to pass that app in the Appium. And then Appium or Calabash will take that app and then start testing that app. That means we can't work in parallel with the development team. So we can't really start testing unless the developer finished this feature. So it's very hard to find that parallelism between development and testing. So this approach is unsuitable as well.
- So we have discussed a lot of things about problems with those third-party UI automation tools. So one of the potential solutions is Apple's own Xcode UI Testing framework, also known as XCUITest. This framework has been launched by Apple in 2015. Basically, XCUITest is a UI testing framework embedded within Xcode, which allows us to write a UI test for iOS apps in Swift or Objective-C. So one of the benefits of using XCUITest is it's way faster than all these wrappers that we discussed before. So
- So why should you choose XCUITest? The main thing, it's maintained by Apple. So there's no chance that anyone can break these tools apart from Apple. Also, we can get the new features, new testing features straight into our workflow as Apple updates their tools. So we don't have to wait for someone to implement in the third party tools or something like that. So we can get these features straight away. Another thing is it speeds up the iOS development because we can collaborate with the developers and we can add more and more tests. We can make a decision what to test or what not to test. And it increases the collaboration between QA and developers, which is I think one of the great advantages of having XCUITest.
Connect with Shashikant Jagtap
- Twitter: @Shashikant86
- LinkedIn: shashikantjagtap
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.
Test Talks is sponsored by the fantastic folks at Sauce Labs. Try it for free today!