This post is from the Experitest blog and has not been updated since the original publish date.
CI/CD methodology for Mobile Apps - Streamline the Dev, Test & Release Cycle
Enterprises rely on their mobile apps to fulfill a specific function within their business. Distilled to its core purpose, however, a mobile app exists to create a great user experience. Above all, enterprises want, increased revenue and to be thought of positively by the consuming public, which usually leads to increased revenue anyway. More companies than ever are accomplishing this with CI/CD methodology that helps them release their apps and updates faster while eliminating bugs.
The result of a successful CI/CD methodology is shortened mobile app release cycles and high customer satisfaction. Before we can delve into implementation, however, we need to quickly review what exactly CI/CD is and how it works.
CI/CD Methodology Defined
CI/CD stands for continuous integration continuous delivery.
Continuous Integration is a practice in software and mobile development that breaks down apps into small pieces of code that are uploaded into the central repository a few times per day in order to locate and detect problems more easily.
Continuous Delivery is a software engineering method in which software is produced in short cycles so that apps can be released quickly and reliably. The method is aimed at building testing and releasing software and apps faster.
So you can see how combining these two methods successfully can be a great boon to any company that gets it right.
In order to help you get it right as well. We have prepared 6 best practices that are essential to creating a successful and well-rounded CI/CD environment.
Experitest offers the SeeTest suite of tools an end-to-end mobile DevOps solution with capabilities that will increase your CI/CD methodology effectiveness and ultimately improve your mobile app testing.
Implement a mobile device cloud allowing remote access to a wide selection of devices, emulators, and simulators
You need to test with a diverse matrix of devices from different manufacturers and running different operating systems. SeeTestCloud enables remote users to access devices and simulators from any location by connecting to a centralized device management cloud. The cloud is deployed in two different ways.
SeeTest's online cloud features devices hosted at Experitest data centers. SeeTest Onsite cloud is a mobile device hub that is located on an enterprise's premises. These clouds allow developers and testers to access a large pool of real mobile devices, emulators, and simulators. The mobile devices that are accessible through the cloud are fully controllable as if they are in the tester's hand. The cloud is accessed from any browser with no setup or installation required, and all mobile OS versions including betas releases are available. It makes for the perfect environment in which to implement CI/CD methodology.
Create a common test environment for developers and testers, complete with collaborative tools
Once your cloud is implemented and running you must provide developers with advanced testing tools, easy test development and access to real remote devices early in the development process. The SeeTestCloud solution is easily integrated with any development environment and supports UI as well as unit testing. You can even integrate with your favorite open source frameworks.
With your environment set up and integrated, you can start developing and debugging your mobile applications. The tools at your disposal for simple test creation include the test recorder and the object spy. You can also test non-standard UI elements, integrations with system apps or 3rd party applications, integrations with device components, or application components built with SDKs.
That is not all of course. We mentioned the collaborative tools at the top of this section. These will improve your communication and expedite root cause analysis and bug detection. With the SeeTest suite of tools, you can share live sessions with testers and developers, debug on any remote device where the fault occurred, and use shareable step-by-step videos reports from QA to easily reproduce bugs in your apps.
Integrate your test environment with CI tools and case management systems for end-to-end hands-free automation
We mentioned integrations above but let's take a closer look. Integrate the SeeTest suite of tools with any CI environment, and you will be able to scale your mobile projects into a fully automated 24/7 continuous testing environment. SeeTest integrates seamlessly CI/CD methodology solutions like Hudson, Jenkins, TeamCity, Quality Center, Bamboo and TFS, Ant.
Use the RESTful API to mass deploy application on targeted devices, and analyze your results with centralized test reporting.
Implement continuous testing with large scale test automation, covering all mobile app test cases
Once integrated with SeeTest you will have a centralized, cloud-based execution management environment. This comes with many capabilities that will help manage your tests. With access to the Grid, you will be able to see all test executions in real time. Resources are allocated automatically and devices are kept in use 24/7 running different tests from different projects with dynamic test scheduling, execution, and distribution. We sometimes refer to this capability as large-scale parallel execution. You can execute your tests directly from your CI, and run multiple CI projects at once.
Centrally manage devices, applications, projects and users
We divide these capabilities into two sections, administration and reporting.
Our administration capabilities allow administrators to control devices, users, projects, and applications.
Device management gives the admin the ability to schedule device reservations, and filter device selections. User management defines user roles, permissions, and device access. Project management assigns devices, and applications to users for specific projects and creates a secure separation between projects. Finally, application management provides mass installation, mass deletion, cleanup, and version control capabilities.
With reporting and alert management capabilities, you will be able to view everything from the easy to navigate dashboard for a quick overview. From there admin can generate reports by device, user, project, and application. There are even options to set up email alerts in order to keep your testing and QA teams up to date with any changes.
Leverage end-to-end QA data analytics for rapid root cause analysis and constant QA status
Centralized test reporting, via the SeeTest suite of tools, gives testers and QA teams consolidated test results that give them end-to-end quality insights and drives improvements. The insights indicate high-risk areas and root cause analysis and lead developers and QA to action. When you look at specifics as these tests give you sometimes you can miss the forest for the trees. The SeeTest reporting provides an end-to-end quality view of your entire QA program. Your teams will be able to work through bugs while still focusing on the key focus areas of your testing projects. Covers all required scenarios and platforms and shorten investigation time with automated root-cause analysis. Once you understand what your key focus areas are you can customize your reports to reflect that. As we mentioned before but is worth repeating you can integrate SeeTest with all testing frameworks and defect management systems.
Large North American Financial Institution Case Study
All of this talk about tips tools and best practices is well and good, but it can only take the conversation so far. Let's look at a real example of how well known North American financial institution uses the SeeTest suite of tools for their own CI/CD methodology for mobile app testing and what some of their relevant results have been.
Large North American Financial Institution Case Study
- This enterprise suffered from only 25% test coverage which equaled limited results test. - Inefficient Manual testing processes led to development bottlenecks.
Once we met with and understood this enterprise's needs we recommended they set up an onsite mobile device cloud. Remote testers, onshore + offshore automation engineers, and remote developers for unit testing and debugging can test more easily and share results with the solution.
The solution would integrate with their CI tools (Jenkins) and case management systems.
Beyond the mobile device cloud, the solution was to offer advanced automation and manual testing tools. High scale parallel execution is available as well.
Testing takes place from three locations. Site A houses 200 devices in their onsite mobile device cloud. Engineers conduct test automation from Site B. Site C is where the offshore team performs automated and manual testing during off-hours.
Developers in Site A perform unit tests and debug on devices where errors occurred. Using the Jenkins integration they trigger nightly test suite execution via the grid. The developer teams carried out test executions in the thousands on 50 devices in parallel. Test execution runs take less than 4 hours to complete. In addition device utilization manual testing, automated testing and debugging run 24/7.
This led to a reduction in the mobile app delivery cycle down to two weeks per update.
CI/CD methodology sounds daunting at first but believes us it is here to stay and will help your company achieve next level mobile app development success. By incorporating smaller pieces of code throughout the entire development process you can create a constant feedback and development loop that will allow you to create better mobile apps and updates and bring them to market faster.
Additionally, a good CI/CD plan requires the right tools. With the SeeTest suite of tools on your side, you will be able to leverage a mobile device cloud. Create a common environment for developers and testers, and centrally manage devices, applications, projects, and users. Integrate your test environment with CI/CD tools, and perform continuous testing for all mobile app test cases, while gaining actionable results with end-to-end QA data analytics.