ALL ABOUT FRAGMENTATION IN MOBILE APPLICATIONS

What is Device Fragmentation:

Device fragmentation is the phenomenon by which an increasing array of devices are used to access digital contents within websites and applications.Mobile devices experience a lot of device fragmentation.

Device fragmentation raises different issues for Merchants,content providers,advertisers and digital marketers.Digital content needs to be served to devices with different features and abilities and to an ever-increasing number of screens.A single visitor or customer may also access a same content or offer via different devices within a day.It presents a challenge for cross device identification.

What is mobile device fragmentation:

Mobile device fragmentation is a phenomenon that occurs when some mobile users are running older versions of an operating systems,while other uses are running newer versions.

Mobile device fragmentation can be a problem for software developers who must create different versions of the same application inorder to make sure it works correctly with different versions of a given operating system.It is also a problem for the QA department because different operating versions have different capabilities,which make them harder to manage and secure.

Mobile device fragmentation is often associated with Android, windows mobile operating system.Mobile device fragmentation is not much a problem with iOS devices.

There are a couple of dozens smartphones available in market, some are high end, such as Apple’s iPhone or Google’s Nexus devices, and there are many under powered devices starting from Android phone’s to the Blackberry Curve and Microsoft’s Windows phone, and there are also a large scale utilisation of tablets.

The Problem Of Fragmentation In Mobile Applications:

Fragmentation possess a huge challenge to the QA team,who generally have just a few devices to test there applications.Fragmentation is both a strength and weakness of the mobile mobile ecosystems.Here the main fragmentation problem arises for Android devices.

Apple operating systems doesnot have much fragmentation because it is alone responsible for distributing the operating system updates.

Fragmentation in Android:

Android has the most fragmented operating system,as its updates comes from wireless carriers, for example Andriod 4.0 Ice Cream Sandwich is the newest version, but more than half of the android devices in market still uses Android 2.3 Gingerbread.

Android devices come in all shapes and sizes with vastly different performance levels and screen sizes.There is also many different versions of android being used that adds another layer of complexity.

In short developing and testing applications that work across the whole range of Android devices can be extremely challenging and time-consuming.

Android users are divided into 5 versions of the operating system.

This means that the performance of the application is different, depending upon the version of Android with which they are run, and can even affect access to various characteristics or functions of the device in use.For this reason, android application are developed in a way that sets several parameters including MinSDKVersion,Max SDKVersion and TargetSDKVesrion.

Below mentioned is the various platform versions of Android

image1

This are basically the minimum version of Android compatible with the application,the maximum version of Android compatible with the application and the version that suits the application best,normally the one with which the application was tested.

From the point of user security,fragmentation involves a major problem.This is because most vulnerabilities that are identified are patched only for the latest version of the operating system,which leaves the majority of the users of the platform at risk.

Fragmentation in iOS

When it comes to iOS,this is not so extensive problem,because as soon as Apple launches a new version of operating system,then within a short period of time goes by before all the devices are upgraded with the latets version of operating system.

image2

The above image shows the version details of the iOS users.

Well it is also true that there can be devices for which new version is not available.Normally, these are items old enough to be considered as having reached the end of their user life,which is not the case of an Android devices.

The main reason for this fragmentation is that Google wanted Android to be present on the largest possible number of mobile devices. Hence, they made it open code, so that manufacturers could develop items incorporating the operating system, with responsibility for making new versions of the system available falling to them.This increase makes it highly unlikely that the objective of finding a solution for fragmentation is anywhere near being achieved.

As for Apple, since they are the only manufacturers of device with the iOS operating systems,they have more control both over physical equipment and over other software updates.

BEST PRACTICES FOR MOBILE USABILITY TESTING IN RETAIL APPLICATIONS.

In this technologically sound age, everyone uses a smartphone, and with the growing usage of mobile devices the use of retail applications in mobile has also grown rapidly. A huge population uses mobile devices to shop online. So it is very important to test the application for being user friendly while using in mobile devices, as there is a huge difference in layout in the mobile and desktop screens, and user basically has a mindset to use the application in the same way as they use them in the desktop screen, so from a tester’s point of view, here are some best practices that a QA should take into consideration while initiating testing for retail application in mobile devices.

