SeeTest & the Android multi-device challenge

Guest Post By:- Guy Arieli, CTO of Experitest

Summary: there are many Android devices. When doing mobile test automation – say with SeeTest from Experitest – it is not practical to test ALL devices. The question is then – How to select a small number of Android devices that will enable to identify issues across 99% of ALL Android devices?

In this short article we will suggest two strategies – Edge strategy (testing the most extreme devices) and Commonality strategy (testing the most common, popular devices). Our suggested strategy to obtain optimal results in Android test automation would be a combination of both strategies.

The Challenge – testing thousands of Android devices

The business module behind the Android mobile platform creates huge challenge when you come to test your application. Your application will run on multiple hardware platforms and software versions.

The question is how to set your risk management strategy when you come to select the devices to perform your testing on?

Ideally you would run your entire regression test on all the possible variation of phone model / all Android OS versions / and all vendor firmware versions.

To get an idea of what we are looking at:

As of Q3 2011 there are:

  • ~130 (without tablets) different HW modules.
  • 7 Android Platform versions: 1.5, 1.6, 2.1, 2.2, 2.3, 3.0 and 3.1.
  • The vendor firmware can also vary and can be updated from time to time  – a realistic assumption would be ~2 firmware per device.

So in order to test all the permutations of Android devices we are looking at around 1800 combinations (=130 HW device models x 7 SW OS versions x 2 firmware)

For a full list of devices: http://en.wikipedia.org/wiki/List_of_Android_devices

Needless to say this is totally impractical. No mobile automation engineer can seriously target such a large set of devices.

The Solution – identify relevant device factors

The question then is how to narrow down this huge list of thousands of Android devices and select a subset to test on?

The critical thing when narrowing the list is to identify which factors of the device might affect your application behavior and make sure to cover all the possible permutations of such factors. Tackling the factors instead of the devices themselves enables to narrow down to a subset of say 8 devices and provide coverage for ~90% of the devices.

Following is a list of the factors that can affect your application behavior:

  • Screen size – One of your main concerns is the screen side of the devices that will execute your application. One of the great pitfalls of building an Android application is how to build the view layout so it will render correctly on all screen sizes.The screens sizes can vary from QVGA (240×320), WVGA (480×800), HVGA (320×480), FWVGA (480×854) , in tablets you will   find 1024×600 and what probably will be the standard for tablets 1280×800.So running the same application on 240×320 screens and in the same time on 1280×800 screens is huge challenge.

             To emphasize it please look at the relative size difference (the red rectangular representing the smaller size and the black  presenting the larger size):

 

  • Android OS versions – The android platform is changing very fast. The difference from version 1.5 to version 2.3 is huge. Lots of new capabilities like graphics HW acceleration were added and can affect your application.
  • CPU – Mobile devices in general are very sensitive to processing power. We can see phones with single core running at 600 MHz to phones that have duel core 1200 MHz.

Two other relevant factors of relatively minor effect are GPU (Low-Medium affect) and Manufacture (Low affect).

The Strategy – combined Edge & Commonality strategy

To reduce the risk you can work in 2 strategies:

  1. Edge Strategy – select phones that have factors that are at the edges of the scale: minimum screen size, maximum screen size, running with OS version of 1.5 and running on the latest version and minimum CPU power.
    As we  combine them together we can end up with 2 devices:
    On the lower end:
    HTC Hero: with android 1.5, 320×480 HVGA screen and 528 MHz Qualcomm CPU

            On the highest end:
Galaxy Tab 10.1v: with android 3.0, 1280×800 screen and 1000MHz dual core.

        2. Commonality Strategy – analyze what is the probability each phone has to meet your application and select those with the                   highest probability.The analysis here is more complex and defendant on your application type, region, target age and more.

            There is a huge difference if your application is a business application that is targeted for the US, of if it’s a teenager game for girls    in  Japan.

A combination of the 2 abovementioned strategies will probably give you the best result.

 

SOURCE: http://www.appbrain.com/stats/

About Experitest: Experitest is the developer of SeeTest – a test automation tool for smartphones including iOS, Android, Blackebrry, Windows Mobile (inc. WP&) and Symbian. SeeTest plus into all existing test an automation frameworks such as QTP, C#, RFT, TestComplete,JUnit,Perl, Python.

To download a free trial: www.experitest.com/download

To watch a video:  http://vimeo.com/moogaloop.swf?clip_id=26912970&server=vimeo.com&show_title=1&show_byline=1&autoplay=1

To join a free, private webinar: email support@experitest.com

Seetest-A mobile Test Automation tool for Android, iPhone, Blackberry, Symbian & WindowsPhone 7

Guest Post By:-Tal Barmeir (CEO Experitest)

