Activ5 is a portable workout device and mobile app that coaches its users through low impact, isometric workouts in as little as five minutes per day. Activ5 measures and tracks the performance of its clients and offers various fun games games you can play while exercising.
Our client approached us at the point when Activ5’s popularity grew, the app was undergoing constant changes, new functions and additional features were added, new workout games developed. In order to widen its audience and make sure every user stuck to the app, developers had to pay special attention to the quality and usability of its product.
The application needed to be
Activ5 asked us to perform manual functional testing as well as test automation on iOS apps.
We started our project with manual testing, as the quickest way to ensure quality of the product in the begging.
Through the course of our work, we used Charles Proxy for API testing, Xcode and Android Studio for recording all logs. We were distributing test builds via Testflight, Crashlytics and Google Alpha.
Our park of the devices covers about 50 percent of the US mobile device market
In addition to functional testing we realized Test Automation for iOS apps. When choosing our approach to automation, we were considering two main options: Appium and XCUTest. We have decided to use Appium, which is a test framework based on Selenium and JsonWireProtocol. When choosing from a multitude of tools and frameworks we have opted to go with Appium as it helped us significantly reduce the cost of test automation for our client.
Advice! The main advantage of Appium was the lack of need to rewrite the tests for Android in the future; all that would have to be done is adding new locators and new settings for Appium server.
One of the key features of this project was the fact that Activ5 is not a simple app, it is an application for a portable fitness device connected via Bluetooth; therefore, we had to test the interaction between the app and the device itself. In addition to typical Functional Testing and Test Automation app testing of the main functionality, we had to include mobile phones Bluetooth compatibility and stress tests into this project and use specific programs like BLE.
Important! To get the information about app stability in the quickest way, you can integrate your app with Crashlytics services; this way you can always have access to analytics and react to any problems immediately.
One of the challenges of this project had to do with the initial submission to the App Store. One of the cases on those guidelines was that the App should work in Ipv6 only networks. In order to properly test for compliance with all App Store Review Guidelines, we had to test the behavior of the app in the IPv6 network.
Problem: Since the share of IPv6 network traffic in Russia is only about 1 percent, we had to jump quite a few hoops in order to quickly obtain decent IPv6 coverage in our office.
Solution: Running a very tight deadline, we ended up renting the VPN server in the United States in order to tunnel iPV6 network into our Russian office. This enabled us to timely complete all testing required before the Store release.
Another issue we came across was working on a multinational team across different time zones. Android, iOS and Game applications were developed by three separate teams located on three different continents. At the onset of the project, it was rather a challenge trying to link them up. However, using Agile methodology, we managed to successfully integrate our QA team into developers' regular sprints.
Result! You managed to use the difference in the time zones to our advantage. Our team has shifted its schedule so that the majority of testing began right when the developers' workday was over. This way when the client returned to work the next morning, all tests were executed and all bugs were submitted in the bug tracking tool. This helped cut the release time significantly.
There's no better place for a QA solution than Performance Lab.
Drop us a line to find out what our team can do for you.