1.HOME PAGE:
For an application homepage is the first thing that holds the user to explore or leave the application, hence it is the responsibility of both the QA and Developer to work on it to make it user friendly so that user can be able to access the same easily even in a mobile device.
a.Brand Experience:
Branding the homepage properly is the best way to attract users to use the application.For example,when we open an online retail page in our mobile say amazon.in, the most important aspect is that user gets comfortable and feels familiar while scrolling to and fro the home page.The most important thing is user relates to the application and doesnot feel that he/she has opened a page which was not out of intention.
b.Prominent Search Field:
When user gets into a retail site, they first search for the required products that they need, but as the application is used in a mobile device, and mostly the “search” field is present at the bottom or at the side, as a result of which user needs to scroll the screen to search for the product and in most cases user switches to a more easier application. So it is important to keep the “search” field at the top of the home page as user is acquainted in viewing the search field at the top of the screen in desktops and sticks to this behaviour of the application.So the best practice is to place the search field at a prominent and persistent position that is at the top.
c.Category Browsing:
Sometimes user donot get how to browse using categories as some sites have not designed the category browsing easy which makes user difficult to understand, So the user has to forcibly use the search field to find the products.some sites have the categories list and a navigation arrow, which when clicked navigates but that doesnot tells the average user that it can be browsed, hence the best practice is to place the categories under the header “browse categories” or make a dropdown list of “browse categories” and add all the categories to make user access the same easily.In this way a large number of categories can be included in the homepage itself.

2.NAVIGATIONAL BROWSING:
There are a lot of pros and cons of navigational browsing,let me give an example of the same.
1.In some applications there is a huge tree of categories and sub categories to choose from, like we have multiple categpries under the browse categories->cat1,cat2 namely. And cat1 say is clothing, when selected again shows more options->men,women,kids, women category when selected again shows tops,dresses, again when tops is selected it shows a list of all the varieties of tops available, hence it becomes very frustrating for the user to wait such a long time to get the results hence they close the browse category option and directly opt to use the search option.
We have another better option and the naviagtional browser should work in this way

2.Suppose we have in the browse categories say multiple categories cat1,cat2 and so on.when we select cat1 as clothing then it should show options as men,women,kids, selecting women wear should show all the images of the items alongwith the rest sub categories at the side so that user donot have to wait to find the product and showing image will keep the user engage and also help user understand what they are choosing .

3.RESULT LISTING:
This is quite important point that needs to be taken into account while using a retail site in a mobile device, as the screen size in mobile is different from that of desktop so the contents of the results listed should be satisfactory enough such that it provides details of the product in a glance.
a.Price:
Price is one of the most important thing that should be taken into account while shopping online.
The pricing details, discount% if any, the amount we save by purchasing from the site incase of sale, all should be mentioned clearly.The information should be precise, a one liner would be better so that more items fits into the mobile device.
b.Brief Description:
Brief description of the items filtered should be provided in one liners stating the product name, manufacturer and a short important description describing the product feature, so that the user gets an idea of his requirement and product available, and then if needed the user will view the product details page.
c.Ratings:
Ratings and reviews are important, while shopping online, users trust the products by the ratings and reviews, products having 2-3 good reviews and high ratings are always more preferred by user than products having low ratings.
d.Availability:
Product availability should also be shown in the result listing screen, like some sites show “in stock”, “out of stock”, “1 left in stock”, this informations make the user to decide to buy the required items quickly incase they get out of stock.

