Skip to main content


Mobile Testing

Mobile application testing falls into broadly two types:

Hardware Testing This includes testing internal hardware, screen size, resolution, space, camera, Bluetooth, WIFI etc.
Software or Application Testing This includes testing the application that are running on device. Because of types of apps this can be divided into following categories: Native appsMobile web appsHybrid apps There are some key things to be considered when testing mobile apps: Native apps have single platformNative apps are written in platforms like SDKs while Mobile web are written in html, cssNative/Hybrid apps may or may not require internet connectionMobile web apps require internet connectionNative/Hybrid apps are downloaded from playstoreMobile web apps are accessible from internet Mobile Testing complexity in comparison web applications Different range of mobile devices, screen sizes etc.Various manufactures customizationsOS types iOS, Android, Windows etc.Different versions of OS e.g. Android 4.x, 5.x, 6.x, 7.x…
Recent posts

Java keytool to create keypair

Use following command to create a public/private keypair using java keytool command.

keytool -genkey -keyalg RSA -alias mykeystore -keystore keystore.jks -validity 30 -keysize 2048

Once you run the command follow the steps to complete generation of keypair, make sure you remember the password that you provide during generation.

Gulp command not found on Mac OSX

Was getting following error after installing gulp on mac.

Sachins-MBP:MyApp sachin$ gulp
-bash: gulp: command not found
After fighting for hours and searching on internet, tuned out to be a very simple fix. While installing gulp missed the parameter to install globally.

Sachins-MBP:MyApp sachin$ npm install -g gulp

Yay !!!! Its working, thought to write to save time for somebody else.

MQTT - Eclipse Paho integration for Android

For MQTT integration, recently explored Paho Android project, very simple to use, here are the steps:

Intialize a client, set required options and connect.

    MqttAndroidClient mqttClient = new MqttAndroidClient(BaseApplication.getAppContext(), broker, MQTT_CLIENT_ID);
    //Set call back class
    mqttClient.setCallback(new MqttCallbackHandler(BaseApplication.getAppContext()));
    MqttConnectOptions connOpts = new MqttConnectOptions();
    IMqttToken token = mqttClient.connect(connOpts);

Subscribe to a topic.

    token.setActionCallback(new IMqttActionListener() {
      public void onSuccess(IMqttToken arg0) {
           mqttClient.subscribe("TOPIC_NAME" + userId, 2, null, new IMqttActionListener() {
                public void onSuccess(IMqttToken asyncActionToken) {
                    Log.d(LOG_TAG, "Successfully subscribed to topic.");

                public void onFailure…

Parsing mailing address in Java

Recently came across a problem to parse postal address String using Java, did some research here are some findings.

String s = "60 Strawberry Hill Ave Stamford CT 06901" Required Result
Street = Strawberry Hill Ave
City = Stamford
Number = 60
zip = 06901
state = CT You can use JGeocoder

public static void main(String[] args) {
Map<AddressComponent, String> parsedAddr  =     AddressParser.parseAddress("Google Inc, 1600 Amphitheatre Parkway, Mountain View, CA 94043");

Map<AddressComponent, String> normalizedAddr  = AddressStandardizer.normalizeParsedAddress(parsedAddr);
        System.out.println(normalizedAddr);} Output will be:

{street=Amphitheatre, city=Mountain View, number=1600, zip=94043, state=CA, name=Google Inc, type=Parkway}
{street=AMPHITHEATRE, city=MOUNTAIN VIEW, number=1600, zip=94043, state=CA, name=GOOGLE INC, type=PKWY}
There is another library International Address Parser , it provides a trial version. It s…

Clean and Simple Email Sender Design

Recently review design for an email sender with following requirements:

Build a service to send emailService must have failover recovery, in youcase if system goes down and comes back up it should still send out pending email remindersYou are not expecting any acknowledgements for the messages sent.The design proposal in place was to use a funky framework with persistence store etc etc. 
After going through the simple requirements stated above, used following clean and simple design and I am happy to say we made right decision:
Use Java Mail API to send email remindersCreate a table which stores reminders to be sent and update a flag after email reminder is sentIn case system goes down, you can resend all reminders for which flag was not set.It was so simple and easy to implement and we have all control in our hand and there was no RAMP up time to learn new frameworks.
So, if you are confused with n number of ideas available out there using x number of frameworks, you can use the simple d…