iOS12 is already in Beta 2 for almost a week, and the industry is 2 months away for this major iOS GA release.
It’s a great time to start planning both the testing and development implications this new OS will bring to your project, and look at this from a continuous testing (CT) stand point.
Continuous Testing & iOS12
CT refers to the ability to test in an automated way each code change at any phase of your development life-cycle, from early design stages, through coding, build-acceptance, regression, and production.
So how does it relate to iOS12? –> If there is no solid automation in place today, than identifying issues that are specific to iOS12 Beta in advance will be quite hard to accomplish, regardless of the code changes the team is making to the app. Many changes in performance, UI, and functionality across devices and apps is being introduced in iOS12, and covering them in an Agile process without automation will simply be unrealistic.
Testing iOS native apps today is mainly doable through Apple’s XCUITest framework and Appium (that relies on XCUITest underneath), so for any existing iOS11, and iOS10 test code that your teams are currently using, they should start debugging these scripts against an iPhone running the iOS12 beta to identify any issues. Such tests might be running from within the continuous integration (CI) process per code commit or via a scheduled trigger today, therefore an early debugging and analysis of these processes can ensure a smooth transition to iOS12 once it is out.
What to Focus on From a Testing Perspective in iOS12
iOS12 will introduce a large set of innovation to both the platform itself, new devices, new watchOS (5) version, performance improvements, new look & feel and more. To help teams focus on the most important things as they prepare for the iOS12 GA, I would recommend considering the following:
- Device coverage: iOS12 will be supported across all of the supported iOS11 devices that are in the market today, as well as new devices that will be launched in September like new iPhone X, iPhone 9, and potentially new iPads. Such thing means that from a lab perspective, the device coverage should be broader than today and cover few generations up until iPhone 5S to be able to assess the quality and performance of the apps across these devices. In addition, the adoption time of a new iOS takes between 4-6 months, hence having the proper combinations of iOS12 and iOS11 across the various devices is key for continuous testing and quality assurance. Do not forget about key devices that are still quite popular in the market and are running iOS10.3.3 (iPad 4th gen, iPhone 5C) and iOS9.3.5 (iPad Mini, iPhone 4S) – Validate based on your usage analytics and defect history whether these device families should still be supported or not.
- New UI Enhancements: in iOS12, Apple will make some changes to the UI in various ways. Testing the application across devices from a UI perspective on iOS12, as well as on the previous iOS11/10 is obviously critical. in iOS12 Beta 2 and in its upcoming GA, especially on iPhone X there is a new way of terminating an app that is different from iOS11. Instead of a long press and a swipe up that was the traditional way for killing an app in iOS11, now only a swipe up is required. In addition, notifications, and app usage as well as battery usage screens were added and whenever relevant to your app, requires to be tested. In addition, the new “Siri Suggestions” has an implications on apps or recently used apps, and needs to be taken into consideration from testing perspective since there is another place in the UI to launch your apps from.
- App Usage and UX Related: In a similar way as Google implemented in Android P its digital well being capabilities, so did Apple with iOS12. The new OS version will continuously measure and monitor the end-user time spent and battery consumption for his top used applications under a new UI feature called “Screen Time“. This enhancements has few implications:
- There will be an highlighted and growing competition on time used per app, that means app need to perform well, fast, and with great quality.
- Battery consumption will be a “thing” for the end users, hence, app developers should leverage the iOS12 new capabilities and optimize their apps accordingly.
- Continuous Testing with the new “USB Restriction” mode: in iOS11.4.1 Apple already rolled out the new implementation of USB restricted mode, that was supposed to be launched as part of iOS12. Having this feature early shall allow developers and testers the opportunity to assess what goes on when testing the app continuously and than leaving the device idle for an hour. Once done, the USB port will be “blocked” from security reasons, however will have implications on the next testing cycle. Perfecto figured a way to bypass this limitation for testing purposed only, and allows the users to continue testing on the iOS devices regardless of the idle time, as well as unlock the devices via fingerprint and/or Face-ID.
There is time for practitioners (developers and testers) to get an hands on experience with the iOS12 dev preview and public beta versions, and assess the impact on their supported apps (B2B/B2C), and tune their testing and development roadmap, processes, and lab so when in September the GA is out, they will be in a perfect spot to announce full support of this new platform. This will reduce R&D pressure, will delight their customers, and prevent potential business loss.