4.PRODUCT DETAILS PAGE:
The important aspect of product details page is the layout as the mobile device has a smaller screen than the desktop and also the screen sizes varies.
Here let me give various examples of the layouts of product details page:
1.In some of the sites we can find that the product image is too large and it takes most of the mobile screen,user have to scroll down to check the description, further scroll down to check the product options like colour,size, add to cart and then again when scrolled further the product reviews and ratings can be viewed.
2.In some of the sites we can find that the product image is present, with the product description and ratings at the top corner of the image, quantity and colour options are also present in the same screen,but user have to scroll down to check the reviews and ratings in detail as even if there is a link that navigates the user to the review details but that is not known to user as there is no such link shown that describes the same.
3.And the best practice option is that the product has multiple images from the required angles, there are various buttons for product description, product reviews as well as for optionshe and add to cart.In this way all the required information will be present in the same screen, and user doesnot have to scroll the page to and fro to check the details.

Thus these are the basic points that needs to be taken care of by a QA while testing a retail application on a mobile device, as user normally have a tendency to check the mobile application as per the functionality and usability of the desktop application.Hence the functionality is same through out only
the usability point should be taken care of due to versatility in screens.

PERFORMANCE TESTING IN MOBILE APPLICATIONS

The use of mobile application has increased tremendously in today’s world.

With new development and technologies the development of mobile application has increased as result of this there are a number of same type application that serves the same purpose, so if the user is not satisfied with the applciations’s performance, then they can easily switch to the next application available.

For quality assurance or mobile testing,the most important concern is the mobile user’s experience which basically depends on the performance of the application.Evaluating and testing the performance of the application is not easy as web application, there ar various criteria such as application structure(browser vs native), network used(3G,2G,WI-FI),payload structure etc.

When we do mobile performance testing, we should take the following points into notes:

a)Device application performance:

The device applications are of two types native and browser based.There are some native applications also that remotely access the browser server. Practically we can perform various device application testing,based on the application provided,like, buy a product using a native application that uses a browser(like the online shopping sites), check for the banking related things like check for your bank balance using the bank site that is installed,start an application,load a page which has multiple information like wikipedia or any other site that has a large number of images and text attached to it.This can be followed in various devices.

For example if we have a gaming application for testing, say a bowling game.

Then here we can check the following points:

a.Time taken to launch the game in various devices.

b.Time taken to throw the ball to the destination, whether it hangs if the ball is thrown at a high speed.

c.Play the game and also play the music at the same time, observe the behaviour of the application in various devices.

d.Play the game and simultaneously keeping the game on,delete a large number of messages, check the behaviour of the application in various devices.

e.Play the game and check for incoming calls/outgoing calls.

f.Play the game and simultaneously open various other applications.

.b)Network Performance:

The application may differ differently in variouse networks.QA needs to test the application in various networks to check the the variation in network latency. Factors like robustness of application,server capacity, battery life, do play an important part but the behaviour of the application withr espect to network is very important for a better user experience.

Below mentioned are some of the desired features that can be considered while testing an application over network.

a)Network disruption testing:

This can be explained as the ability to validate the mobile application functionality under network connections like connectivity loss.

For example, when a user is making a monetary transaction through a mobile application,and there is a connection loss in the middle of the transaction,even if the transaction is completed sometimes it shows a message “transaction is failed”, this is due to the inability of the application to identify the disconnection and hence is not handled properly.

b)Network Performance Testing:

This includes the real time network conditions like bandwidth fluctuation,network types and also validate the end user experience under these conditions. This can be tested when multiple user uses the same network.

For example, when we open a video, a slow bandwidth would have impacts on the video like buffering.

c)Network Congestion Testing:

In simple words, network congestion can be explained as the data loss that occurs when data packets sent by client/server over a network doesnot reach the desired destination.The data loss has a severe impact in the user experience of the application if error conditions are not handled correctly.

For example,data loss in the application may result in an application screen freeze,a sudden application closure,or some features might stop working for some time.

d)Multi Network Tesing:

It is to check the ability of the application to validate the mobile application’s behaviour and network performance during a switch in the network.

For example,sometimes user faces a number of network changes like from wifi at office or home to 3G/2G connection when there is no wi-fi enabled. Hence if the network switch is not handled properly then there might be a database corruption by the application.

