All About Using Regular Expression In Jmeter- part 1

Regular Expression is a combination of strings,number and characters that forms a pattern which can be searched for within a longer piece of text in the response.

Here are the expressions that will be used for creating Regular Expression.

1.The Backlash(\)

A backlash is a bridge between a regular expression and a plain text. Using a “\” we can turn a regular expression into a plain text.

For example we have to match “/image?id=0123” in the response body,but “?” itself has a use in the regular expression so in this case we can use “\” inorder to match the text in the response.

eg-> /image\?id=0123.

In this way the ? Is treated as a normal character.

2.Pipe(|)

This expression means “or”,it matches everything on the either side of a pipe(|)

example: Suppose we have a page response where we need to match all the occurances of the word cocktail and mocktail.Then here is the expression that would work

cocktail|mocktail

3.The Question Mark(?)

It means the last item or character after the ?is optional.In other words the ? Makes the characters that come before it optional.

Example: We have a page with combination of the word “smoulder” and “smolder” and our goal is to match the occurances of this word in the page

smou?lder : this checks that while matching the words, the ? Checks atleast one or zero occurance of the letter “u” in the word.

Hence using the above pattern we can be able to find both the word smoulder and smolder from the page.

4.Parenthesis()

It matches two urls.

Example:In short words we can mention that it is used to check everything on one side or everything on the other side.

Say /foldertwo/thanks and /folderone/thanks

we can write the RegEx expression as

/folder(one|two)/thanks.

In the above RegEx allows to match either the thanks page in folderone or the thanks page in foldertwo- and it is the () that allows us to group the matches.

5.Square Brackets & Dashes:

Using square brackets we can make a simple list and then use them for matching the words consisting of the list.

Example : say we have list [aiu], if we use it as p[aiu]n then we shall get the match for pan,pin,pun but not pain.

In the similar way we can also use “-” to create list of items

example:

[a-z]->all lower case letters.

[A-Z]->all upper case letters.

[a-zA-Z0-9]->all upper case, lower case and digits.

Dashes are a way of creating a list of items.

For example if we have a product group of shoes say loafers and each product name has a number appended to it in the url say loafers012 ,loafers013..

so we can write the expression as loafers[0-9] :this expression will match all the product with product name loafers and followed by the digit from 0-9

6.Braces{}

It repeats the last item specific number of times.

For example.if the braces as two numbers in it like {x,y}then the last item will repeat at least “x”times and not more than “y” times. And if the braces has one number in it {x} then it means repeat the last item exactly “x”number of times.

If a company has multiple ip address, so inorder to generate the regular expression for the ip address from the response page.

123\.105\.169\.[0-9]{1,2}

This means that the digit from 0 to 9 will be repeated at least once and not more than two digits.

Now incase of one digit in the braces,

If there is a scenario where a page as multiple 10 digit mobile numbers, and our goal is to match the mobile number using RegEx.

Then we can use : \d{10}->it is used to match single digit.

7.DOt(.)

A dot matches any one character,it represents the numeric,alpha,special character, and a dot even matches a whitespace.

For example we take this regular expression “.ite”, then it would match “site,lite,kite,bite”.

.matches one character, .ite wont match any character because “ite” includes 0 character after “.”to match.

8.Plus Sign(+):

It matches one or more of the previous items.The number of matches is one or more.

For example if a page has word as “aaargh”,”aaargh”,”aargh”

now we can generate the regular expression as aa+argh,then the words that will match are “aaargh,aaaaargh,aargh” but it wont match “argh” as “+” sign will only match one or more words before the + sign.

9.Star(*):

It matches zero or more characters, but + sign matches only one or more characters it doesnot match zero characters.

If a page has words like aargh,argh,aaaargh.. then the regular expression that can be used to match is aa*rgh which will match argh,aargh,aaaargh.

Here argh will be match because * matches zero or more expression.

10.Dot Star(.*):

“.” followed by “*” are the two regular expression when put together means everything will be matched.

Example: /folderone/.*index\.php

In the above,example the regular expression will match to everything that starts with “folderone/” and ends with “index.php”. This means if we have page in /folderone directory that ends with “.html” then that wont be matched.

“.” means repeat any character and “*” means repeat last character zero or more number of times.

In short the “.” matches the last character be it any number, any character, any alphabet and the “*” matches right after it having the ability to match zero or more characters, this means it matches everything.

11.Caret(^):

When we use a ^, it means we need to match the exact the string only that exactly matches our RegEx.

Lets explain this with a simple example.

Suppose we have a web page that contains string that start with a number at the beginning such as:

123RTGS

114FTUR

143MISS

our goal is to match the string at the beginning of the string, then we can write the same as follows:

(^\d+)-> ^ indicates beginning of the string.

