Mobile_Testing_Scenarios
Mobile_Testing_Scenarios
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:
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.