Saturday, June 8, 2013

Mobile Browser Based Application -- Opera Mobile Emulator = User Agent Switcher + Screen Re-sizer

To test mobile browser based application, utlising User Agent Switcher is very popular. 

             
User Agent Switcher for Google Chrome
With the help of some enthusiastic developers we have few of screen re sizer add-ons which can be used to re size the screen along with agent switcher. This takes us to more realistic way of developing and testing the mobile web sites. 

                                                         
                                        screen re-sizer 


Now here, We have to maintain two add-ons. First is user agent switcher and other is screen resizer. 

Recently i came across a tool which have these thigs in built and its Opera Mobile Emulator. Here we have user agent strings defined as per device and screen sizes as per the device. Please see below screen shot which gives clear idea about this



Opera Mobile emulator can be down loaded and installed fromhttp://www.opera.com/developer/mobile-emulator

Thursday, August 9, 2012

Control your Android and iPhone through Laptop or Desktop


Control your Android and iPhone through Laptop or Desktop 

Problem Statement :-In Mobile applications testing, purchasing a cloud based solutions is costly. It also involves some security constraints as you are using the devices which are shared with other unknown users. 

Solution :- If you have limited set of devices with you at one location and your testing team is distributed across differant locations then you can put your devices on cloud without heavy investment. 

Before implementing this solution in your project, please verify on compliance, copyright laws and blah blah....as jailbreaking and rooting of devices is required to achieve this. 

Lets see how to achieve this - Basic idea is to convert your Android or iPhone in to VNC Server. 


Procedure for Android Device:- 
1.Pre-requiste for this is, your Android phone must be rooted. Rooting is the procedure by which you get super user access to your phone. Android is based on Linux kernal, though its open source operating system it doesnt allow to access its file system structure. 
2.On rooted android device, open Google play store. Install the VNC Server app on it.  https://play.google.com/store/apps/details?id=com.schumi.vncs&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zY2h1bWkudm5jcyJd 
3.Install the VNC client on your machine. You can use any VNC Client, prefer realVNC.  http://www.realvnc.com/download/viewer/
4.Connect your Android phone and desktop / laptop (from which you want to control) to the Wi Fi network. 
5.Launch the VNC Server app on your rooted android phone. Note the IP address shown. 
6.Enter the IP address in VNC Client, accept the connection on phone. 

Procedure for iPhone :- 

1.Pre -requiste for this is, your Apple phone must be jailbroken. Jailbroken allowes you to install non App stores (not approved from Apple)items to install on your iPhone. Jailbroken Video is available on Youtube. 



2.On jailbroken iPhone, open Cydia. (Cydia is app store of jailbroken iPhone). Install Veency. 
3. Install the VNC client on your machine. You can use any VNC Client, prefer realVNC. 
4.Connect your i-Phone and desktop / laptop (from which you want to control) to the Wi Fi network. 
5.Launch the VNC Server app on your jailbroken i-Phone. Note the IP address shown. 
6.Enter the IP address in VNC Client, accept the connection on phone. 

      YOU HAVE DONE IT!!!!!!!! Access your all phone features from desktop....

Saturday, May 26, 2012

DeviceAnywhere Studio

My personal experience with DeviceAnywhere Studio -

I have had a chance to use DeviceAnywhere studio in my one of the projects.

This post is an attempt to list down all the required things about DA Studio to get start.

Please note, this is based on my personal understanding. For detailed, i would advise to attend the webinar arranged by DeviceAnywhere.


What is DeviceAnywhere Studio :- DeviceAnywhere studio is repository of  physical devices using real cellular network. These devices are plugged in to the DA Studio servers and you need to install a client on your desktop to access these devices. [ In layman language you can compare this to remote desktop connection] Through this client you can access the physical devices. DA Studio will be just interface between your machine and devices.

What you can do with these devices:- You need to acquire the device, and just start using it. To perform the actions on physical device, you can use device keypad or your desktops keypad.
After acquiring the devices using the right pane, you can perform actions like restart the device, pull the battery, screen resolutions and other device aspect.


If you are performing application testing, then you can upload your mobile builds through this section of devices. You need to upload them as per application type viz -Android app, iPhone app etc.
Applications can be removed as soon as you release the device, considering the security aspect.

DeviceAnywhere Packages :- Devices are available as per your package. They have standard packages e.g. [US AT&T] - in this package all the devices will be on AT&T carrier in US [North America] geography.
Package is nothing but "how the devices are grouped" i.e. based on carrier, based on Device OEM's, based on user's requirement.
DeviceAnywhere provides end to end testing features like creation of test cases, execution of test cases, tracking of defects.
DeviceAnywhere have provided the feature of capturing the screen shot as well as video of actions performed on the devices.You can book the devices in advance as per your requirement.