Need for Mobile Test Automation Tool on Various Platforms (Android, iPhone, Blackberry, Symbian & WindowsPhone 7) 

Since launch of the First Mobile phone in the market to the launch of hundreds of devices a month,the market has changed drastically.Unlike earlier, now:-

  • There are lots of application getting developed and launched in to the market everyday.
  • Enterprises (banks, retailers etc) need to provide access to their online services via smartphones.
  • Application developers need to quickly launch their apps on various platforms to cope up with competitive market.
  • Hardware vendors are developing many different devices based on Android and other mobile OS.
Thousands of mobile devices in the market, different OS/Platforms with different OS versions and competitive market,all these things lead to need of a comprehensive & effective automation tool which can help in  cost effective Testing of a Mobile Application or hardware they have developed in quick time.More specifically, they need a test automation tool for real physical mobile devices (not emulators) that has full coverage, ability to integrate  into their existing testing environment , is simple & quick to operate and can run the same test  on many devices/mobile OS.AND MOST IMPORTANTLY – a downloadable trial version – because there’s nothing like trying it yourself.
Well all these and many other challenges/Issues  in Mobile Application Testing will  now be addressed by an efficient Mobile Automation tool from Experitest Inc.
Experitest (www.experitest.com) – a strategic partner of both HP and Microsoft – has developed SeeTest – a test automation tool for mobile that meets all these requirements and is deployed in Fortune 500 companies worldwide, such as Microsoft, NYSE, Marvell, Texas Instruments, Clicksoftware, BSkyB, 888, Cisco and many more.  To watch a video click here

Requirement 1:  Full coverage – all smartphone OS, all functionality

All mobile OS:

  •  All types of OS:  There are 5 Android, iOS, Blackberry, WindowsPhone 7 and Symbian. To provide a real coverage of your customer base you need a tool that can test on any of these.All mobile OS versions: OS versions are constantly launched ot the market. There is need ot support all of them.
  • All mobile device models: phones, tablets. Both are used today by end users. So both need to be tested.
All functionality: Smartphones have a broad range of gestures, system alerts and many other features.  All need to be supported. Otherwise no real automation can be achieved:
  • Gestures:Swipe, drag &drop, zoom in and zoom out, mutlitouch.
  •  System alerts:Security pop ups.
  • Virtual keyboards:  all keyboard configurations
SeeTest is the most comprehensive mobile test tool today in the market. It covers all OS, all functionality. You name it, SeeTest has it.
Requirement 2:  Plug into QTP,TestComplete,MSTest,Junit,Perl,Python:-
Mobile testing is “the new guy on the neighborhood”. It is joining into a realty where organizations already have an existing testing environment such as QTP, TestComplete, MSTest, Java, Perl, Python. Naturally, organizations are looking for a solutions that can easily integrate into these existing environments so that they can continue working from their usual testing environment only extend it to cover mobile testing as well.

SeeTest has plugins into all testing environments such as QTP, Testcomplete, MSTest, JUnit, Perl and Pyhton.

Let’s take for example QTP. The SeeTest plugin enables to work from within QTP and simply create tests the regular and usual way tests are created in QTP (Keyword view, Expert view, data driven tests, test results and anaylsis), only that this time it is done on real physical mobile devices connected via a standard USB cable to the tester’s computer. The user can record/edit the test, run it and view reports – all in QTP. Just as he has always done. Same goes for all the HP testing & monitoring tools such as QC and LoadRunner.

 

Example screenshots: Keyword view, Expert view, data driven tests, test results

 

Requirement 3: simple & quick to Operate – a recorder

The mobile world changes quickly. And so should the ability to create tests easily and efficiently. The SeeTest recorder enables simple, quick test creation.

Requirement 4: Same script running on multiple devices and mobile OS.

There are 5 smartphone OS. There are hundreds of smartphone device models. There are constantly new OS versions. This reality mandates one clear and strong requirement – script once, run on any device/OS.

One of SeeTest’s main strengths is its ability to run the very same test script on any mobile OS. Any physical device. No exceptions. This brings clear and indisputable ROI to the mobile automation project.

Requirement 5: Why believe marketing materials? Try it yourself now – free downloadable trial.

Click here to download (download starts automatically)

Download a free trial here        

Watch a Video here           

Email us for a free webinar/demo/POC: support@experitest.com

_________________________________________________________________________________________________________

About Author:-

Tal Balmier is CEO of Experitest – developer of SeeTest – test automation tool for mobile that plugs into QTP,TestComplete,MSTest,JUnit,Perl,Python.


Automation Testing of Android,Iphone & Ipad Apps with Zap-Fix

Guest Post By:- Zap-Fix

