Home » iOS

Category: iOS

Phased Release - Adventures in QA

Phased Release for Automatic iOS Updates

As announced by Apple at the WWDC 2017 there will be a new AppStore coming this year with the possibility of a phased release for automatic updates. The new feature will provide companies and developers the chance to roll out new app releases to a smaller user base to see if the new version is stable and if the new feature is appreciated by the customers. Apple offers the following steps:

  • Day 1: 1 percent
  • Day 2: 2 percent
  • Day 3: 5 percent
  • Day 4: 10 percent
  • Day 5: 20 percent
  • Day 6: 50 percent
  • Day 7: 100 percent

Apple selects users for each bucket randomly based on their Apple ID, which is better than the device ID, because users may have several devices like an iPhone and iPad and then they get the same app on each device. And users can only be selected by Apple if they turned automatic updates ON.

Once an app is configured for the phased release, the app must pass each step, which is from my point of view not really flexible. Maybe companies want to start the phased release with a bigger customer group than 1, 2 or 5 percent to get faster feedback. However, on the other side it provides a nice way to monitor new features in the live environment and to react on possible issues and it’s the right way to give companies and developers more options to release an app. Stopping the phased release is possible. Developers have the option to push the app to 100% at any time via the iTunes connect. Read more

UI Testing by Apple - Adventures in QA

User Interface Testing by Apple

On this year’s WWDC 15 Apple presented a new way of user interface testing within Xcode 7. With the new version of Xcode Apple introduces user interface testing as a brand new feature of the existing XCText framework. The great thing about the new ui testing approach is that it is an extension to the existing APIs and concepts in XCTest. Developers who are familiar with XCode’s testing features will have no problems to adopt ui testing in their daily working life.

Apple introduced UI recording to Xcode where developers and testers are able to capture the current activities on the iOS simulator directly into the test method. Also interaction with the app will be recorded and added as test steps. The tool is using the accessibility labels in order to recognize the elements within the app. UI testing can be used with Swift and Objective-C, there is no need for JavaScript testing anymore. However, UI testing is only working with iOS9 devices.

Read more

Common Apple App Store Rejections

Since a couple of days (at least I never saw that page before) Apple provided a page with the most common app store rejections.

On the page several categroies are listed, providing information on how to prevent your app from being rejected.

When testing and/or submitting an iOS app have the following points in mind.

  • Crashes and Bugs: Submit the app if it is well tested.
  • Substandard User Interface: Be sure the app is following Apple’s design guides and design Dos and Dont’s.
  • Broken Links: All links must be functional.
  • Advertisements: If your app contains ads, be sure they are shown properly.
  • Placeholder Content: No lorem ipsum or any other kind of placeholder texts are allowed to be in the app.
  • Incomplete Information: Provide logins if your app requires them. Provide descriptions and images or videos of your app.
  • Web clippings, content aggregators, or a collections of links: In short, submit only native apps :).
  • Repeated Submission of Similar Apps: You are not allowed to submit several apps that are essentially the same.
  • Inaccurate Descriptions: App descriptions must be clear.
  • Misleading Users: Your app must work as advertised in the store.
  • Not enough lasting value: Your app should solve a problem to the user and must provide value.

Besides this little overview, Apple also provided the top 10 reasons why apps are currently rejected. Furthermore, the total percentage of app rejections is shwon. Find the numbers in the following pictures.

Top10 of app rejection reasons Total percentage of app rejections

 

Both pictures are screenshot from the Apple page and the figures are based on September 2014. I just wanted to give you a quick heads up to this page. The ULR to page is: https://developer.apple.com/app-store/review/rejections/

Happy testing.

How to stress test your iOS app

My last blog post was about stress testing your android app. Today I found another interesting stress testing tool for iOS. The tool is called UI AutoMonkey. The tool is really simple and can be added directly to your xCode project. UI AutoMonkey runs in UIAutomation and Instruments.

All you have to do is to setup a UIAutomation Instruments template with the provided script. Have a look at the simple installation instructions on the github page. After the setup, UI AutoMonkey is stress testing your app with different commands.


The following code snippet shows the JS script and some defined stress testing commands.

...
 eventWeights: {
 tap: 500,
 drag: 1,
 flick: 1,
 orientation: 1,
 clickVolumeUp: 1,
 clickVolumeDown: 1,
 lock: 1,
 pinchClose: 10,
 pinchOpen: 10,
 shake: 1
 },
...

The complete tool documentation can be found here.

What tool are you using for stress testing your iOS app?

Have fun!

Posted by Daniel Knott