Presentation by Joe Lewis, Keynote
Continuous Mobile Testing Using Jenkins – A How-To Guide
Who uses Jenkins
How does Jenkins support mobile
How to test your mobile app on real devices using Jenkins
5. 5
The Problem
Develop on major OS’
Test on many devices
No time to learn new technologies
Need to iterate quickly
Mobile is a moving target
Not enough time for testing
Production performance anxiety
6. The Solution
6
Cloud-based testing
Largest device cloud
Always up to date
Centralized test case management
Robust automated scripting
Integration with development &
testing tools (SAP, Jenkins,
Selenium, IBM, HP)
16. How to Get Started
Get Started
Today!
Get Started @
http://bit.ly/keynotejenkins
Learn More @
http://bit.ly/keynotejenkinslearn
Get the Presentation – will be available and
posted online by Techwells after the show.
Hinweis der Redaktion
So, what’s going on in the mobile market today?
What is this Mobile (app) Imperative we’re talking about?
Clearly users are demanding access via mobile:
For example, there were 1 billion apps downloaded in 2013, according to Gartner.
And it was predicted that there will be 77 billion dollars in anticipated revenue generated through mobile apps by 2017, also according to Gartner.
In the retail sector, Mobile has become the #1 technology priority in 2014
And in financial, 2 out of 3 banks predict 100% of their customers will be using their mobile services by 2017.
Whether we are talking about consumer apps or internal business applications, users want access on demand, via their smartphones and tablets, and this is easily seen in the increase of traffic and sales in recent years.
<NEXT SLIDE>
And, users have become less accepting of poor quality of their mobile experience. They may have made allowances in the past, but now they expect their mobile experiences to be DESIGNED for mobile and perform well for mobile, and not just accommodating mobile
The lack of this quality impacts sales and perception:
One survey found that ONLY 16% of consumers would try a failing app more than twice before DUMPING it.
Another study by Shunra found that app failures have cost businesses over $60 billion
And yet another survey said: Almost 80-90% of mobile apps were eventually deleted from users' phones in 2013 alone.
With so much at stake, including in many cases, ones brand, testing these apps has become more than a nice-to-have. It has become an ‘imperative’ in providing quality mobile apps to your users.
<NEXT SLIDE>
When developing a mobile app you run into many headaches. You need it to run on the major OS’s, on as many devices as possible, you don’t have time to learn new technologies, and you need to iterate quickly.
Testing for mobile has truly become a moving target. Take for example the recent Apple and Google announcements. Not only do devices change, but operating systems change, carriers change, phone specs change, the capabilities, the browsers, everything is constantly changing. And guess what, with agile development your mobile app will demand rapid iteration and re-iteration, which means, you guessed it, more change.
The picture you see here is an actual mobile QA desk at one of our customers. This kind of unstructured environment is what many QA organizations are dealing with.
So you need to be able to deliver and manage across all of that dynamic complexity. Unfortunately, there is no time for your team to learn all these new technologies. And of course there is not enough time to do all of the testing you need, so there’s a lot of anxiety about whether the application will actually perform at scale when deployed in production.
<NEXT SLIDE>
So how does Keynote help you solve these problems? First, we provide a global cloud-based testing environment with the broadest range of devices and testing capabilities on the planet. The picture shows our testing environment, which is replicated using servers all over the world, by contrast with the cluttered desk in the previous slide.
Our global network is the most comprehensive in the industry, and we work closely with all major carriers so that you can test in every possible configuration of connectivity and platform.
Of course, we know that you don't use Keynote in isolation, so it's critical that we integrate with and leverage your existing investments in development and testing tools from major partners like SAP, IBM, HP and Jenkins, which will be showcased on todays webcast.
And this is where test automation can be of most value. The ability to run hundreds of tests, repeatedly, on a large number of devices.
<NEXT SLIDE>
Object scripting will give high reusability across the same type of content (web) or across the same platform (native). While object scripting is certainly the most important part of automation, it isn’t the entire picture. Object scripting can drive a script based on elements and objects, but it can’t truly tell you if the object rendered properly (picture actually showed up, no pixelization, proper alignment, etc).
<NEXT SLIDE>
<NEXT SLIDE>
We provide many ways to access these real, mobile devices. From our own Java-based client, our own Java API, or an integration with leading testing tools including – HP UFT/QTP, IBM Rational, and Selenium. Also, as we will discuss today we integrate with continuous integration tools such as Jenkins…
<NEXT SLIDE>
First, let’s cover a little ABOUT Jenkins:
The history of Jenkins is very interesting.
It was built at Sun Micro about 8 years ago.
It takes agile development to the extreme.
There has been a release of Jenkins every week over the past 8 years, totalling over 500 releases.
It’s the #1 continuous integration and continuous deployment server.
The key to Jenkins is that it’s very easy to get started.
All you need to do is do the ‘java minus jar jenkins.war’ and there you have it! Jenkins will be up and running.
For more info on Jenkins you can go to jenkins-ci.org
<NEXT SLIDE>
Jenkins has close to 78,000 installations around the world; 60% increase in the last year alone.
What has contributed to this massive adoption?
The ease of use we spoke about previously.
The ability to easily write a new plug-in to support a new tool or resource, leveraging it’s inherent architecture. Several years ago it had about 60 plugins contributed and today it has over 900+ plugins by over 500 contributors with one plugin per day being added.
Part of the success of an open source community is to see how many people contribute back and if you look at this graph that about 12% of those that use Jenkins have contributed back into the open source, with almost 25% who are interested in writing a plug-in.
In fact, it’s this easy plug-in capability that has allowed Keynote to build it’s plug-in to support mobile testing from Jenkins.
Also, part of this success is the staying power of Jenkins. It’s one thing to launch something, but it’s a whole nother issue to maintain satisfaction and usability. Today, Jenkins enjoys a 87% satisfaction rate.
<NEXT SLIDE>
Most of us are quite new to continuous integration with Mobile, so let’s try to understand why this is so important and how Jenkins and Mobile can work well together.
So, if we look at the chart here, we can see that internet traffic for MOBILE is skyrocketing.
Over 85% of mobile traffic is in direct result to mobile APPS - not mobile WEB or BROWSERS, thus supporting the need to understand the importance of investing in mobile app development, which I don’t think anyone doubts, but is a good reminder.
Setting up a continuous integration tool for mobile means that developers can focus on developing the application itself (or the code) without worrying about building or testing the application. This makes it much easier for developers. There are many plugins (as shared earlier) that you can use for continuous integration with mobile. You can also scale out your workflow to do distributed builds and create different iclients and you can also have matrix-project for cross-device tests.
Today, when we talk about mobile, we are really talking about Android and iOS. Windows is growing, but more in Europe than in the U.S and has not reached the level of saturation in the marketplace to warrant significant support.
There are several approaches to build mobile apps. The most common approach is via native (native tools from Google and Apple)
For iOS its xCode
And for Android, you would use Java and it’s compilers
To do this approach, you will need a build environment to support both iOS and Android. And as you may know, iOS needs mac software and hardware. And Android is Linuxed based, open-sourced, and passed by Google.
<NEXT SLIDE>
Keynote’s mobile testing integration with Jenkins enables you to execute test cases directly from Jenkins and to upload applications available in the Jenkins workspace onto Keynote’s devices. This ability to automatically delivery your build to devices and run a set of test cases to validate the build increases productivity and streamlines your testing process.
As you can see by this screenshot you are able to run any existing Jenkins-built script on real mobile devices all from your desktop and without creating a new script!
With Keynote’s Integration with Jenkins you can:
Perform automated sanity testing of each mobile application build to support earlier defect identification
Build and Schedule mobile application automated regression suite directly from build machine to increase confidence, enhanced test coverage and shorter testcycle.
Gives immediate feedback to developers on the quality, functionality or system-wide impact of code they are writing
This integration allows you to create an automation test suite which will deploy the mobile application on the device and run the Sanity/regression test cases when the new Mobile application build is available.
The key Benefits are that you are able to:
Save QA time
Run it at any time
Reusable
Increase coverage (Ensures full regression test coverage within the shorter timeframes)
Reduce cost
(Transition to DEMO – Hand to Josiah for Q&A reminder)
JOSIAH:
As a reminder, please feel free to submit any questions during the discussion. You can do this in the Q/A panel in the bottom section of the window.
<NEXT SLIDE>
<<<<PLAY Demo Here>>>>
<NEXT SLIDE>
Get started now by going to bit.ly/keynotejenkins
Or, to learn more go to
You can also get todays presentation – It will be available and posted online by Techwells after the show.