Background
While there are many aspects of the application life cycle that remain constant regardless of the platform, whether it be mainframe batch, online, client-server, web and mobile, there are some huge differences specifically related to mobile applications.

First is the user interface. It is no longer a GUI, it is NUI (Natural User Interface); finger-based input. This includes multi-touch gestures on virtual keyboards and even extends to voice commands.

There are some things that are cool about NUI, including new ways of triggering application events, such as Swipe/Flick to scroll and pan, Pinch/Stretch to zoom, Tap to click, even Shake to do whatever makes sense to the app.

But everything comes with a price and there are some things that are not so cool with NUI. Small screens make typing burdensome whether the keyboard is virtual or not. Soft keyboards often cover widgets and controls in ways that limit normal interaction. Navigation is challenged by small pieces of information always around your fingertips.

Then there is the environment. True multi-tasking is limited. The OS can kill background applications at any time. Mobile apps are more prone to interruptions, such as incoming calls, or switching to other applications.

Top 7 Quality Issues with Mobile

1. Time
Pressure to get to market leaves many application developers choosing to hit the ‘fast forward button’ on their testing process, as it occurs at the end of the cycle. Small glitches, crashes and malfunctions often get overlooked.

2. Inadequate processes
Mobile application testing is still in the infancy stage and to be honest, many QA teams haven’t defined new processes to effectively test mobile applications.

3. Lack of test plans
Traditional application testing plans are unfortunately still the guideline amongst many QA’s and mobile application testing requires a fresh approach which few have implemented and/or are still learning.

4. Data Entry
Mobile devices are small (and getting smaller) and many have touch screen or miniaturized keyboards making data entry to be an untimely or a more lengthy process.

5. Validation issues
Understanding the results of processes and test scripts require articulate attention to detail on a mobile device and teams are still learning how to do this.

6. Lack of physical devices
Gaining access to all the permutations for Android, Blackberry and iPhone could be an endless quest as each quarter turns out a new operating system, leaving developers as well as QA’s scrambling

And lastly and the most important…

7. Lack of test automation
Existing industry-leading test automation tools are restricted by object recognition limitations. Most tools rely on open and published APIs to obtain the discrete properties of a control. Mobile platforms do not provide the traditional APIs, rendering your favorite tools useless in mobile. This translates to the bulk of mobile application testing being relegated to manual testing. Without test automation, quality suffers in mobile initiatives, in all aspects.

Enabling Test Automation for Mobile (automated testing for iPhone, iPad and Android)

In early 2011, ZAP Technologies launched a solution called ZAP-fiX (ZPX). Based on ZAP’s close ties to HP/Mercury since 1998, ZPX is provided as an add-in to HP’s ALM Suite, most notably, QuickTest Professional, Quality Center and LoadRunner

In its simplest terms, ZPX performs deep object recognition without relying on APIs. Through a simple wizard known as the Object Collector Workbench, ZPX populates the QTP Object Repository in the same way that QTP does in the environments it currently supports. Once Object Repository is populated, the QTP user can go about business as usual, leveraging the tool’s full capabilities and the way it was designed to be used.

ZPX was also designed to run tests on the physical device. Although it also supports testing via emulators, it is critical to test mobile applications in the real environment in which it runs. As we have come to know, emulators are great, until we find the differences between the emulator and the real device.

To accomplish this, another component of ZPX is the Viewer. The ZPX Viewer is Windows-based allowing the QTP user to see the real-time current dynamic state of the display for the Device Under Test (DUT). It also accepts input from a standard full-sized keyboard and mouse to interact with the Application Under Test (AUT). As illustrated here, the QTP user is looking at the current page on an iPad.

One of the hallmarks of ZPX is the tight integration with QTP, making the learning curve minimal. If you know how to use QTP, you know how to use ZPX.

The level of integration is best stated with the following illustrations:

Keyword View and Expert View
Just as you use QTP today, you can toggle back and forth between Keyword View and Expert View

Data-driven Tests
The Data Table in QTP is fully available with ZPX and operates exactly in the same way.

Object Repository
Once objects are collected, they are fully available in Object Repository for analysis and manipulation.

Test Results
Test results are provided in the same way  QTP does today. Notice the familiar purple rectangle highlighting the control on focus (OK Button) in the test steps.

ZPX is not just for automation.
As the unique ZPX Viewer not only displays the device, it also allows interaction. Thus ZPX is the ideal platform for simplifying manual testing. Illustrated below is an example of ZPX being used with QC Sprinter. In this example, we are leveraging Sprinter’s Mirror Testing feature to simultaneously test multiple instance of AUT, even on heterogeneous platforms. In this example, the test is being driven on the iPhone and automatically replicated on the Android.