->\d indicates matching a single digit.

->+ denotes matching of one or more digits.

Caret can also be used as [^] ->this means that it matches a single character that is not contained within the brackets. Example: [^abc]-> this will match any character other than “a”,”b”,”c”.

In simple words, if we put the ^inside a square bracket[], then it matches only characters that are not right after the caret. So [^0-9] means if the target string contains the digit, it is not a match.

12.$ sign:

It means nothing that the if anything is added after the $ sign then those wont be matched with the target expression,anything that is before the $ sign will be matched.

For example:

Suppose a webpage has page that ends with *.txt,*.txtphp,*.php,*.html. And our goal is to match only the page that ends with .txt, then we will use the following regular expression.

.*\.txt$ → this means all the page that ends with .txt will be matched and rest of the pages wont be matched.

13.Whitespace(\s):

Matches the whitespace characters,which in ASCII are tab,line feed,form feed,carriage return and space. In unicode also matches no-break spaces,next-line,and the variable width spaces.

14.Digits(\d):

Matches a single digit same as [0-9] in Ascii. If followed by + in this way, \d+ then it will match one or more digits in a line or string.

This is all about the Regular Expression, how to use the various characters to generate our own regular expression and then try to match the same with the target expression and continue testing.

ALL ABOUT JOINS

“SQL Joins” is used when there is a requirement to retrieve data from two or more tables in a database.

Let us take an example of two tables.

Featured image

There are different types of Joins present in SQL, they are namely:

1.INNER JOIN:

It shows the result that is common in both the tables.

Featured image

Syntax:

SELECT <col1,col2…> FROM <table1> INNER JOIN <table2> ON table1.column=table2.column.

This can be explained clearly using the above mentioned tables.

SELECT EMPLOYEE.EMPLOYEE_ID, EMPLOYEE.EMPLOYEE_NAME,DEPARTMENT.DEPARTMENT_NAME FROM EMPLOYEE INNER JOIN DEPARTMENT ON EMPLOYEE.EMPLOYEE_ID=DEPARTMENT.EMPLOYEE_ID;

Featured image

2.LEFT OUTER JOIN:

This will retrieve all the data from the left side of the table even if there is no match in the right side table.

Featured image

Syntax:
SELECT <column1,column2…> FROM <table1> LEFT INNER JOIN <table2> ON table1.column=table2.column;

This can be explained with the following example using the above mentioned tables.

SELECT EMPLOYEE.EMPLOYEE_ID, EMPLOYEE.EMPLOYEE_NAME,DEPARTMENT.DEPARTMENT_ID FROM EMPLOYEE LEFT INNER JOIN DEPARTMENT ON EMPLOYEE.EMPLOYEE_ID = DEPARTMENT.EMPLOYEE_ID;

Featured image

3.RIGHT OUTER JOIN:

This will retrieve all the data from the right side of the table even if there is no match in the left side of the table.

Featured image

Syntax:

SELECT <column1,column2,…> FROM <table1> RIGHT OUTER JOIN <table2> ON table1.column = table2.column;

This can be explained with the following table using the above mentioned tables:

SELECT EMPLOYEE>EMPLOYEE_ID, EMPLOYEE.EMPLOYEE_NAME, DEPARTMENT.DEPARTMENT_NAME FROM EMPLOYEE RIGHT OUTER JOIN DEPARTMENT ON EMPLOYEE.EMPLOYEE_ID=DEPARTMENT.EMPLOYEE_ID;

Result:

Featured image

5.Self Join:

This joins a table to itselfas if they were two tables, such that atleast one of the table in temporarily renamed.

Syntax:

SELECT <a.column_name1, b.column_name2…> FROM <table1 a, table2 b,…> WHERE a.common_field = b.common_field;

This can be explained with the following example:

Featured image

Suppose we need to find out the list of all employees that has location same as the employee “Seema”.

SELECT a1.Employee_name FROM Employee1 a1, Employee1 a2 WHERE a1.Employee_location=a2.Employee_location and a1.Employee1=’Seema’;

Result:

Featured image

6.Cartesian Join:

It retreives the cartesian product of set of records from two or more joined tables.

It is also called as Cross Join.In simple words we can explain this as follows:

a Cartesian join of (A,B) and (1,2,3) is (A,1) (A,2) (A,3) (B,1) (B,2) (B,3).

Syntax:

SELECT table1.coloumn1, table2.column2… FROM table1,table2,….

0r

SELECT * FROM table1 CROSS JOIN table2;

Suppose there are two tables namely Student and Section.

Featured image

SELECT * FROM Student CROSS JOIN Section;

Result:

Featured image

This is all about joins which is a very important aspect of writing queries as it combines two or more tables and hence reduce the complexities of writing long queries.

