Monday, June 12, 2017

Mobile Compatibility Testing


In present world, smartphones and tablets are the popular medium to access the internet for any requirement, forcing organisations to develop mobile applications of their service offerings.

The hardware and software are developed independently but function together based on product expectations. For example, a web application is developed in PHP/.NET/Java and is expected to work properly on all available mobile devices and different web browsers.

Here the question arises: how will an application perform functions as expected on client’s devices? While fulfilling such expectations, we need to keep in mind that there are numerous combinations of web browsers and its versions, operating systems and plurality of mobile device models. The process to validate application behaviour is as expected across the mobile devices and browsers based on application requirements is known as mobile device compatibility testing.

On mobile devices, users can have native/web or hybrid applications and each application type will have certain difference in display/functional behaviour/look n feel etc. While testing each type of application, team needs to consider few points. 

Web applications are written in HTML5, navigate to a special URL through web browsers. Testing team need to consider following points while testing web applications:

1. Content: Entire website/product cannot fit on small screen mobile devices
2. Navigation: In-spite of showing full size website/application, different navigation methods are required
3. Size: Font and objects needs to be resized for small screen devices
4. Functions and Feature: On different devices and operating systems, application behaviour is always unpredictable

Native applications are installed on the device and are accessed through icons on the device home screen. They are installed through an application store like Google Play or Apple’s App Store. These applications use device’s notification system and can also work offline, hence testers need to consider following points in testing:

1. Application installation and upgrade process through application store and related issues
2. Fewer applications dependent on the operating system than with responsive Web design applications
3. Many versions are required for each operating system

 Hybrid applications are partially native and partially web applications. They can be installed through application store and access through web browsers as well with special URLs hence testing team need to consider all the above discussed points while testing such applications and be more focused. Application content, UI, functionalities should be same everywhere.

While doing mobile device comfortability testing, we need to cover maximum devices and ensure results are close to 100 percent of users’ device base. We also need to identify the perceived bugs to the corresponding layer – operating system, web browser, device features or skins? Also need to focus on the functionalities which are probable to fail in the case of a technology upgrade or a new device launch. 

Now we will talk about the five step approach to make mobile device compatibility testing more agile and scalable.
1. Develop Device Compatibility Repository: Analyse the major available mobile devices for following information like hardware feature, platform details, technology features supported (audio/video and image format etc.), hardware features included, and network and other technology features supported by the device. This device structure list will be useful for device compatibility testing.
2. Shortlist the device list based in compliance: Short-list devices for specific project based on region or country individuality. This can help to cover up lost popular devices in the region.
3. Prepare device list based on its compatibility: For better visibility, prepare list of compatible v/s partially compatible devices to confirm features which may not work and cause issues in partially compatible devices. In some cases, the potential device is rare or highly expensive, hence team uses emulators for development and testing. iOS and android emulators are mainly designed for native applications, however their default web browsers accurately act how the application will behave on a real device.
4. Execute tests on most compatible devices: To ensure 100% application functionality accuracy, focus on minimum one device from each manufacture if testing is not possible on all the devices given in the list. Execute tests on partially compatible devices as well. Perform testing on the latest and most widely used devices as well and ensure initial focus on the functions that might be influenced by unsupported features.

To summarize, Native, hybrid, or web application are ultimately to render the needs of the mobile users. Hence the majority of time utilized on mobile device compatibility testing is focused on the executing functions as the customer would perform on different devices, operating systems and web browser combinations and confirming that the screens and behaviour is as expected. Although there is no unique best method as each have strengths and weaknesses. The choice of one device/application versus the other depends on each company’s unique requirements.

Multi-channel, Cross-channel, Omni-channel: What’s the difference?




Initially, companies used mails, personal calls or visits as communication channels to promote their products. But with the advent of new technologies/channels and increase in usage of electronic devices, the customers have many alternatives available to explore and complete a purchase activity.
For example, now a company can educate a prospect about their offerings via an email or message, who might explore the company website or physical store, search online about the product details and other buyer reviews before purchasing the product on smart phone. This entire process may swap in different combinations. So keeping this schema in mind, organisations are leveraging these channels to influence customer’s buying decision. 
The question arises: how to ensure that these channels communicate with each other accurately? The answer is hidden in the behaviour of these channels categorised as omni channel, multi channel and cross channel. A software development company needs to understand these channels before any product development and delivery.

MULTI-CHANNEL approach: Companies use multiple channels (e.g. social media, email, PPC, print ad, retail store, website, promotional event, product’s package, or word-of-mouth) to engage their customers across multiple touch-points. Each channel requires its own strategy and can be managed separately. Multi-channel is based on the assumption that customers have their preferred way of interacting with a company.
Suppose for a TV cable station company, development team has developed a site with responsive design where users can search about show schedules, news, and much more through any communication device. To ensure quality, testing team needs to set up a multi-channel test environment for users to perform common functions on desktop, smart phones, and tablets to determine any bugs. Here, rather repeating the testing on all the devices, testing can be performed on one device like one set of users could test on the desktop experience, a second set could take the mobile phone, and a third set could be Tablet. They will test application functionalities on different device. They will review and confirm the performance of various features of the application. 

CROSS CHANNEL approach: Designed to satisfy target customer requirements for a convenient and flexible buy/sell process as they navigate through various channels to complete the same purchase/service. For example, A person can receive newsletter featuring a specific product and decides to search more on website and further purchases from a physical store. In CROSS Channel testing, tester has to test the same functionality through different channels as user can access it from any channel. In this scenario, Tester can test two platforms in no particular order be it desktop first, and then smart phone or vice a versa. This requires application functionalities are designed to be performed seamlessly across all touch points.

OMNI-CHANNEL approach: The concurrent usage of two channels, like using a smart phone while in-store, or a tablet while watching on television. This denotes the uniformity between different channels to facilitate and streamline customer interactions. It also allows customers to access real-time information, irrespective of channel limitations. It also empowers business to cease the gap between on-line and off-line application configurations. This means that if customer has saved his/her configurations and preferences on one channel then it must be memorised and accounted for across channels. During testing, tester creates an account as a customer using one channel to check whether credentials and other preferences are saved across channels.

Testing approach for above channels:
1. When a tester tests a single application across multiple devices, Omni-channel testing is done. Whereas if tester tests the same feature on a range of devices, Multi-channel testing is opted. Next when tester focuses on how the customers view websites on their devices across screen resolutions and sizes, Cross channel testing is done.
2. In Omni-channel testing, tester needs to test entire application with all the users across all devices, login across devices and share about seamless experience. Whereas in Multi-channel testing, tester can perform testing with single user on a single device and all the features.
3. In case the focus is on customer experience, tester needs to select Omni-channel testing whereas if company plans to analyse the performance of every channel/device, tester should go for Multi-channel testing. When tester focuses on few device- or browser-specific then cross channel testing is done.
4. Omni-channel approach can be used where companies believes that the customer might initiate an activity on one channel and eventually move on another channel for various possible reasons whereas Multi-channel approach can be used where companies wants to include multiple platforms to engage the customers.
So, we can conclude that adopting any channel testing approach will depend on the software product domain. For instance, a retail domain based product may require Omni-channel testing approach, while a banking product needs a multi-channel approach to test its application.

Same article is published on: https://www.linkedin.com/pulse/multi-channel-cross-channel-omni-channel-whats-priya-sharma-trivedi?trk=v-feed&lipi=urn%3Ali%3Apage%3Ad_flagship3_feed%3BktsLVDnQqObtBlNWTAqeFg%3D%3D