@ Automation capabilities:- Yes, DeviceAnywhere support automation. They have defined controls which are used to perform the actions on devices.

If you have any queries, please give a shout. I will try to respond to best of my knowledge.

Sunday, May 20, 2012

Invoke 'adb' from any location


1.0 In Android SDK, android debug bridge (adb) is invoked through platform-tools folder. User have to go to platform-tools folder each time through command prompt and execute the adb commands. 




2.0 By adding the location of adb to Path variable, we can execute the adb from any location. 
3.0 Navigate Computer --> Properties --> Advanced system settings --> Enviornment Variables. 
4.0 Edit the 'Path' system variable. 
5.0 At the end of 'Path' system variable, add the semicolon and add the path of adb. e.g. if your sdk is on D drive then D:\android-sdk-windows\platform-tools 


6.0 Save the changes. 
7.0 Navigate to command prompt and execute any adb command to verify that its working.



Wednesday, May 16, 2012

ADB commands

ADB (android debug bridge) is command line utility available in Android SDK to manage the emulators. Below are all the commands - 



Android Debug Bridge version 1.0.20

 -d - directs command to the only connected USB device                               returns an error if more than one USB device is present.
 -e - directs command to the only runing emulator.                                 returns an error if more than one emulator is running.
 -s  - directs command to the USB device or emulator with
the given serial number
 -p - simple product name like 'sooner', or
a relative/absolute path to a product out directory like 'out/target/product/sooner'.If -p is not specified, the ANDROID_PRODUCT_OUT environment variable is used, which must                                  be an absolute path.
 devices - list all connected devices

device commands:
adb push  - copy file/dir to device
  adb pull - copy file/dir from device
  adb sync [ ]- copy host->device only if changed
                                 (see 'adb help all')
adb shell - run remote shell interactively
  adb shell - run remote shell command
  adb emu   - run emulator console command
  adb logcat [ ] - View device log
  adb forward - forward socket connections
                                 forward specs are one of:tcp:
                                   localabstract:
                                   localreserved:
                                   localfilesystem:
                                   dev:
                                   jdwp: (remote only)
adb jdwp - list PIDs of processeshosting a JDWP transport

adb install [-l] [-r] - push this package file to the device and install it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data)
adb uninstall [-k] - remove this app package from the device
                                 ('-k' means keep the data and cache directories)
  adb bugreport                - return all information from the device
                                 that should be included in a bug report.

  adb help                     - show this help message
  adb version                  - show version num

DATAOPTS:
 (no option)                   - don't touch the data partition
  -w                           - wipe the data partition
  -d                           - flash the data partition

scripting:
  adb wait-for-device          - block until device is online
  adb start-server             - ensure that there is a server running
  adb kill-server              - kill the server if it is running
  adb get-state                - prints: offline | bootloader | device
  adb get-product              - prints:
  adb get-serialno             - prints:
  adb status-window            - continuously print device status for a specified device
  adb remount                  - remounts the /system partition on the device read-write

networking:
  adb ppp [parameters]   - Run PPP over USB.
 Note: you should not automatically start a PDP connection.
  refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ ]
  can be interpreted in several ways:

  - If is not specified, both /system and /data partitions will be updated.

  - If it is "system" or "data", only the corresponding partition
    is updated

Tuesday, April 3, 2012

Harsha Bhogale at IIM-A on Excellence

A must watch video. Lecture delivered by Harsha Bhogale on Excellence at IIM- A. There are total six video's; i have given link for first video. Dont miss this.







Thursday, March 29, 2012

Ideal Test Execution Summary / Report

What the ideal Test Execution report should include, is always a question of debate. It should be crisp and contain the infomration required by Test Management Team OR all the stake-holders. Below are the important aspects which Test Execution Summary should include.

Level Of Testing :- Unit/System/System Integration/UAT

Type Of Testing :- Functional/UI/Compatibility/Non-Functional (e.g. Performance, Security etc)

Enviornment Details :- Build Details, Server Details on which execution is carried out, Database details, Database package details

Test Suite Details :- Details about the test suite executed i.e. e.g. Regression Pack 1.1, SIT 2.2 etc.

Total # of Test Cases:-

Total # of Test Cases Executed :- No Test Cases should be in "No Run" (ideally)

Total # Test cases Passed :-

Total # Test Cases Failed :- # along with Defect# raised during this run of Test Execution

Total # Test Cases NA :- # along with reasons

Total # Test Cases as Deferred :- # along with reasons
% of Test Cases Passed : (Total#Test Cases Passed)/(Total#TestCases Executed)*100

% Test Cases Failed :-  (Total#Test Cases Failed)/(Total#TestCases Executed)*100

These are the "MUST" of any Test Execution Report

If we collate this information in tabular format, then this will give exact picture of our Test Execution.

Sample Test Execution report is as below, please not all data is fictious any resemblance with other is purely co-incidance.