In my next blog I will be writing more about SQL queries.

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.

SECURITY TESTING IN MOBILE APPLICATIONS IN THEORY (Part 1)

Mobile application security testing has recently obtained more attention with the introduction of iphone,ipad and andriod phones.With the growing consumer demands for smartphone applications, companies are in a rush to develop new applications or modify there existing application to fit into the smartphone world.

Compared to web and desktop application, mobile testing application are prone to risk and hence security testing is less done in this kind of applications.

There are more threats on mobile applications than the web and desktop application due to the following reasons:

->Location independent.

->Mobile applications are always online and hence traceable.

->Devices are built for personal uses.

->Mostly focus is done on functionality and design rather than securtiy.

->Hidden business cases for free application.

Challenges in mobile testing:

1.Identify differences to common penetration tests.

2.Application security also depends upon the device security(jailbreak,different platforms,versions,interfaces etc).

3.Different attackers(internal,external,network or device access).

Mobile Security Testing Overview:

->Intelligence gathering

->Threat Modeling

->Vulnerability Analysis

->Vulnerability Assessment

Intelligence Gathering:

Intelligence gathering consists of two analysis namely,

a)Environmental Analysis.

b)Architectural Analysis.

a)Environmental Analysis basically focuses on the company behind the the application and their business case and the relating stakeholders.

It analyses the internal processes and structures.

b)Architectural Analysis mainly deals with application network interfaces,used data,communication with other resources,session management,jailbreak/rooting detection,runtime environment,backend services.

Examples of architectural analysis:

->user session is not out until the user logs off manually from the page.

->When no financial transactions are involved.

->Provides operations on server side for creating,reading,updating,deleting records.

In my next blog I will be posting more about security testing as I learn more about the same in theory with some good examples.

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.

EXTERNAL FACTOR TESTING IN MOBILE APPLICATIONS

It has been rightly said that “almost anything that touches an application either improves or degrades performance of the application.” Determining whether that is infrastructure,code,data,the network,the application architecture, the end point user, or another application is the name of the game.

So it is important for a QA to consider all the points that affect the application performance when it is in use, to avoid unbearable situations. For this the real time scenarios should be taken into mind while testing the application.

Here are few external factors that should be taken care of while testing a mobile application.

a)Network Connection:

A mobile application is going to work in various networks connections.So it is important to check the application when the device is used in various network coverage mentioned below:

a.The application should be checked when the network is connected to WI-FI connection.

b.The application should be checked when the network is connected to 2G connection.

c.The application should be checked when the network is connected to a 3G connection.

d.We can check the application without entering any sim card in it and also by inserting sim card in it, to notice its affect in the application performance.

e.Check the functioning of the application when there is no network connection at all,by disconnecting all the mobile network connections(real time scenario, when the mobile has no connection at all)

f.Check the behaviour of the application when the mobile device uses the network through a USB connection into the PC.

g.Check in places where there is poor network feasibility, to check the applications behaviour in situations where the connection goes up and down.

h.Check by walking out of WI-FI range so the connection automatically switches to 2G/3G and being in this scenario check for the network’s behaviour.

b)SD Card Interactions:

Some application uses SD card to store and retrieve data, for this kind of application QA needs to

a. check the behaviour of the app when the SD card is available and when the same is removed.

b.check whether error messages are shown or not when the application is not able to connect to the SD card.

c.Also we can check the behaviour of the application by removing the SD card in the middle of the operation to check how the application responds to this malfunction.

c)Interrupt testing:

Normally when we use the application in a mobile device, and now a days even the tablets are able to receive calls. So in this case, the response of the application needs to be checked when there are device related interruptions.

Following are some of the device related interruptions which should be included in a QA’s testcase execution list to check the overall response of the application.

a.Application is interrupted by an incoming call, and the receiver hangs the call.

b.Application is interrupted by an incoming call, and the caller hangs the call.

c.Application is interrupted by an outgoing call, and the receiver hangs the call.

d.Application is interrupted by an outgoing call, and the caller hangs the call.

e.The application might be interrupted by a incoming message(both audio and text message),web notifications,low battery notifications,alarm clock,reminders are some of the mobile dependent interruptions.

d)Device Options:

There are some device related functionality that might be affect the application performance, namely:

a.If its a music related app or something related to sound, check whether changing the sound profile affects the application’s behaviour.

b.Sometimes devices have application unlock facility, so while installing an application it may prompt to provide password or unlock the screen, so this needs to be checked that whether this unlock screen feature affects the application flow.

c.Check by changing the font or theme of the mobile device, and check whether this affects the application’s performance.

d.If the device has a time out period provided, check whether it affects when an applciation is in use.

e.Check whether the application responds to the screen orientation aspect of the device, do it fit correctly when changes to landscape or portrait mode.

