Complete Web Application Testing Checklist
Complete Web Application Testing Checklist
Application Testing
Prior to see more details on web application testing, first let’s see the definition of the Web
Testing.
“Web testing is the name given to Software Testing that focuses on testing the web
applications.” In Web-based application is completely tested before going production
environment. This could help to address the issues in web application before exposed to
public like the Functional issues, web application security, web services issues, integrations
issues, environment issues and its ability to handle traffic is checked. In this stage of Web
Testing making effort to find out the possible bugs in the system.
Let see what all testing is to be carried out on in software web testing. The testing is
totally based on your web testing requirements but following is the standard checklist of
web testing:
Functionality Testing:
What is Functional Testing?
Testing the features and operational behavior of a product to ensure they correspond to
its specifications.
Testing that ignores the internal mechanism of a system or component and focuses
solely on the outputs generated in response to selected inputs and execution
conditions.
What is the purpose or Goal of Functional testing?
The goal of Functional testing is to verify whether your product meets the intended
functional specifications mentioned in your development documentation.
Let’s start with the Web Application Testing Checklist:
The following testing must be carried out while doing Website Functionality testing:
A) Validation testing:
» You should make sure that if the valid HTML is used for your website. To check this you
can use W3C validator.
» In functionality testing the different fields used in the website should be validated like
Textboxes, dropdowns, radio options, check boxes, Combo box inputs, links etc.
» Now a day’s most of the website preferred to use CSS means Cascading Style Sheet. In
the market many CSS validator tools are available, one of the good tool is W3C CSS
validator which will help you to validate the CSS used in your site user test.
B) Links/URL Testing:
This testing is very much interesting and can be helpful for SEO of you r page. Following
types of testing should be carried out for Link or URL testing:
Internal links: The link which are pointing to the pages of same websites. This
testing make sure that the internal links are properly linked to expected pages of
your websites link like Home page, Contact Us, About Us etc.
External links: The link which are pointing to the pages of external websites. This
testing makes sure that the internal links are properly linked to expected pages of
external websites.
Email links: Such link need to make sure that the if user clicks on the email link
then default email client should open with To address should be pre-filled.
Broken links: Broken links are also called as Dead links. Such links are not linked to
any of the pages either internal or external pages of the website. Such link
generated with the spelling mistakes in the link URL or linked page is removed or no
more exists. To check broken link you can use online tools to validate the broken
links in the website.
In Website Testing Checklist the web forms are the most commonly used in the websites, so
it is one of the most important part of the website testing. Consider a scenario where user
fills an enquiry form and click on Submit button, now what next or they just fill in the form
and do nothing, the details do not get captured correctly and so are lost. While doing forms
functional testing make sure that they should be consistent and should contain the required
input and output controls. The data should be captured properly.
D) Database Testing:
Now days with the new technologies like android and smart phones computer applications
are more complex.
If the front end is more complicated then the back ends are also convoluted. As a result,
introduce more complex database schema to support such intricate computer applications.
So it’s more important to validate the databases to make sure the quality and website able
to handle the data processing effectively.
E) Cookies Testing:
A Cookie is information stored in text file on user’s hard drive (client side) by web server.
This information is used later by web browser while accessing the website. Ideally the
cookie is used to store the personalized user information or data in encrypted or secured
manner. This is small size files which act as unique identifiers and allow websites to
remember a particular user for a given time. These files are not harmful for users.
Sometimes if the user’s personal information is stored in the cookie and if hackers stolen
the cookie then hacker can get the confidential information which leads to security issues.
That’s why the testing of Cookie is most important. There are two types of cookies
Persistent Cookie and Non-Persistent Cookie.
In the well developed website the error messages are very much helpful to guide users for
success and erroneous conditions. While navigating through application if poorly designed
error messages will easily misguide the end users. Many of the websites are used different
interesting pages when 404 error is displayed.
The proper handling of required and optional fields should be efficiently handled. Ideally the
application should not be submitted unless and until all required fields are filled properly.
The required error message should be displayed when user proceed with not filling the
mandatory fields. It should not restrict you for proceeding further if the optional fields are
not filled.
2. Usability testing:
What is Usability Testing?
A Usability test establishes the ease of use and effectiveness of a product using a standard
Usability test practices The Usability Testing is comes under a Black Box Testing
Technique where testing is to be carried out with users point of view.
B) Identity:
The placement of website logo should be at prominently place like right top side of
the page.
Proper tagline should be used which clearly states the purpose of the website.
Company and Contact Information must be clearly mentioned which helps to identify
the company information.
C) Navigation:
Main Navigation should be easy to find, read and use. If more than navigations are
used then make sure that user should clearly understand why multiple navigations
are used.
Clear & Concise navigation labels should be used in website.
Reasonable use of links and button in website so user will not confuse while
navigating the pages.
As a common practice the Company Logo should be linked to website Home page.
The Site Search facility should be present on the website and make sure that the Site
Search button simple and easy to access like top right of the page.
D) Content:
Headings should be clear and descriptive and SEO use of proper heading tags like
H1, H2 etc.
Make sure that the critical content should be displayed on the first screen in average
screen resolution i.e. 1024×768.
Use of consistent font styles and colors across the website help user to understand
that they’re still on your site.
Use of user friendly and meaningful keywords for URLs will help both user and search
engines to understand navigation.
Meaningful and self explanatory titles (in the <TITLE> tag) should be used for pages.
These titles are used by search engines to display in the Search result by search
engines. If the improper titles are used then user will skips the your website pages
link and proceed further.
Web page content should be correct without any spelling or grammatical errors
All fonts should be same as per the requirements.
All the text should be properly aligned.
All the error messages should be correct without any spelling or grammatical errors
and the error message should match with the field label.
Tool tip text should be there for every field.
All the fields should be properly aligned.
Enough space should be provided between field labels, columns, rows, and error
messages.
All the buttons should be in a standard format and size.
Home link should be there on every single page.
Disabled fields should be grayed out.
Check for broken links and images.
Confirmation message should be displayed for any kind of update and delete
operation.
Check the site on different resolutions (640 x 480, 600x800 etc.?)
Check the end user can run the system without frustration.
Check the tab should work properly.
Scroll bar should appear only if required.
If there is an error message on submit, the information filled by the user should be
there.
Title should display on each web page
All fields (Textbox, dropdown, radio button etc) and buttons should be accessible by
keyboard shortcuts and the user should be able to perform all operations by using
keyboard.
Check if the dropdown data is not truncated due to the field size and also check
whether the data is hardcoded or managed via administrator.
3. Compatibility testing.
What is Compatibility testing?
Web applications are rendering differently on different browsers. The objective of browser
compatibility testing is to ensure that no any errors on the different web browsers while
rendering the sites. In Browser Compatibility Testing you need to ensure that your web
application is being displayed properly on different browsers. Also check AJAX, JavaScript
and authentication are functioning correctly.
OS compatibility:
In new technology newer graphics designs are used & different APIs are used which may
not work on different Operating systems. Also on rendering of different objects like text
fields, buttons may display different on different Operating System. So testing of web
application should be carried out on different OS like Windows, MAC, Solaris, Unix, Linux
with different OS flavors.
Mobile browsing:
In latest Mobi technology you also test out Mobile Browser Compatibility too. It may be
possible of Compatibility issues on Mobile browsers. So in the new Mobi technology age you
testing of web pages on mobile browsers should be carried out.
Test the website in different browsers (IE, Firefox, Chrome, Safari and Opera) and
ensure the website is displaying properly.
Test the HTML version being used is compatible with appropriate browser versions.
Test the images display correctly in different browsers.
Test the fonts are usable in different browsers.
Test the java script code is usable in different browsers.
Test the Animated GIF's across different browsers.
Tool for Compatibility Testing:
4. Database Testing:
What is Database Testing?
In Database testing backend records are tested which have been inserted through the
web or desktop applications. The data which is displaying in the web application
should match with the data stored in the Database.
Testing activities would include-
To perform the Database testing, the tester should be aware of the below mentioned
points:
The tester should understand the functional requirements, business logic, application
flow and database design thoroughly.
The tester should figure out the tables, triggers, store procedures, views and cursors
used for the application.
The tester should understand the logic of the triggers, store procedures, views and
cursors created.
The tester should figure out the tables which get affected when insert update and
delete (DML) operations are performed through the web or desktop applications.
With the help of the above mentioned points, the tester can easily write the test
scenarios for Database testing.
Verify the database name: The database name should match with the specifications.
Verify the Tables, columns, column types and defaults: All things should match with
the specifications.
Verify whether the column allows a null or not.
Verify the Primary and foreign key of each table.
Verify the Stored Procedure:
Test whether the Stored procedure is installed or not.
Verify the Stored procedure name
Verify the parameter names, types and number of parameters.
Test the parameters if they are required or not.
Test the stored procedure by deleting some parameters
Test when the output is zero, the zero records should be affected.
Test the stored procedure by writing simple SQL queries.
Test whether the stored procedure returns the values
Test the stored procedure with sample input data.
Verify the behavior of each flag in the table.
Verify the data gets properly saved into the database after the each page submission.
Verify the data if the DML (Update, delete and insert) operations are performed.
Check the length of every field: The field length in the back end and front end must be
same.
Verify the database names of QA, UAT and production. The names should be unique.
Verify the encrypted data in the database.
Verify the database size. Also test the response time of each query executed.
Verify the data displayed on the front end and make sure it is same in the back end.
Verify the data validity by inserting the invalid data in the database.
Verify the Triggers.
5. Crowd Testing:
Crowd testing is when a large group of perfect strangers try your product then give you
phenomenally helpful feedback on usability, bugs and features.
To test the software application Crowd testing can be used. It not limited to web
applications, but for all kinds of applications including mobile application testing.
Crowdtesting is dependent on the quality of the crowd. Also it depends on a crowd that is
composed out of a large group of diver’s people. It used do system tests for performance
and usability testing. Simply this is complementary to ‘normal’ testing. The mainly
complicated job of crowd testing is determining a good enough crowd.
6. Interface Testing:
In the Interface testing mainly three areas should be covered: Web Server, Application
Server and Database Server. Ensure that all the communications between these all servers
should be carried out correctly. Verify that if connection between any servers is reset or lost
then what is happing. Check if any request interrupts in-between then how application is
responding. On returns of any error from web server or database server to application
server then error should be Errors are handled properly & display such errors to the user.
Web Server: Check if all web requests are accepting and not any requests are denied
or leakages.
Application Server: Check if request is sending correctly to the any server &
displayed correctly. Check if errors are catch properly & displayed to admin user.
Database Server: Check if database server is returns correct result on query request.
Check if all three servers are connected to each & test request is processing correctly. And
any error in between then error should be displayed to user.
7. Performance Testing:
8. Security testing:
What is Security Testing?
1. Security Testing involves the test to identify any flaws and gaps from a security
point of view. Some of the major aspects of web security testing are:
Penetration Testing
Password cracking
Vulnerability
URL manipulation
SQL injection
Network Scanning
Log Review
Integrity Checkers
Virus Detection
Check if unauthorized access to secure pages, if user changes from “https” to “http”
(secure to non-secure) in secure pages then proper message should be display and
vice versa.
Check if accessing internal pages directly entering URLs in browser. If login is
required then user should redirected to login page or appropriate message should be
displayed.
Most of the information related to transactions, error messages, login attempts
should be logged in log file.
Check if restricted files are able to access for download.
Check if internal Web directories or files are not accessible unless & until not
configured for download.
Check if CAPTCHA is added & working properly for logins to prevents automates
logins attempts.
Check if try to access others information by changing parameter in query string. For
example if you are editing the information & in URL you are seeing UserID = 123, try
to change this parameter values & check if application is not providing the other
users information. It should display Access denied for this user to view others users
information.
Check if sessions are got expired after pre-defined amount of time if user not using
session.
Check if user not able to pass login page for invalid username/password
combination.
Check if user is navigated to encrypted SSL pages for secure website.
2. Verify the web page which contains important data like password, credit card
numbers, secret answers for security question etc should be submitted via HTTPS
(SSL).
3. Verify the important information like password, credit card numbers etc should
display in encrypted format.
4. Verify password rules are implemented on all authentication pages like Registration,
forgot password, change password.
5. Verify if the password is changed the user should not be able to login with the old
password.
6. Verify the error messages should not display any important information.
7. Verify if the user is logged out from the system or user session was expired, the user
should not be able to navigate the site.
8. Verify to access the secured and non secured web pages directly without login.
9. Verify the “View Source code” option is disabled and should not be visible to the user.
10. Verify the user account gets locked out if the user is entering the wrong password
several times.
11. Verify the cookies should not store passwords.
12. Verify if, any functionality is not working, the system should not display any
application, server, or database information. Instead, it should display the custom error
page.
13. Verify the SQL injection attacks.
14. Verify the user roles and their rights. For Example The requestor should not be able to
access the admin page.
15. Verify the important operations are written in log files, and that information should be
traceable.
16. Verify the session values are in an encrypted format in the address bar.
17. Verify the cookie information is stored in encrypted format.
18. Verify the application for Brute Force Attacks
Security Testing Test Scenarios
1. Check for SQL injection attacks
2. Secure pages should use HTTPS protocol
3. Page crash should not reveal application or server info.
Error page should be displayed for this
4. Escape special characters in input
5. Error messages should not reveal any sensitive
information
6. All credentials should be transferred over an encrypted
channel
7. Test password security and password policy enforcement
8. Check application logout functionality
9. Check for Brute Force Attacks
10. Cookie information should be stored in encrypted
format only
11. Check session cookie duration and session termination
after timeout or logout
11. Session tokens should be transmitted over secured
channel
13. Password should not be stored in cookies
14. Test for Denial of Service attacks
15. Test for memory leakage
16. Test unauthorized application access by manipulating
variable values in browser address bar
17. Test file extension handing so that exe files are not
uploaded and executed on server
18. Sensitive fields like passwords and credit card
information should not have auto complete enabled
19. File upload functionality should use file type restrictions
and also anti-virus for scanning uploaded files
20. Check if directory listing is prohibited
21. Password and other sensitive fields should be masked
while typing
22. Check if forgot password functionality is secured with
features like temporary password expiry after specified
hours and security question is asked before changing or
requesting new password
23. Verify CAPTCHA functionality
24. Check if important events are logged in log files
In this article, we are going to learn “How to test responsive website”. Also learn about
related factors which are worth considering while testing Responsive web design.
Let’s say if user switches from mobile view to desktop/laptop/ipad view or vice versa. In
such cases website page should render automatically and set best possible screening
experience.
Responsive website is compatible with multiple devices like all browsers, resolutions, screen
sizes on different screen size desktops and devices like Smartphone, tablets etc. It is very
important to test the responsiveness of the website for excellent user experiences.
When a website is developed, main concern of the client is RWD (Responsive Web Design),
since it is easier to see and shop from our mobile device then to open our PC and surf. We
carry our smartphone everywhere with us so it is an extremely flexible option for us. No
matter what size of the smartphone screen you use, RWD should be compatible with all of
the varieties. That is why most of the “ready to use” web designed or themes come with
responsiveness. So developer just needs to write the code for the website and not to worry
about the responsiveness.
To resize the page element most common concept is used in RW design is fluid grid.
Instead of using absolute units like points or pixels for element, it uses relative units
like percentages.
RWD are implemented in different coding languages like PHP, .Net, Java and many
new technologies which supports RWD.
For image resizing to prevent the images goes beyond the defined grid on different
resolution, flexible images are resized using relative units.
Media queries are most commonly used to set different CSS style for different
resolutions. It looks for the width of the browser to apply the appropriate size based
on the width defined.
Using power of HTML and CSS can implement RWD with ease, few of the features of
CSS and HTML allows you to resize images, screen resolution automatically.
Responsive website design works on the lower and upper limit to resize the website.
Most of the time the breakpoints are defined based on the width of the website, if
the website goes above or below of the break-point the appropriate web design gets
applied.
The responsive sites and adaptive sites are sites which changes the appearance of based on
the browser width. The main difference is responsive website changes the appearance after
changes in width of browser every point. For example, if the browser 1024 px wide and
width changes below or above 1024 px then layout will respond accordingly. Responsive
sites adjust the layout fluidly not considering on which device is being used.
The adaptive site changes the appearance after changes in width of browser beyond the
specific defined points. For example, box control with 500 pixels wide displayed on site
when width of the browser is more than 800 px and if width below 800 px then box should
reduce the size to 300 pixels. Adaptive design is mainly used when page need to serve
different on different browser or devices.
One of the most challenging part of responsive website testing is to test the websites on all
browsers, resolutions, screen sizes and Operating Systems etc. However it is not realistic to
test the website with all above combinations.
By and large almost every tester start testing responsiveness of website by resizing browser
to check the break-point sizing of tablet, mobiles, desktop with different resolutions and
window to fit the viewpoint.
This exercise to quick check the rendering issues after resizing the browser. On the other
hand, testing on real mobile devices with features like landscape, portrait, zooming, finger
print access etc. and similarly experience on desktop like mouse pointers, mouse clicks etc.
1) Changing the size of your browser: when you are testing the responsiveness of a
web design, you can easily check the compatibility by changing the size of your browser. For
example, if you go to below link: google.com and try to reduce the size of your browser
screen, you would notice that the search bar has also moved to fix in the window size.
Reduce it further and make it of a size similar to a smartphone, you will notice that the web
page has adjusted to the size of the viewport of the device successfully. This method is
perfect for a quick visual test for responsiveness.
If you have used the Google chrome web browser then you may notice that at the top right
hand side of the browser, there is the viewport sizing option available as shown below. By
using this option you can change the size of the viewport to that of a smartphone or a tablet
and notice the responsiveness of the web design for that particular website. It is a quick and
very easy option available to test the responsiveness of the web design across the variable
viewport sizes of the multiple devices.
2) Emulators: These are the virtual mobiles or web based simulators depicting mobile
device like environment. When you test RWD, you have to test it for various mobile devices
and it could be costly to buy so many devices for testing purposes, emulators in such a case
solve the purpose. It shows how a website would look and function on the mobile.
Therefore, without buying the actual handset, we can test the web design responsiveness
on the emulators which could save us the money.
3) DevTools: Some website builder tools shows different options to see how your website
design would look on different devices. For example, website builder by Godaddy, Weebly,
wordpress, etc. are some of the development tools which have that option. I have attached
a screenshot from weebly for reference. They are really very helpful since they have got 3
different sizes namely desktop, mobile, iPad or tablets.
4. Online responsive checker: There are online free checker website available. You
just need to put your website URL and check for responsiveness. They are very easy
to use and you can get results in less than one minute.
To verify all the images on the web page are displayed properly on all the different
devices and resolution.
To verify text and headings on the web page are properly aligned.
To verify all the clickable links on the web page are readable and work as expected.
To verify scrolling of the web page works as expected.
To verify if there are input boxes and text areas to enter data then we need to make
sure that the text entered is displayed properly on the web page and they are
aligned as expected.
To verify image size, Font size and font type are consistent across all the web pages.
To verify if contents of the page are displayed consistent on all resolutions.
To verify the color changes after hover over the elements.
To verify the consistency of color combination on different resolutions.
To verify images, text, different controls are not going beyond the screen border.
To verify if there should not be any horizontal scrolling bar since everything should
be fit according to the size of the screen.
To verify on rotating your mobile device, all the contents should be rotated and
displayed as expected without any technical glitch.
To verify if the user able to click on clickable area.
To verify padding of elements on the edges.
To verify if enter text in input box are displayed as expected without any UI glitches.
Launch the URL on medium screen like tablet:
Launch the URL on small screen like mobile:
Example #2: www.flipkart.com
Launch the URL on medium screen like tablet:
Launch the URL on small screen like mobile:
Checkout on loading Flipkart website on mobile showing Filpkart Lite version.
These were some of the key points to remember. You should know the break-point of
the web design, there are some websites with huge images and cannot be shrieked
after a certain extent. It is important to know the breakpoints and decide how it will
be shown on a smaller device. Sometimes, a picture tends to be hidden on the
smaller device due to its huge size depending on the different screen size options as
per display need. As simple is that, your website should look good and it should not
break the website layouts when the viewport size is changed when that website is
viewed on different devices.
Conclusion:
In this article, we have discussed the number of ways to test RWD (Responsive Web
Design). At the same time it also depends on the kind of website that you are testing
and what are the permissible data that you want to show on the website which may
not be appropriate to show on a small screen devices due to their viewport size
limitations. Therefore, the responsive website should be the one that should give the
website the best look and feel across all variable screen sized devices.
What is the difference in Desktop, Client Server and
Web Application Testing:
Desktop Application
Client Server Application Testing Web Application Testing
Testing
Client Server Application: These applications are 2 –tier developed in LAN usually. They
have a front end in form of forms and reports. The front end would allow the user to
manipulate and fetch data. These applications are developed in C#, VB, Core Java etc and
would user Database like MySQL, Oracle, Sybase.
Web Application: These applications 3 –tier usually developed in Internet. These have a
browser, a web server and a database. These applications are generally built in HTML,
Javascript, XML etc and the web server is generally built in Java, ASP, JavaScript, VBScript,
PHP. The Database servers would be oracle, sql server, mysql etc.
Te
st
ca Steps to Actual
se Prior Precondit be Expected result Pass/ Comme
id Test cases ity ions Input test data executed results s fail nts
1)Enter
input(corr
ect )usern
ame and (note
password down
on the the
respectiv results
Test if user User must e fields User must you
is able to be correct 2)click successfully have
login registered username,correc submit/lo login to the observ
1 successfully. A already t password gin web page ed)
1)Enter
input(inco
rrect )use
rname
and (note
password down
on the Proper error the
Test if respectiv must be results
unregistered e fields displayed and you
users is not incorrect 2)click prompt to have
able to login username,incorr submit/lo enter login observ
2 to the site A ect password gin again ed)
1)enter
the valid
username
Test with in the (note
valid user id down
username and enter Proper error the
and empty no must be results
password User must password displayed and you
such that be valid username in the prompt to have
login must registered and empty password enter login observ
3 get failed B already password field again ed)
1)leave
the
username
empty in
the user
Test with id and (note
empty enter a down
username valid Proper error the
and valid user's must be results
password password displayed and you
such that registered empty username in the prompt to have
login must user's and valid password enter login observ
4 get failed B password password field again ed)
Test with 1)Enter Proper error
5 empty A - - nothing in must be
the mail
id and
username password
and empty field displayed and
password 2)click prompt to
and check if submit enter login
login fails button again
The password
Check of the field should
password is display the
masked on 1) Enter characters in
the screen the asterisks or
i.e., some password bullets such
password password(can field with that the
must be in be a some password is
bullets or registered/unregi character not visible on
6 asterisks B stered) s the screen
1)Enter
registered the case
user's changed
password username
which is /passwor
originally d in the
Check if the in lower respectiv
login case e field Login must
function changed and fail saying
handles to upper case changed 2)click incorrect
case case or username login username/pas
7 sensitivity B vice versa /password button sword
1)Enter
username
and
password
in the
respectiv
After logging e fields.
in try to Copy the
copy/cut the password
password field's
and paste it content(w
on another hich is in
screen(pass *s) password
words are 3)paste shouldn’t get
usually in * the pasted /
such that its content password
not visible Registered on should not be
on the user's login id another visible on the
8 screen) B and password screen screen
9 Verify B Registered 1)Try to Account
account lock user's login id login with should be
and incorrect a locked and
password registered access should
user be granted
name and only after
incorrect
password gettting
for more certain
than 3 assurance
times from the user
1)Login
with
registered
username
and
password
2)once
your are User shouldn’t
Check if on logged in, be signed in
selecting sign out to his account
back button of the site rather a
(after 3)now general
logging out) Registered press webpage
if the user is username and back must be
10 not signed in B password button visible
1) Login
to the site
using
registered
username
and
password
2)copy
and save
the url of
the
logged in
page
3)logout the url should
of the site not redirect to
4)now a logged in
Verify the url paste the page but to a
without Registered copied url logged out
logging into username and on the page of the
11 to the site B password browser site
1) Login
to the site
using
registered
username
Automatic and
logout of the password
site when User must 2)now
pressing be Registered press User must
backspace registered username and backspac logout of the
12 button B already password e site properly
Mobile Testing: Complete Guide to Test your
Mobile Apps
Some or all of the following Testing types may be performed depending on your mobile
testing requirements
Functional testing
Performance testing
Security testing
Usability testing
Compatibility testing
Recoverability Testing
Functional testing:
The functional testing of Mobiles normally consists in the areas of testing user interactions as
well as testing the transactions. The various factors which are relevant in functional testing
are
1. Type of application based upon the business functionality usages (banking, gaming,
social or business)
2. Target audience type (consumer, enterprise, education)
3. Distribution channel which is used to spread the application (e.g. Apple App Store,
Google play, direct distribution)
The most fundamental test scenarios in the functional testing can be considered as :
1. To validate whether all the required mandatory fields are working as required.
2. To validate that the mandatory fields are displayed in the screen in a distinctive way
than the non-mandatory fields.
3. To validate whether the application works as per as requirement whenever the
application starts/stops.
4. To validate whether the application goes into minimized mode whenever there is an
incoming phone call. In order to validate the same we need to use a second phone, to
call the device.
5. To validate whether the phone is able to store, process and receive SMS whenever the
app is running. In order to validate the same we need to use a second phone to send
sms to the device which is being tested and where the application under test is
currently running.
6. To validate that the device is able to perform required multitasking requirements
whenever it is necessary to do so.
7. To validate that the application allows necessary social network options such as
sharing, posting and navigation etc.
8. To validate that the application supports any payment gateway transaction such as
Visa, Mastercard, Paypal etc as required by the application.
9. To validate that the page scrolling scenarios are being enabled in the application as
necessary.
10. To validate that the navigation between relevant modules in the application are as per
the requirement.
11. To validate that the truncation errors are absolutely to an affordable limit.
12. To validate that the user receives an appropriate error message like “Network error.
Please try after some time” whenever there is any network error.
13. To validate that the installed application enables other applications to perform
satisfactorily, and it does not eat into the memory of the other applications.
14. To validate that the application resumes at the last operation in case of a hard reboot
or system crash.
15. To validate whether the installation of the application can be done smoothly provided
the user has the necessary resources and it does not lead to any significant errors.
16. To validate that the application performs auto start facility according to the
requirements.
17. To validate whether the application performs according to the requirement in all
versions of Mobile that is 2g, 3g and 4g.
18. To perform regression testing to uncover new software bugs in existing areas of a
system after changes have been made to them. Also rerun previously performed tests
to determine that the program behavior has not changed due to the changes.
19. To validate whether the application provides an available user guide for those who are
not familiar to the app
Performance testing:
This type of testing’s fundamental objective is to ensure that the application performs
acceptably under certain performance requirements such as access by a huge number of users
or the removal of a key infrastructure part like a database server.
The general test scenarios for performance testing in a Mobile application are:
1. To determine whether the application performs as per the requirement under different
load conditions.
2. To determine whether the current network coverage is able to support the application
at peak, average and minimum user levels.
3. To determine whether the existing client-server configuration setup provides the
required optimum performance level.
4. To identify the various application and infrastructure bottlenecks which prevent the
application to perform at the required acceptability levels.
5. To validate whether the response time of the application is as per as the requirements.
6. To evaluate product and/or hardware to determine if it can handle projected load
volumes.
7. To evaluate whether the battery life can support the application to perform under
projected load volumes.
8. To validate application performance when network is changed to WIFI from 2G/3G
or vice versa.
9. To validate each of the required the CPU cycle is optimization
10. To validate that the battery consumption, memory leaks, resources like GPS, Camera
performance is well within required guidelines.
11. To validate the application longevity whenever the user load is rigorous.
12. To validate the network performance while moving around with the device.
13. To validate the application performance when only intermittent phases of connectivity
is required.
Security testing:
The fundamental objective of security testing is to ensure that the application’s data and
networking security requirements are met as per guidelines.
The following are the most crucial areas for checking the security of Mobile applications.
1. To validate that the application is able to withstand any brute force attack which is an
automated process of trial and error used to guess a person’s username, password or
credit-card number.
2. To validate whether an application is not permitting an attacker to access sensitive
content or functionality without proper authentication.
3. To validate that the application has a strong password protection system and it does
not permit an attacker to obtain, change or recover another user’s password.
4. To validate that the application does not suffer from insufficient session expiration.
5. To identify the dynamic dependencies and take measures to prevent any attacker for
accessing these vulnerabilities.
6. To prevent from SQL injection related attacks.
7. To identify and recover from any unmanaged code scenarios.
8. To ensure whether the certificates are validated, does the application implement
Certificate Pinning or not.
9. To protect the application and the network from the denial of service attacks.
10. To analyze the data storage and data validation requirements.
11. To enable the session management for preventing unauthorized users to access
unsolicited information.
12. To check if any cryptography code is broken and ensure that it is repaired.
13. To validate whether the business logic implementation is secured and not vulnerable
to any attack from outside.
14. To analyze file system interactions, determine any vulnerability and correct these
problems.
15. To validate the protocol handlers for example trying to reconfigure the default landing
page for the application using a malicious iframe.
16. To protect against malicious client side injections.
17. To protect against malicious runtime injections.
18. To investigate file caching and prevent any malicious possibilities from the same.
19. To prevent from insecure data storage in the keyboard cache of the applications.
20. To investigate cookies and preventing any malicious deeds from the cookies.
21. To provide regular audits for data protection analysis.
22. Investigate custom created files and preventing any malicious deeds from the custom
created files.
23. To prevent from buffer overflows and memory corruption cases.
24. To analyze different data streams and preventing any vulnerabilities from these.
Usability testing:
The usability testing process of the Mobile application is performed to have a quick and easy
step application with less functionality than a slow and difficult application with many
features. The main objective is to ensure that we end up having an easy-to-use, intuitive and
similar to industry-accepted interfaces which are widely used.
1. To ensure that the buttons should have the required size and be suitable to big fingers.
2. To ensure that the buttons are placed in the same section of the screen to avoid
confusion to the end users.
3. To ensure that the icons are natural and consistent with the application.
4. To ensure that the buttons, which have the same function should also have the same
color.
5. To ensure that the validation for the tapping zoom-in and zoom-out facilities should
be enabled.
6. To ensure that the keyboard input can be minimized in an appropriate manner.
7. To ensure that the application provides a method for going back or undoing an action,
on touching the wrong item, within an acceptable duration.
8. To ensure that the contextual menus are not overloaded because it has to be used
quickly.
9. To ensure that the text is kept simple and clear to be visible to the users.
10. To ensure that the short sentences and paragraphs are readable to the end users.
11. To ensure that the font size is big enough to be readable and not too big or too small.
12. To validate the application prompts the user whenever the user starts downloading a
large amount of data which may be not conducive for the application performance.
13. To validate that the closing of the application is performed from different states and
verify if it re-opens in the same state.
14. To ensure that all strings are converted into appropriate languages whenever a
language translation facility is available.
15. To ensure that the application items are always synchronized according to the user
actions.
16. To ensure that the end user is provided with a user manual which helps the end user to
understand and operate the application who may be not familiar with the application’s
proceedings
Usability testing is normally performed by manual users since only human beings can
understand the sensibility and comfort ability of the other users.
Compatibility testing:
Compatibility testing on mobile devices is performed to ensure that since mobile devices
have different size, resolution, screen, version and hardware so the application should be
tested across all the devices to ensure that the application works as desired.
The following are the most prominent areas for compatibility testing.
1. To validate that the user Interface of the application is as per the screen size of the
device, no text/control is partially invisible or inaccessible.
2. To ensure that the text is readable for all users for the application.
3. To ensure that the call/alarm functionality is enabled whenever the application is
running. The application is minimized or suspended on the event of a call and then
whenever the call stops the application is resumed.
Recoverability Testing
1. Crash recovery and transaction interruptions
2. Validation of the effective application recovery situation post unexpected
interruption/crash scenarios.
3. Verification of how the application handles a transaction during a power failure (i.e.
Battery dies or a sudden manual shutdown of the device)
4. The validation of the process where the connection is suspended, the system needs to
re-establish for recovering the data directly affected by the suspended connection.
Emulators: Emulator is a software program that allows your mobile to imitate the features
of another computer or mobile software you want them to imitate by installing them to your
computer or Mobile.
Difference between the emulator and
simulator based testing:
Both Emulators and Simulators are virtual devices. A virtual device is not the real phone but
software which gives same functionality as the real phone (except few functionality like the
camera).
But there are some differences between an Emulator and Simulator describe as below –
Simulator's objective is to simulate the internal state of The emulator aims at emulating or mimicking as clos
an object as close as possible to the internal state of an as possible the outer behavior of an object
object.
Simulators are preferable whenever the testing team Emulators are preferable whenever the testing team
needs to test the mobile's external behavior like needs to test the mobile's internal behavior like its
calculating, making transactions and so forth. internal hardware, firmware and so forth.
Simulators are written in high level languages. Emulators are written in machine-level assembly
languages.
The simulators can be difficult in terms of debugging Emulators are more suitable when it comes to
purpose. debugging purpose
A simulator is just a partial re-implementation of the Often an emulator comes as a complete re-
original software . implementation of the original software .
Situation-based There are specific situations where the The real device allows the testers to test
application deadline to produce text execution results almost all the real time scenarios which can
are short and purchasing the required be tested for the mobile applications. These
mobile devices may be not possible. devices are operated using fingers and
Thereby it might be necessary to use the simulate real-life usage. They also help in
emulator/simulator in these circumstances situation Real context: is it easy to use the ap
for testing the relevant mobile applications on the train, or while walking down the
which need to be tested. street? The situation about in bright sunlight
or in the rain?
Feeling of The wide gamut of mobile devices creates The real device allows the testers to test even
closeness the problems, whereby the testers are not usability issues like the look and feel of the
towards the real confident about which mobile devices to application, color resolution of the screen,
handheld devices invest in for testing, considering the budget whether the picture is bright or not under bot
constraints. Emulator/simulator (s) is tailor day and night conditions and so on.
made for this type of situation(s).
Ease of Emulator/simulator(s) are in most cases The real devices allow stringent performance
availability open and free software which can be very testing issues like working with a real time
easily downloaded from Internet and ready transport application for 15 hours
to be tested for. continuously which cannot be successfully
simulated by the emulators.
Ease of opening It is easier to do web application testing Testing on real devices provides more in
an Web when it comes to opening the web terms of reliability.
application application. The user just needs to copy and
through URL paste the application URL.
Capturing Capturing issue of screenshots over Testing with real world devices is very
screenshots of simulator is very easy with the simulator helpful in terms of interoperability testing.
the situations since we just need to use Microsoft office
where defects facilities.
appear
Simulation of The emulator/simulators are not able to Real world devices can easily perform the
validation of simulate the battery issues. same.
battery scenarios
Validation of The emulator/simulators are not able to Real world devices can easily simulates
incoming simulate the incoming interrupts for SMS as incoming interrupts.
interrupts well as the incoming calls.
Validation of The emulator/simulator is not able to Real world devices can easily simulates the
exact color properly emulate/simulate the exact color exact color displays.
displays display of the devices when the real device
is in sunlight or in black.
Validation of the The performance of the emulator/simulator The original devices tend to perform faster
performance tends to be slower than the original devices than the emulator or the simulators.
at times.
Simulating The memory available at the The memory storage level of the devices tend
memory related emulator/simulator tends to be far more to be far less than the emulators thus it may
issues than the real devices so this may create
misconception for the users who would be
using the same validations.
Disadvantages of Simulators and Real device
Emulators/ Simulators Real Device
The emulator/simulator is not always the best type of The real devices are costly compared to the
solution for scenarios such as the ones whereby the emulator/simulators. Thereby projects under budget an
testing team needs to validate the performance of the timeline constraints may risk profitability as well as th
application for a longer period of time. viability of the overall project.
The emulator/simulator is suitable mostly for certain There is a very wide variety of mobile devices from
types of functional test case executions. apple to Samsung to android and to Symbian and so on
Considering this wide range of mobile devices it is ver
hard for the testing team to arrange all sorts of mobile
devices while working under considerable amount of
budget and timeline related constraints.
The emulator/simulator can some time not be Real Mobile devices when used in the developing stag
supportive of certain types of application and in these for unit testing and similar purposes could turn out to
cases the testing team may need to purchase software be harder to connect to the IDE than the emulators and
patches which may not always be free but could be this causes tremendous problems for debugging and in
costly at times. a project with timeline constraints this may very well
hamper the overall conclusion of the project.
Not all the emulator/simulator supports the complete In order to test with the real world devices, the devices
gamut of mobile applications. For example the bada need to be always connected to the USB port of the
simulator supports the Maemo (such as Nokia N900), machines. So if the USB ports are not working
Symbian Touch (such as Nokia N8) and Symbian properly, the testing would not be possible. Without
non-touch (such as Nokia E71) but it does not support providing adequate security measures mobile devices
other mobile devices like Android. As per as the (if they happen to be costly like the apple Iphone) may
application testing functionalities are concerned, bada be lost or stolen thus hampering the overall effort.
does not support direct web browsing testing but it Increasing security may also go on to increase the
allows the user to test and create only webapps and overall expenditure involved with the project.
widgets.
Conclusion
Considering the significant role the mobile applications plays, nowadays, in our day to day
life, testing of these applications are going to evolve and thus they require a lot of testing to
make them work as required.Testing in both the simulator/emulator as well as the real world
devices is necessary to maintain strong standards and quality assurance.
Careful deliberation of both the pros and cons of mobile emulators and real devices, it would
be worthwhile to reach at the conclusion that the optimal mobile testing solution for
enterprises is neither putting all the eggs into the basket of the real devices nor putting them
into the emulator but rather what we need is an optimum combination of both.
Emulators can be considered as very suitable for the initial stages of application
development.
Each organization needs to strategize and plan carefully to determine at what stage to
introduce real devices, they also need to decide how many devices are sufficient to cover
market needs, and what could be the best possible option to adopt for managing those
devices.
Best practices would indicate that actual development should use emulators (and a few
reference real handsets) in order to speed up the debugging of the application during the
coding phase, while sanity, smoke testing, performance, interoperability and network
feasibility and regression testing should be done on real handsets.
It is also an emerging practice to ensure that the developers use the emulator for fast
execution during the development phase whereas then the testing team should test with the
real device during the testing phase in order to ensure overall quality assurance goals and
targets.To save on cost, they can consider using Virtual Mobile Testing tools. These services
offer developer to test their application on wide variety of handsets using different mobile
networks geographically located throughout the world (useful for applications using GPS).
Such services are offered on hourly basis and are very cost effective compared to buying new
phones.
Mobile App Performance Testing: Strategy,
CheckList, Tools
For any mobile app, performance is very critical. If your Mobile App does not perform well,
the end user will uninstall your app find another application that performs better.
Your Mobile application needs to be tested thoroughly before releasing it to end user.
Device Performance
Server/API Performance
Network Performance
Device Performance
When the client experiences slow app, they get annoyed.
App Start Up
How much time your app takes to start up? It is the first performance parameter
adjudged by the user. As a thumb rule, after the user taps on app icon the first screen
should be shown in 1-2 seconds.
On constant use, some mobile apps, consume a high amount of battery life and heat
the phone. This factor adds a lot to the performance of any mobile app and could
normally happen when your app is using more resources than required. Excessive
resource usage creates a burden on the processor and phone gets heat up.
Memory Consumption
In some cases, it has been observed that memory usage by whole O.S is mere 14%,
but a new app is consuming 11%. So, these factors must be handled before deploying
the app to the real world or giving to the client.
Hardware/Software Variation
When the app under test is running in parallel with other apps, there should be no
interference. The best way to check it is by switching app under testing and other
apps.
App in background
An app that is running in the background is retrieved, it should remain in the same
state as it was before. If this scenario is not handled properly, then data get lost. Again
you have to enter data from scratch upon retrieving the app.
Server/API Performance
When the app is interacting with the server via API, the response time becomes critical to
performance. For Server performance, you will check -
The app should handle data efficiently that is sent from the server. It must not take too
much time while loading data. In certain apps, data is sent in a specified format. So
before displaying it in the app, it should be converted to a relevant format. In this
process, apps sometimes become slower and response time becomes longer.
The number of calls from App under test to the server generated from app should be
less. In some cases, multiple API calls are made for the same functionality. For better
performance, this should be handled with less number of calls.
Due to any reason if the server is down or unreachable we can save data in the native
database. So, whenever the server is down, we can show data stored in the native
database. Another solution could be the failover database servers i.e. if one of the
servers is down or in maintenance phase the backup server should be available to
switch over. The failover/backup server should be in continuous replication and
synchronization with the main server.
Network Performance
The performance of the app on different networks and network properties need to be
measured.
Jitters
You need to Show the appropriate notifications to the end user, either to resend the
request or wait till the system responds again.
Packet Loss
In the case of complete packet loss, the app should be able to resend the request for
the information or should generate the alerts accordingly. If data is not complete, then
the user will not be able to comprehend information displayed in App. This can be
stressful for the user. So, it is better to display a suitable message or prompt user to
try again.
Network Speed
The app needs to be checked on a variety of networks with variable speed. The app
should be tested on 2.5G, 3G, and 4G networks. Both Wi-Fi and mobile networks are
included in this. Also, the behavior of app should be monitored. Especially, when
both networks are available, and switching occurred from one network to another.
For example, an issue may arise in an app for the users while switching phone
network from 4G to WIFI and vice versa. In this case, the app becomes unresponsive
and may require restarting the app for use.
You need to kill unnecessary processes or clear the cache. Troubleshooting the connectivity
issue may solve some of the problems that are creating lags
ANDROID
Robotium
It is just like Selenium for Mobile Apps. The tester can record and play several steps
that are required to perform testing.
Monkey Runner
MonkeyRunner can run tests on real devices connected to a PC or emulators. The tool
has an API, which allows controlling a smartphone, a tablet or an emulator from
outside of Android code.
APPLE
Automator (Mac)
Automator is an application developed by Apple for OS X. It implements point-and-
click (or drag and drop) creation of workflows for automating repetitive tasks into
batches for quicker alteration. This saves time and effort over human intervention to
manually change each file separately.
Challenges
Key challenges faced while performance testing include