Belatrix Mobile Testing Best Practicesv01
Belatrix Mobile Testing Best Practicesv01
Summary:
Software testing of mobile applications uses a lot of the same QA & Testing
practices typically used for other software applications. However, there are
important distinctions that can define how successful the mobile application is
ultimately. This whitepaper discusses some of best practices in developing and
performing Quality Assurance on Mobile Applications and outlines strategies for
addressing specific aspects of the testing process.
Introduction
The demand for mobility shows now signs of slowing fueled by both consumer
and enterprise appetites for mobile applications. That brings up not only the need
to create apps but to test them, and ensure that they run on an increasing array
of platforms and devices.
While many of the typical Software QA practices also apply to performing QA &
Testing on mobile applications, the reality is that mobile applications are quite
different in some critical ways. Mobile Applications therefore require some
special considerations.
Interface Testing
Validation of buttons, text inputs, labels, etc.
Validate each screen in a comprehensive manner (does it do what it is
supposed to do?)
Validate navigation flow (i.e. from the list of restaurants screen, can I
access bookmarks?)
What happens when you change
Usability
Is it easy to navigate between screens or does it require weird steps?
Does it show user redundant information or low value information?
Can it display text properly, in the language selected?
ALL (repeat, ALL) user interactions with the system should generate some
kind of feedback!
Clicks on buttons
Calls over the Internet
Any potentially slow operation: always assume the worst case!
Verification of the functionality OFFLINE / ONLINE. Does the user lose
information that is sent to a server while in a non-coverage area?
Performance
This is one of the most important factors to verify when developing Mobile apps.
Users will not accept apps that take too long to load or perform simple actions.
Load and performance testing is a must on Mobile testing. Here are some topics
to consider before writing the test plan:
What if the connection to a server is over 3G instead of WiFi? What about
2G?
What about when to send / receive much information from a Web
service?
Are the images used the "right" size?
Optimize: redundant code => CPU cycles => + battery consumption =>
unhappy users
Does the App comply with the response times required by users?
Are there memory leaks?
Are all resources being freed (GPS, camera)?
Do you have any tool for running Load tests? (There are several options
on the market that could help a lot).
Security
Services
The Mobile Apps should act as the client, not the server.
Validate what happens should a service goes down. If it returns
malformed responses, control errors, etc.
What if the service takes too long to respond?
What happens if you try to access a service offline?
What if I get disconnected during transmission of info?
Have we included API testing? This is very important since our app could
be using APIs and we should make sure that we know these APIs and the
way to interact with them. Sometimes the problem is not in the mobile
app!
Low-level resources
Operational
Are we "backing up" necessary information in the app?
Are we prepared for "shock" mode? If the battery dies, we need a
Recovery and Save Plan.
If you upgrade to a new version of the App on the corresponding
"Market", is data lost?
What if the user gets a call while using the app? What if there comes an
SMS?
Does the battery seem to go down dramatically with the use of our App?
Localization
The latest HTML5 and mobile web-based apps are optimized to adapt content
according to geography. This means your app can be accessed from everywhere in
the world, allowing it to work as expected.
Have you considered the following items while you developed your testing plan?
Date formats
Text direction (some languages are written from
right to left)
Languages with different set of characters
Address formats
Currency conversion
There are also several other things to keep in mind when writing your test scripts.
The key here is to always think that your app could be accessed by people all over
the world. The goal is to get it to work as if it were in your own country. A proxy
service could help on testing different localizations without being present on all
the countries. This is a cheap option to test localization. Consider taking
advantage of remote real devices as another low-cost option to test localization.
Functional Testing
Risk-Based Testing
Graphic User Interface
Acceptance, Usability and Accessibility
Performance (Stress and Load)
Regression
Installation and Configuration
Security
API Testing (N.Unit and MS-VSTester Edition)
Automation (Python, VBscript, Apodora,
Mercury QTP)
Smoke Test
Experience how a relationship with Belatrix can give your company a distinctive
advantage through high quality Agile software development and quality
assurance services. Contact us now!