f.Check whether the application responds properly or not when there is some other connections like bluetooth or connected to some other device.

All these above external factors are not applicable in each scenario, based on the applications design, requirement and functionality we can perform our testing using this basic cases.

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.

MOBILE APPLICATION TESTING STRATEGY:

As a beginner in mobile testing, I would like to share all my learnings in this blog.

Before we begin testing a mobile application, let us have an overview of the type of mobile applications present.

There are basically three types of mobile applciation, namely-native,web and hybrid.Native applications are speciffically designed to run on device operating system.

While web applications get the resource from the internet directly each time we run the application and hybrid applications have a native build and they are implemented using web technologies.

A tester needs to be aware of these things and think about test objectives, test approach, test design, and test execution specific to the type of application being tested.

Development of applications for mobile devices is a rapidly growing process.

The mobile users like iphone,ipad,android,windows phone 7, all these create a never ending demand for more and more applications.

Thus the user wants the mobile applications to be easy and faster, one small bug in the application can result in product dissatisfaction,losing the customer and hence monetary loss.

It is therefore important to prepare a proper strategy which is very much mobile specific, as there is much difference in testing a web application and a mobile application.

Below mentioned are some areas that are very much mobile specific, and can be considered as an initiate to mobile testing.

1.User Interface Testing.

2.External Factors Testing.

3.Stress Testing.

4.Security Testing.

Apart from this we have the functional and integration testing, which are basically same as we test any other application, very much requirement specific.

In my next few blogs I will be explaining each of these strategies in detail as I explore them more.

 

Foundation to Mobile Testing

In today’s rapidly growing world, the use of mobile application has become more and more common, than the desktop or web applications. Today starting from the youngsters to the middle age man, people from each age group prefer to use there mobile for the basic purpose to access their bank accounts,credit card access,travel itineraries to personal email to name a few.

So the mobile consumer are increasing due to its application usability and consumer satisfaction. With the rise of the consumption, the thirst for better user friendly application is also growing. So to reach the consumer level satisfaction, the client should always consider the real time user point of view and instead of checking for cost reduction should thoroughly insist on the testing effort. As the application might be developed in a very brilliant way but there are various situations both external as well as internal circumtances that affects the application performance,which might make the consumer not so easy to handle the application.As a result of this the consumption might descrease due to user dissatisfaction and hence a loss in business.

Hence, testing is time and money consuming, but at the same time it is an important aspect of mobile testing. As mobile testing is not a matter of single platform or single device.

Mobile testing involves various operating systems like Android,iOS,Windows, it deals with various versions of an operating system such as iOS 4.x, iOS 5.x,BB 4.x,BB 5.x,BB 6.x, and the multiple manufacturers such as Samsung, HTC,Nokia,Apple among others.

Types of Mobile Testing

1.Hardware Testing

This includes the mobile features like screen resolution, internet connectivity,screen sizes,resolutions,space or memory,camera, radio,bluetooth etc.

2.Software Testing

The applications that works on mobile devices, those are tested for its functionality and performance.Software applications can be divided into three types.

a)Native Application:

It is created to work in platforms like mobile and tablets, it can use the the device’s notification system and work offline.

b)Mobile Web Apps:

Mobile applications looks and feels like native application,but they are not implemented like the same.They run by a browser and typically written in HTML. Users first access them as they would access as any web page, and then they can be saved in the homepage if wished by making it bookmarked.

c)Hybrid Apps:

These applications are partly web application and partly native application.Like native applications, they are present in the mobile app store, and can take advantage of the many device features available and like web apps they depend upon the HTML that is used in the browsers.

Types of Mobile Application Testing:

a)Usability Testing:

It should be user friendly and easy to handle, and designed as per users requirement to reach user’s satisfaction.

b)Compatibility Testing:

As per the requirement, the application should be tested in different mobile devices, operating system versions,different screen sizes and resolutions.

c)Interface Testing:

Testing the navigation flow of the application including the options, buttons, bookmarks, history, setting.

d)Services Testing:

Testing the services of the applciation provided,and noticing its behaviour when online and offline.

e)Low Level Resource Testing:

Testing of memory usage,auto deletion of temporary files,local database growing issues known as low level resource testing.

d)Performance Testing:

Testing the application using various network connectinos such as 2G,3G,wifi.

Check the application’s behaviour when files are shared, check for the battery consumption when applciations are used.

e)Operational Testing:

Testing of backup’s and recovery plans if battery goes down or data loss while upgrading the application from store.

f)Installation Testing:

Checking validation of the applciation by installing or uninstalling the application on the device.

g)Security Testing:

Testing the application to check that the database information are secured or not.

These are just the initial knowledge required to know what actually mobile testing is all about.

There are more to come regarding mobile testing.