This is a reblog, of my blogpost iOS Calabash Launcher for MacOS from tech.xing.com. I want to share the post with you, because it might be of interest.
Today, the XING mobile releases team want to give something back to the Open Source community. At XING, using Open Source software in our projects is natural. For our mobile apps (iOS and Android) we use Calabash to write end-to-end automated checks, to verify that the user flows are covered before going live. For those people who worked with Calabash for iOS and Android they know that it’s sometimes really hard to define screens, to detect the ID as well as the text behind an element. The default Calabash installation provides a console based element inspector, which makes it not easy to work with. Furthermore, the default installation from Calabash doesn’t offer any visual device detection, test execution, element inspection or setup possibilities.
But this will change today! We are proud to Open Source our Calabash Launcher. Read more
Every new feature that is implemented on a mobile app must be tested. Of course, software testers can write long test cases and test plans but we all know that the requirements of feature can and most likely will change during the development phase. Sometimes new requirements are showing up or requirements are not important or valid anymore. If a huge test plan have been written it needs to be adapted and this is time consuming. A couple of blog posts I published the mobile testing cheat sheet, to help you not to forget to test important aspects of mobile testing. In this blog post I want to share a quick mobile testing checklist which may help you to concentrate on 10 very important things to test. Besides that I recommend you to create mind-maps instead of long test cases to outline your tests against the requirements.
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
In this post I want to find out, what are your current mobile testing pain points? I created a very short survey with just 2 questions to gather some information from you. The goal of this short survey is to understand the current problems mobile testers have in their daily work-life. The outcome will help me to outline new blog posts that may help you in solving your problems.
Please feel free to share this survey on all known social media channels or with your colleagues.
In one of my last blog posts, I wrote about the Mobile Bug Matrix and how to use it to identify bugs that are worth doing a hotfix. Today, I write about the mobile release train and how to use this approach to release apps to the different app stores.
The release train concept is nothing new and is part of the scaled agile framework. It describes how to deliver software in a specific way. The concept of the mobile release train can be used by small and/ or bigger distributed teams who work on one app, but in different teams. Usually smaller app developer teams/ companies release an app whenever there are enough bug fixes or new features that make sense for their users. However, apps that are developed across multiple teams need an aligned approach to plan releases in advance. If more than one team is developing features they may depend on each other and can’t release without the changes from other teams. In this case, it is not possible to just push the release button to upload an app, this approach will fail.
The Mobile Release Train
Let’s take a look at a mobile release train. In the following picture, you see a simple one. It has a defined development phase in most cases 2-4 weeks. On a defined day and time let’s say on a Monday at 3pm, there is a code freeze happening. Until this time, the teams have the time to review, test and merge the features to the master branch that should be part of the train. At 3pm someone will create a release branch from master branch, either manual or in an automated way. This release branch will get a final integration testing phase. In this phase, all team members should check that the new features are working as expected. If there is a problem on the release branch the bug will be fixed on the release branch and later merged back to the master branch.