e)Trace Testing:

The mobile network testing solution should be able to test the network traces collected from a live network environment.

For example, a huge delay in the network environment may cause slow data transfer, as a result of this the application can show an error quickly or the user interface of the mobile application might get unresponsive.

Today business using mobile applications consider the impact of both the network as well as device testing to ensure the functional performance and flexibility of the application under varied devices and networks.Application versatility in multiple device and network should be taken into account, as the performace of the application has tremendous influence on the brand image of the company that builts the mobile application.

In my next blog I will be writing more about the major aspect of each application that is taken into account alongwith the performance, the “security testing” of mobile application testing.

USER INTERFACE TESTING FOR MOBILE APPLICATIONS

In a mobile application, the first area for which test plan needs to be executed is the user interface. It is very important to have a good look and feel of the application that would attract consumers to use the application.

It is the duty of a QA to ensure that the application has a easy to use user interface.

The QA should have a proper knowledge about the flow of the devices in which the application is to be tested, as the application might have impact on the mobile device’s native application like phone,email,camera,contacts,calender etc.

Below are some of the important points that is to be considered in a user interface testing alongwith the some of the basic steps that a QA generally follows to test the various aspects.

a)Screen Resolution:

In today’s scenario, the mobile applications have become more versatile,they are designed to fit to various mobile devices, with different screen resolutions.

In this case it is wiser to start with the device with the smallest screen and then continue to the largest one. In this way, incase of the smallest screen, there are chances that the application doesnot fit into the device, and the fields and screen are cut off. Same is the case with the devices with various screen sizes.Hence we need to check the screen orientation both in landscape and potrait mode in different screen sizes using various devices available as per the requirement, and also all the pages in the application needs to be tested in both landscape as well as potrait mode.Any layout changes in future should also follow the above process to make sure that the application still looks good in the required screen sizes.

The second thing that is quite important while checking for the screen orientation is the use of the virtual keyboard while changing the screen modes.

Lets take a real time example,sometimes there are chances that when user makes frequent change in orientation and by mistake the virtual keypad opens, or user is in a hurry, and wants to search something, in this process if the screen orientation changes (which is very obvious in the smartphones that are very sensitive to the screen moves), and on opening the virtual keypad, the screen might crash or have a negative effect on the application which is very common, if developer has not provided exception handling. So this kind of scenarios should be handled.

b)Touchscreens and Trackballs:

Smartphones basically have a number of touch functionality to make the applciation look easier, like the pinch-to-zoom effect, sliding effect are some to include.

So QA should make it a point that the application is checked by zooming in some of the sections as per requirement of the application, like for a restaurant application or for a navigation application, we need this zooming effect extensively, to check whether when zoomed in it shows the result in more detailed way or not., similarly if the texts are too small, we can just zoom it and check that they are not distorted.

In the same way we need to check that the sliding effect is working in a single stroke or not.After we slide, the next screen must fit into the screen resolution without getting distorted.

The buttons used throughout the application should be big enough to be clicked in a large fingertip, and also sometimes user uses stylus to perform the functionality so this should be kept in mind that the buttons are sensitive to any kind of touch.

When user needs to enter text in any search field, or user entry fields, the virtual keypad should open automatically, and also user should be able to scroll throughout the page by using the up and down storke.

Sometimes,user donot use the touchscreen, and prefer to use the trackballs, and also not all mobile devices have touchscreens, so navigation through fields should be activated using trackballs, left right navigation, page scrolling, so that using the application is easy even without touchscreen.

c)Hard keys:

The application should also be tested, to make sure that they are well integrated with the mobile hard keys like start,home,menu and back buttons.

In general to make the user have a great experience, these hard keys should work the same way it works in mobile’s native application.

d)Shortcuts:

Discuss with the developers if there is any shortcuts present in the application that is similar to the device used for testing and check whether it functions correctly or not.

The above mentioned points are some few things that is to be considered in general while testing a mobile application for user interface. Various devices have different functionalities that is to be considered and testing should be done based on the application.