Happy Summer! Sadly there are about 6 weeks left till autumn 🙁
Last month we heard about iOS 11 and boy there were some good announcements! By now most of you know that when WWDC rolls around it’s a scramble to make sure your team is prepared for the changes in iOS app development and testing. Today I wanted to highlight some of the big changes that are coming and how they will probably influence your iOS app development and testing.
With iOS 11, Apple has dropped support and upgrade for some iOS devices. This means that some old but still popular devices will not get iOS 11. (Download the latest list of Top Must-Test Devices for Global Markets)
Below is a list of supported iOS Devices for iOS 11 as of the Public Beta:
iPhone 7 Plus
iPhone 6S Plus
iPhone 6 Plus
2017 iPad (9.7-inch)
2017 iPad Pro (10.5-inch)
2017 iPad Pro (12.9-inch)
iPad Pro (9.7-inch)
iPad Pro (12.9-inch)
iPad mini 2
iPad mini 3
iPad mini 4
iPad Air 2
iPod touch 6th generation
- 2017 models have hardware changes
As you can see from the above list, 3 new models have been introduced that contain hardware changes. The biggest change to note is that these devices have adopted the camera from the iPhone 7.
Dropped from this list are the iPhone 5c and iPhone 5. Anything else which is older will also not get iOS 11.
iOS Test Automation
When it comes to iOS test automation on these new pieces of hardware and with any beta software it can be tricky to be certain that the software is bug free. It’s known that when a particular beta gets GM, that means most of the significant changes are behind the release. As we approach Fall and vacations are in swing, if you are a QA engineer or developer, now’s good time to start poking at the changes and get familiar with what the surrounding tools are doing to support iOS 11.
Appium this time around has done a very good job staying on top of iOS 11. While some issues have been worked out, there are still issues around parsing and scrolling. There weren’t too many changes to the API for XCUITest where it was a catastrophic failure like iOS 10 with Appium. That brings me to another point that we see a lot of companies are providing their own workarounds.
While this is great, you need to be careful if that company stops supporting the code they are developing for you and your team to continue its mission. The same is true for any piece of software, but these days I would really think twice about putting all your eggs in a basket with one company providing hacks with beta software. Business needs changes and so does technology, and by wrapping your code around code that isn’t open source or is the creator of some significant I would stay away from as much as possible.
Here at Bitbar we don’t add any special frameworks that are only proprietary to us. This means that what you can achieve in our cloud environment you can also replicate locally, without any issues on scalability 🙂
OK, back to iOS 11!
So if you’re wondering how the state of things in the automation world is shaping up for iOS…
For Appium it seems to be a very good indicator that if Facebook’s Web Driver Agent is working, Appium will also be working. However, there might be some items in Appium that will be broken due to changes in XCUITest these could be depreciated APIs or classes that were once available to Appium and other third-party automation frameworks. To keep on top of the status, you can track this issue: https://github.com/facebook/WebDriverAgent/issues/639 (Need a refresh of using Appium for mobile app testing? download our Appium ebook here)
For Calabash the same here is true. And believe it or not, Calabash might be in a worse state than Appium. Link: https://github.com/calabash/calabash-ios/issues/1309 Despite the changes Xamarin announced, they are coming for it after iOS 11. But for now, make sure you have everything set for testing iOS 10 with Calabash.
Now does this mean it’s completely behind? No. In fact, most people have been able to do something with it so help is coming! Apple just released beta 4 of Xcode 9 a few weeks ago.
So far one of the cool new additions (in my opinion) to the API in XCUITest is the XTCAttachements. This new feature now allows you to store screenshots and attachments in the test run reports to be reviewed later.
The next cool feature that Apple finally did is to start giving developers and automation engineers more tools to get things done quicker. This new capability is headless testing, which will run automation using core-simulator in headless mode. This means you won’t see simulator GUI’s spun up on the machine running the tests. This is a huge win for unit testing and hopefully less resource intensive on your machines. I would caution to still keep in mind that using real iOS devices is still the best choice when you are getting ready to release software.
The last thing I will note in this article that everyone can be excited about is that Apple introduced some changes in how it executes tests as well as matches for queries. The first match API is good to use if you know there is only one item in the view that the automation should look for. So before you could use predicates and others to query, now you can simply use:
Stay tuned for more information regarding these improvements and when you can expect to take full advantage of these in Bitbar!
Get all essentials about XCTest framework and learn how to get started with it for cloud testingDownload