Wednesday 22 November 2017

Memory Leakage Testing for Mobile Applications

Memory Testing is the non functional testing of the Mobile Application which is performed to test how iOS,Android,Windows based application are consuming the RAM.


Following high level points are to be concerned:
  • The Application should work well at low memory also,it should not lag.
  • In case the memory is low and we want to install the application which require higher memory then we should get proper validation.
  • Verify that your application isn’t too heavy keeping in mind your competitor’s application.
  • There should be no memory leakage.
  • Monitor the use of Memory by the Application using Eclipse/*Android Studio (Android Monitor) which can also help in analyzing network, GPU and CPU usage  or any third party Memory Monitoring tool .

Tip: During and use and debugging of app, track the memory monitor. If the memory usage graph rises for your app and doesn’t fall even if put in background, it’s a memory leak.

*To read how we can use utilize Android Monitor in Android Studio click on the Link
Still from Android Monitor:
Image Source:Developer.Android.com

Sunday 15 October 2017

Mobile DeepLinking for Android and iOS Native Application


"MobileDeepLinking" How it can save your million Dollar and effort too!!


  1. Did you ever navigated from One Native Application to another Native Application without leaving the Application itself? You might not have really virtually felt it but you did. 
  2. Have you ever authenticated one Native Mobile  Application to open another Mobile application without exactly launching the Application? Ever used Tinder, authenticating your profile with Facebook?
  3. While reading any news,there was a tweet embedded into the Application and when you clicked on that you navigated to twitter?

If the answer to above question is yes, you have been using deep links!!

What are Deep Links:

Deep links are the URI uniform resource identifier that helps you to navigate on another Application with or without leaving the application like fb://profile

They are different from websites which have URL like www.tripsource.com

Deep linking’s for Mobiles are briefly bifurcated into two type's:

  • Deferred deep links: The Native Application is not yet installed but deep links invokes you to install the application or opens the mobile browser and then navigated to the deep link URI
  • Contextual deep link: The Native Application get’s launched when invoking the URI, remember Tinder Facebook relationship?

How can Deep Linking be useful?

I will be sharing here my real time experience with the best utilization of mobile deep linking in my previous project.

You have a native application for android, iOS, windows and responsive site. Now the requirement comes that we need to implement an MVP for hotels in a Travel Planner. It will require certain effort/reource to implement the MVP on android , iOS and responsive site platform but we don’t have that much time.
Any Solutions??

Now this is when Mobile Deep linking will come to our savior.

Now we will implement the MVP on responsive site and then access the MVP from responsive site in the native of the iOS and Android application.

                                 

Look’s simple,it’s not that simple when you will start testing it ;).

Use Cases for testing Mobile Deep Links

  1. UI issues and glitches on native applications Android and iOS
  2. Session handling, remember you are booking a Hotel and not 2 cent chocolate.
  3. Bit of security testing Authentication token/authorization handling in, may be a tech geek friend of your’s is spying you and tricks you to book hotel in his name by intercepting response.
  4. Localization Testing and Internationalization Testing, definitely I won’t like to view the website in any language that I don’t understand and my default language of native application was set to my native place.
  5. While accessing Mobile deeplinkings it’s recommended to use proper MobileDeepLinking URLS and iOS/Android libraries for the same.



Here are a few examples of deeplinks for popular apps on iOS:
Developer
Deeplink – e.g.
Purpose
Twitter
twitter://timeline
Opens the Twitter app and links to the user’s timeline
Facebook
fb://profile
Opens the Facebook app and links to the user’s profile
Yelp
yelp://
Opens the Yelp app (note: this example does not include any routing parameters)

Special thanks to TravelPort Digital and BCD Travel
Image Source: Google



Saturday 7 October 2017

Let's Goal the "CRASH" with "HOCKEY"

Let's Goal the "CRASH" with "HOCKEY"



Gone are the day’s when we use to take out crash out logs from Monitor.bat file from Android Devices using CatLog and syncing iTunes with the device to take out crash logs from iOS devices.
Now we have more sophisticated product/Application  that can help us in digging into any application crash that are happening in any environment be it Developer Environment, QA Environment, Staging Environment, UAT Environment and the most important one Yes, right the Production Environment.

Most of the tools mentioned are quite simple to implement we just need to integrate the SDK  of these Crash reporting tool in our Mobile application.
The products that I prefer or have used in my experience to take out log’s from mobile application are:

1.       Crashlytics (Fabric): Twitter acquired crashlytics. It is one of the most powerful tool to take out crashlogs for your application, With neat and clean UI once you get a crash it’s shoot a mail to the officially registered Email ID and then we can inspect the issue along with the device and test environment we got the crash on.

It has various other information like Total Crash Count, Crash Graph, Android Device Breakdown Charts, Android Operating System Charts, Free Space Etc.



2.       Hockey: HockeyApp which is owned by Microsoft is a web-based platform that manages its users’
betas and collects live crash reports for iOS, Android, and more apps.User Metrics, Application Distribution and Crash Reporting it does it all.  


There are many other tools that are quite popular for taking out crash logs from Android and iOS devices namely:
  •  Crittercism
  •  BugSense
  • Firebase Crash Reporting
  • AppSee





 Disclaimer: Image Source google.com

Thursday 21 September 2017

Device Matrix for testing iOS,Android and Windows application as of 2021


Device Matrix for testing iOS,Android and Windows application as of 2017 

As we know we have clustered and segmented fragmentation of different OS and Screen size of device it's become impossible to test almost all types of device or OEM that is Original Equipment Manufacturer.

To an extent we have an streamlined fragmentation of iOS devices with iOS 11 being the latest version released at the time of writing blog with iOS X and iPhone 8 being the latest device released by Apple and same goes for Windows devices but for Android it's have a completely different picture which is having more OS versions like Ice Cream Sandwich, Jelly Bean,Kit Kat,Marshmallow ,Nougat and Oreo and multiple OEM like Samsung,HTC,Motorola,Lenovo,LG,Micromax etc.

The most problem we are likely to face because of device fragmentation are but not limited to:


1.     Crashes due to non customized system Library
2.     Memory Issue with low end devices.
3.     User Interface issue due to different resolution screen. 

Here is the compiled list of Device Matrix for testing iOS,Android and Windows application as of 2017 that I would prefer to test my application on:

OS
Device Name
Screen Size
Screen Resolution
PPI
iOS
Iphone X
5.8
1125x2436
458
iPhone 8
4.7
1334x750
326
iPhone6
5.5
1334x750
326
iPad Air 2
9.7
1536x2048
264
Android
Samsung Galaxy Note 5
5.7
1440x2560
515
Google Pixel
5.0
1080x1920
534
Samsung Galaxy S6
5.1
1440x2560
515
Google Motorola Nexus 6
6.0
1440x2560
515
HTC one M9
5.0
1080*1920
440
Samsung Galaxy S Tab
8.4
2560x1600
287
Windows
Microsoft Lumia 950 XL
5.7
1440x2560
518
Nokia Lumia 720
4.3
480x800
217

For Latest android devices used widely we can take help from Android Dashboard.


Wednesday 23 August 2017

Testing Rest API with Postman






What is Rest API.


A RESTful API is an application program interface (API) that uses HTTP requests to GET, PUT, POST, and DELETE data.

What is the Architecture of API
  • HTTP headers used for authorization and generation of token it also has content-type mostly as application/JSON
  • HTTP Request  (POST,GET,PUT,DELETE )
  • Status Code/ Response Code :2XX,3XX,4XX,5XX
To install the extension of PostMan on Chrome follow step:
  1. Open a Google chrome
  2. Click on: https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en
  3. Launch app
Now for Testing the API we need a testing Endpoint

  1. Enter the URL of the API in the URL textbox
  2. Select the type of Http method like POST
  3. Provide the Header 
  4. Now click on send
  5. You will get a response if the API is up and Working
Still in the process of writing this article, Sorry for any inconvenience. Happy Reading. 

Sunday 23 July 2017

Interview Experience with AMAZON for the role of Quality Assurance Tester


This role was for Digital/ IoT/Mobile Application based testing :) 


Amazon is a dream company and everyone wants to work for that company and I am no exception. Recently I interviewed amazon for the role of QAT  Quality Assurance Tester for their Alexa product which utilizes Voice Recognition, Artificial intelligence like techs which seamlessly blends with some IoT devices. It was an amazing experience for me.
Though I made it till the last round I was not able to make in the Amazon Leadership Principle Q/A session.

Here are the brief list of questions asked:

Scenario-Based Questions with my Answers:

  • List me some scenario for the Uber car booking application-
  1. Launching the Application on different OS and Version
  2. Accent and Localization based scenario
  3. Location(GPS Based scenario)
  4. End The trip (By driver or the end-user)
  5. Location not available
  6. Pick up and drop and off location should not be similar
  7. Wifi service: Should be working on 2g/3g and Wifi
  8. Booking confirmation message on Mobile Number
  9. Test case for find cab later if there is no other cab available at that time
  10. Book a new cab once the trip has ended.
  • How to debug Image UPLOAD options for any Application-
  1. Verify the OS of the system like Unix, the browser like Safari, and then the version of the browser by narrowing the possibility and finding the root cause of the bug.
  2. Try replicating the scenario on different machines.
  3. Also, verify if the Image file type like JPG is supportable or not.
  4. Debug the application using the third party debugger tool and take out the JSON response of the application which can help the developer to debug more.
  • Speech/Voice Recognition scenario for IoT and Mobile Based Application:
  1. Dialect/Accent of the user should be clear to the IOT machine and app.
  2. Different supported Languages like English, German should work seamlessly.
  3. Localization/Internationalization should be as per the target market.
  4. The content fetched should be genuine like if I am searching for "Michael Jackson album" then no other content should appear.
  5. When searching for flights with the apps having VR the application should not crash and Origin and destination location should be precise like "Book flight from DELHI-BANGLORE"
  • You have only one field which is Date Picker write Test Cases to test it-
  1. The format of the date picker may be dd/mm/yyyy as per requirement.
  2. It should not support any other format apart from requirement like mm/dd/yyyy
  3. Should be able to select future test dates.
  4. Timezone: What if I select the date in India and  at the same time I select the date in any other location like London
  5. Need to verify the Leap Year functionality 
  6. Restrict the app to select past dates (As per requirement)

Amazon Leadership Questions:
  1. Define your KRA in your current Organization
  2. How you were able to provide Customer Satisfaction to your customer.
  3. What feedback you got from your client while working on any project.
  4. Do you know what role you will be provided at Amazon and how you will be able to leverage it?
  5. How you were able to optimize the cost at your organization for which they have benefited. 

Tuesday 2 May 2017

Google Analytic:To redefine your Mobile Testing Strategy




Google Analytics:To redefine your Mobile Testing Strategy:

Many times I came across questions like How Google analytic can increase test coverage and how it can help in improving the quality of the product. Let’s understand this:

Overview

Google Analytics is a tool/service which helps in tracking events and reporting website traffic. It can be embedded into the web and the mobile applications via Google Analytics for Mobile Apps, an SDK that allows gathering usage data from iOS and Android Apps.

 

What meaning information we can take out from Google Analytics:
1. It can help in creating Device Matrix for testing purposes as it can help us in determining the popular devices used by the end-user so that these devices are on the Checklist to do the testing of the application first along with the OS like Android, iOS with their version.

 

2. The most used pages or landing pages.

 

3. With events, we can figure it out if all the buttons, links, etc are triggered correctly.

 

4. Figure out the performance of the Application by viewing landing page bounce rates, average time on page, page depth, site speed

 

5. If something works on a Mobile device for responsive web design but not on the Desktop Browser.

 

6. To figure out the installation/uninstall rate. 
 
7. To figure out the crashes if it’s happening at any particular screen.

 

8. To determine the location of the target users and from which location we are getting heavy traffics. 

 

9. To figure out on which page the End users are quitting the application most.

Monday 3 April 2017

Monkey Talk-Mobile Application Automation Tool for Android and iOS

Subscribe to my youtube channel for more videos here:


Read about Mobile push notification here: push-notification-for-native-application.html

                            [Monkey Talk]


[Mobile Application Automation Tool]




Monkey
Mobile App quality is an important factor for good user experience read here we will see about monkey talk automation tool how we can achieve it, for non-functional tip read here here

About Monkey Talk?

Monkey Talk is open source Automation tool for Android and iOS. MonkeyTalk is a simple-to-use tool. It automates real, functional interactive tests for iOS, Android, Web/HTML5, Hybrid and Flex apps. This open source tool can be used for simple ‘smoke tests’ or for ‘data-driven test’ suites.





Why MonkeyTalk?

Native, mobile, and hybrid app, real devices or simulators. Moreover, automation saves time, it is reusable, repeatable and so on. Monkey talk is an open source automation tool. It supports both Android and iPhone. It is very easy to learn and it's a powerful functional testing tool.

Requirement to start testing with MonkeyTalk: Brief Overview

•   Download and install Java
•   Download MonkeyTalk Pro
•   Need Eclipse or Android Studio to configure the source code
•   In order to record the script with MonkeyTalk, we need to configure the build with some dependencies.
•   The major component which is used for MonkeyTalk is MonkeyTalkAgent. Any build including Android or iOS need to be integrated with MonkeyTalk, otherwise, the tool will not able to recognize the elements of the app. As a result, we cannot record or run the script on our test app. The build which is integrated with MonkeyTalkAgent is called as Instrumented build.
Instrumentation can be done in 2 ways as follows:
•   MonkeyTalkPro provides an inbuilt feature to instrument the build, which injects MonkeyTalkAgent to the built.
Otherwise, we can manually integrate the MonkeyTalkAgent by configuring the source code using eclipse or AndroidStudio before deploying the build.
•   Before we start configuring the source code, we need to install “AspectJ” plugin in eclipse. Once the plugin is installed, open our project source code in eclipse.
Steps to instrument the Android build using eclipse as follows:

Configuring Monkeytalk with Eclispe  
In order to start with Mobile App testing, there are some pre-requisites software/packages which we need to install/unzip on machine.

Pre-requisites:

•   Eclipse setup

•   Android SDK setup

•   ADT Plug-in for Eclipse

•   Monkey Talk Tool (Testing tool for Mobile Apps Testing)

•   AJDT (for AspectJ conversion)

Eclipse:

Download Eclipse from URL:

http://www.eclipse.org/downloads/

Version: Eclipse Classic 3.7.2 (Windows 32 Bit)

No need to install the Eclipse, just unzip the downloaded folder anywhere in local drive. That will provide the ‘eclipse.exe’ which will open the Eclipse framework.

On opening the Eclipse framework, it will ask for the location of ‘workspace’ folder (‘Workspace’ is the location where the entire Eclipse project will be saved). Make any workspace folder anywhere in your machine and give the location.

Now Eclipse has successfully configured. Now we can open Eclipse, write any program and can save program to workspace folder.

Android SDK setup:

We need to setup and configure Android with Eclipse. Basically it is for development process but in case if we need to check how’s the application behave we can have a look on such the application in eclipse.

Download Android-sdk-windows (android-sdk_r18-windows) from the following URL:

http://developer.android.com/sdk/index.html

No need to install the Android, just unzip the downloaded folder (android-sdk_r18-windows) anywhere in local drive. That will provide the ‘SDK Manager.exe’ (which will open the Android SDK Manager) and ‘AVD Manager.exe’ (which will open the AVD Manager).

a ) SDK Manager: used for installing the Android packages

Run the ‘SDK Manager.exe’ (can be found in the ‘android-sdk-windows’ folder)
Android SDK manager will provide the list of package to install
Install any of the package (like Android 4.0.3 (API 15))
b) AVD Manager: used for creating the Virtual Device (emulator)

•Run the ‘AVD Manager.exe’ (can be found in the ‘android-sdk-windows’ folder)

•‘Android Virtual Device Manager’ window will be open.

•Click on New> and follow the steps as shown in below screenshot:

Name: name of Virtual device (or emulator

Target: version of Android emulator which you are going to use

CPU/ABI: for Android, use ARM

SD Card ‘Size’: it could be 512MB or 1GB

Snapshot: checked (best practice) [It will keep the track if any activity killed or process crashed, if its enabled we can restore the session ]

Skin ‘Built-in’: HVGA (for Android)

Click on ‘CreateAVD’. It will create the AVD which will be seen in ‘Android Virtual Device Manager’ under ‘AVD Name’ section.

Select the AVD name and click on ‘Start’. ‘Launch Option’ pop-up will be open. Then click on ‘Launch’.  It will open the Android emulator.

ADT plug-in for Eclipse:

ADT plug-in extends the capabilities of Eclipse to let you quickly set up new Android projects, build an app UI, debug your app, and export signed (or unsigned) app packages (APKs) for distribution.

To install ADT plug-in:

• Start Eclipse> Help > Install New Software….

• Click Add, in the top-right corner.

• In the Add Repository dialog that appears, enter “ADT Plug-in” for the Name and the following URL for the Location:

•  https://dl-ssl.google.com/android/eclipse/

• Click OK

Restart the Eclipse. It will ask for the Android SDK (which is we have already install as above mentioned steps) so Just give the location of Android SDK path.

Now while looking on the Eclipse, TWO newly added icons will be shown.

These TWO icons are for ‘AVD Manager’ and ‘Android SDK Manager’.

Now Eclipse is configured with Android SDK.

Monkey Talk:

Monkey Talk can be downloading from the below address:

http://www.gorillalogic.com/testing-tools/monkeytalk/download

Pre-requisit for installing Monkey Talk Agent:

For installing the Monkey Talk Android Agent, first we need to convert Android project into AspectJ.

For doing so, we need to configure AJDT in Eclipse by following steps:

Eclipse> Help> Install New Software > Click on Add…

In ‘Add Repository’ popup:

Name: AJDT

Location: http://download.eclipse.org/tools/ajdt/37/update

Click Ok. It will configure the AJDT with Eclipse.

Steps to convert source code into Aspect J code



Step 1: Convert your Android project to AspectJ by right click the project name and select as follows.


Step 2: MonkeyTalk-agent.jar can be found in the “agents” folder in the MonkeyTalk package you downloaded earlier. The exact name of the jar might vary depending on the version, but it should always start with “MonkeyTalkagent”.

Step 3: Create a “libs” folder in your Android project, if you don’t already have one and Copy the monkeytalk-agent.jar into the libs folder.



Step 4: Right click on MonkeyTalk-agent.jar→ AspectJ Tools→ Add to Aspectpath.



Step 5: Update your AndroidManifest.xml to include the following two permissions:




Step 6: Update the project properties (right-click on the project→ Properties→ Java Build Path), select the Order and Export tab, and check the checkbox next to the AspectJ Runtime Library to export it:




Step 7: Deploy your application to an Android device or emulator. As a result, you will find the instrumented apk in project’s bin folder. By using that apk, we now start the test with MonkeyTalkIDE. (For Video tutorial Click here).

Step to be followed to create a test in MonkeyTalkIDE as follows:

Step 1: Create new TestProject by selecting (File→ New→ Project→ General→ Project). Enter the Project name (eg. MyProject) and click finish.

Step 2: Now add Test to the project by right click on the project and select (New→ Script). Enter the name for the test (MyTest) and select the project to which it needs to be added. Now open the test file which we created (say “http://MyTest.mt”)



Step 3: Now we have to import the instrumented apk which we already created, by selecting menu (App→ Select a .apk file to test) or using toolbar as below:



Step 4: After adding apk, Choose any of the connected device or emulators to test.


Once the device is selected the console below will show the message like this:


Step 5: Now install that apk in the selected device as follows:




Step 6: Now launch the app in connected device as follows:



Note: Once again click on connect device, as a result the record and playback button will be enabled to start the test.

Step 7: Now we can start recording by click on record button.

Whatever we work on the test app will be recorded by monkeytalk and generate the test script as follows:

Our test script can be view and edit in 3 ways as follows:
Table view
Monkey talk Script
JavaScript




Step 8: Once the recording is done. Click on Stop button and click Play button to view the playback of the script. (Before clicking on Play button, relaunch the application is recommendable).

Step 9: To do a complete test on our test app, we have to add some verify commands if needed.

Step 10: Test result can be viewed in the console window.

Advantages of Monkeytalk:

Open source Tool
Provide Record and Playback
Support both Android and iOS
Support Cross platform recording
Easy Readable Test script
Support Gestures


Reference: Google and Quora

Interview Experience with AMAZON for the role of Quality Assurance Tester

This role was for Digital/ IoT/Mobile Application based testing :)  Amazon is a dream company and everyone wants to work for that company a...

Popular Posts