Thursday, July 10, 2014

Managing a Mobile Application Testing Project

Foreward:


There is a huge discrimination between Managing a traditional/regular web testing project and Managing a Mobile Application Testing Project. The group of challenges is/are unique to the mobile testing world, and is/are quite different from traditional desktop or web delivery testing models.

Today the number of mobile devices, mobile operating systems, firmware updates, and other possible customizations create an impossibly large set of testing permutations, which comprises of a large diverse range. With all of these testing permutations, the cost and complexity of managing QA and testing in the mobile world is a very large challenge for many organizations.


The phenomenal growth of mobile devices has opened up avenues for a lot of app development & a consequent need for testing the same. In fact in certain write-ups & discussions the term apps-economy has also come up.

Upcoming mobile apps deliver complex functionality on platforms that at times have limited resources for computing, though that constraint is being overcome for many smartphone platforms.

Also, unlike the PC, the mobile environment comprises a variety of devices with diverse hardware and software configurations, device capabilities and communication intricacies. This variety presents unique challenges in development, quality assurance, and roll-out, requiring unique testing strategies.


I would like to share my views for managing a mobile application testing, which is complex and dynamic in nature, project based, on my knowledge and experience.


Pointers for managing a mobile testing project:

  1. Need and Scope of the mobile app
  2. Deciding the Mobile Testing Strategy
  3. Targeted platform and domain of the app
  4. Working out with ideal test plans
  5. Identifying the devices for the targeted platform
  6. Setting up the test environment and testing process
  7. Estimation of the testing efforts and device logistics
  8. In accordance to the changes of guidelines in App Store submission/approval
  9. Constant mobile technology evolutions
  10. Identifying risk - mitigations


Need and Scope of the mobile app

The need and scope of the mobile app gives a basic understanding of the viability, which initiates the actual thinking process and further planning.
The need of the mobile app gives an insight with regards to the core objective/purpose, which, when clear would aid in understanding the functionality of the app to a greater extent.

The scope of the mobile app gives an insight with regards to the clear scope of the app's functionality and the scope of the types of testing to be done.
Also based on the scope, the kind of test environment to be required to test and if any support for automation tools would be needed, can be derived at.



Deciding the mobile testing strategy

Deciding the ideal mobile testing strategy for the AUT plays a pivotal role. Based on the time estimates and domain of the app, the corresponding testing strategy should be chosen, to start with.

Specific considerations for deciding a test strategy based on the domain of the app needs to be taken care. Apart from traditional functional testing, Adhoc testing plays a major role. Adhoc testing for mobile app testing can be categorized into two types – adhoc testing on the app and adhoc testing as per device specific. Few things should be taken into consideration according to device specific functionalities.

There is a huge differentiation when testing a business app and when testing a social networking app and when testing a gaming app and when testing a finance domain app, the strategies vary accordingly.

The thinking with regards to strategy has to be made/developed in such a manner, that those strategies should be able to adjust to the diverse and dynamic mobile platform.

Novel strategies like testing within the company by different groups with regards to the usability of the app, similar to beta customer testing should be implemented. Testing the app in this manner gives the scope of user experience and usability issues.


Targeted platform and domain of the app

The domain of the app along with the targeted platform plays a pivotal role in managing the AUT. The targeted platform of the app gives the scope of the target users in the market which needs to be taken into consideration for the development/testing.

Every platform has its own share of users in the market and this has to be taken into consideration. Also the constant changes with regards to the corresponding platform is also accountable for the consideration. The huge complex diversity in mobile devices with regards to various features, screen resolutions, memory considerations needs to be taken into consideration.

Based on the domain of the app - Social Networking, Finance, Banking, Entertainment, Game, Health Care, Pharma etc., corresponding precautionary measures along with the security concerns has to be taken into consideration. For Social Networking and Entertainment type of apps utmost care to has to be taken with regards to UI and user-friendliness of the app; for Finance and Banking domains security of the app needs to be taken into consideration.

The test cases and types of testing may slightly vary based on the domain of the app.


Working with ideal test plans

Once the testing strategy and testing life cycle is chosen, need to focus on choosing the ideal test plan that suits the AUT.
The test plan should cover what to test, when to test, how to test and who to test. The list of devices along with OS needs to be listed under the targeted devices and the time schedules along with the release plan should be included in test plan.
The exact scope (In Scope and Out Scope) should be clearly documented and if the usage or need of any automation tools to be used.


Identifying the devices for the targeted platform

Based on the targeted platform of the app, the corresponding supported devices needs to be identified so as to make sure that the app is tested across a wider range of supported devices.

The devices needs to identified based on
  • multiple OS versions
  • target users of app and domain specific
  • locale considerations wrt usage of app
  • app store/OEM statistics wrt to usage of apps
  • nature of device or input type – touch, semi touch, standard, smart phone
  • various Screen resolutions
  • various technologies – pinch, zoom
  • various OEMs
  • network connectivity type
  • in built hardware features/components
  • devices with optimal hardware resources

by taking all the above considerations, the devices needs to identified and make sure almost all the devices are covered under testing for the corresponding platform.

For iOS platform, the device matrix is minimal, but for Android the scope is a bit huge, and with the constant launch of new OEMs into market, the device matrix becomes more complicated.

As its practically not feasible to test on all physical devices, simulators and automation tools which provide devices on cloud should be taken into consideration.



Setting up test environment and testing process

The test environment and accordingly the test process has to be set up once all the above mentioned factors are in place. The set up may vary slightly according to the domain and platform of the app and also varies if the app is of stand alone app or client-server based app.
The whole process involves the following:

  • Setting up OTA process or Server
  • If the application is client server based, then access to the server etc
  • If the app is having scope of Database testing, then a separate test database environment
  • If automation is required, then we should decide the better framework to use along with the tool
  • Build delivery process should be defined
  • Bug reporting process
  • Summary reports for each Sprint.
  • Defect Metrics
  • Support for simulators
  • Different types of devices – mobile, tablet,
  • Compatibility considerations


Estimation of the testing efforts and device logistics

Estimation of the testing efforts and device logistics is a huge task to the management team. The team has to make sure that the AUT has to be tested over a broad and wide variety range of devices in the market to make sure that the app supports all the OS versions along with the features.

Its not possibly feasible to test the app on all the available and supported physical devices. The team has to come up with a device matrix and make sure the matrix covers the overall variety and range of supported OS versions and features.

And also new devices along with new OS versions and features keep on launching frequent which makes the task more cumbersome.

The management has to keep this in view and go for the estimation of device logistics and invariably testing efforts, as both are interdependent. As mentioned above, its not possible feasible to test on all physical devices, so need to look out for simulators, few tools which provide device simulators like Nokia RDA, Samsung etc..

The mobile market owing to its dynamic characteristics is extremely volatile. Based on the value of the business, there has to be a great thinking for the significant budget, if not this may lead to issues in ROI.


Changes of guidelines in App Store submission

Each App Store has its own set of guidelines for a certain app to be submitted in its corresponding app stores, which are generic and independent of functionality of the app.

The guidelines of App Stores keep on changing over the period of time in adherence to the security impact or market trends and the team has to be aware of the constant and frequent changes. If the team is not aware of the changes in guidelines, chances of rejecting the app for a silly reason may be high.


Constant mobile technology evolutions

Mobile technology is drastically and constantly changing with the evolution of new technology changes. Frequent and constant changes with regards to new OS versions, new features and new technology keep on developing the mobile market industry. New OEMs keep on evolving, almost everyone aiming at unique and special features to stand apart in the market and to create a niche for their own branding.

The team has to be aware of the constant mobile technology evolutions and make sure they ramp up to the new challenges in the technology and at the same time making sure the AUT supports the features to a greater extent.

Its not feasible to keep updated with the constant on-going technologies, but needs to be done on a periodical basis and make a note of the changes and update the skill set to match the same.


Identifying risk – mitigations
  • Supporting new os version – example iOS 8 beta version (at present)
  • Supporting new and emerging technologies
  • Schedule slippages
  • Unavailability of devices
  • Network outage issues

Tuesday, September 6, 2011

Managing a Mobile VAS Project


Abstract:

Since a decade, the Indian mobile market has been growing tremendously and drastically. Subscribers are increasing at an unprecedented pace and which all the telecom operators are trying to capitalize on their corresponding subscribers.

A value-added service (VAS) is popular as a telecommunications industry term for non-core services, or in short, all services beyond standard voice calls and fax transmissions. (As per Wikipedia).  

VAS mainly consists of Voice, SMS and Data categories. The categories
  • Voice – deals with the services which need to be operated by voice – calling mode. This category of services can be activated / deactivated / used by voice mechanism.
  • SMS – deals with the services which need to be operated by SMS – by textual mode. This category of services can be activated / deactivated / used by textual mechanism.
  • Data – deals with the services which need to be operated by browsing – by surfing mode. This category of services can be activated / deactivated / used by surfing mechanism.

Examples of VAS can be Caller Tunes, Match Alerts, Stock Alerts, Horoscope Alerts, Mobile Radio, Competitions etc... VAS can be developed and provided either in-house by a mobile operator or by third-party value-added service providers, depending on the nature of the product/company. 

Mobile Value Added Services in recent times is becoming the huge source of revenues for all the operators in India. Mobile VAS is emerging as one of the areas that will provide huge opportunity for telecom operators to improve the top line. With the launch of 3G and broadband services around the year, industry experts foresee a substantial increase in the share of VAS revenues. 

Services such as music, ringtones and games that are known as VAS Entertainment are very popular and have contributed significantly to the growth of VAS in India. On the other hand, services such as news and information on bank accounts, real estate, education, etc. are known as VAS Info. A third category of customer service that is taking today is the VAS M-commerce allows customers to perform banking and payment, such as mobile phones. These services are in a very nascent stage in India now. 

I would like to share my minimal experiences and limited knowledge in managing and testing a Mobile VAS project.

  • Testing to be carried out  from multiple locations
As the scope of VAS services demands to be tested across multiple locations of a nation, this factor itself would be intimidating. The testing team has to be spread out nation (circles – which mean states) wide and the testing has to be carried out independently from each circle.  Managing and tracking the team from multiple circles would not be that easy. 
  • In-consistent behavior of network &Reproducibility of the issues
The network plays a pivotal role in VAS services and owing to its inconsistent behavior, it’s always hard to reproduce the issue. In these scenarios, we cannot take a screen shot/video which would support the issue. We need to completely depend on the network, which is inconsistent. You end up having no more options other than relying on the tester completely, which should not be the case ideally.
The issue which has been encountered during a specific point of time (or a day or more) may not be reproduced at the other time, owing to the inconsistent network behavior. And also the network varies from significantly from circle to circle.
Some of the services need GPRS connectivity for testing them, GPRS connectivity is consistently inconsistent and because of which there would always be a huge discrepancy in the actual testing results. There is a huge variation in the GPRS connectivity on a single day with in different time intervals and also varies from day to day (at times)
  • Requests not getting hit on the server owing to network
When activating/deactivating the VAS products, the request for the activation/deactivation would be sent to the server and then the response would be sent to the user accordingly. Sometimes owing to bad network connectivity, load on the server, more requests being sent from the same mobile number, the request does not hit the server.
In these sorts of scenarios, the user has no evidence to support the testing activity, which in turn would make the testing team helpless as there is no evidence.
  • Testing in local/regional languages
All the services support the option of using the service in national, international language along with the local/regional language.
Testing the services in local/regional languages would comprehensively give a confidence about the product rather than testing in national and international languages. But testing across all local languages would inadvisably pose an issue as finding the team as per local languages may not feasible.
For testing services with regards to location/regional, the tester has to be aware of the happenings/customs of that corresponding region for better understanding of the services.
  • Categorizing the defects
Categorization of defects which have been encountered after testing under the inconsistent conditions would really be a uphill task. If we categorize the defect as functional, the development team (corresponding team) would revert back saying that the functionality was fine, but was not working owing to network connectivity. And when we categorize the defect as network connectivity issue, the defect loses its weight, and cannot be considered as a defect.

Conclusion:
During my experience I have found that most of the people are not educated about the VAS services. The operators/product owners need to market their corresponding services, if not it’s like winking at a girl in the dark. So once the people are educated and aware of the ongoing services, they may show inclination towards the services, which would inadverantly increase the revenue of the operators.

Monday, December 6, 2010

Classification of Devices as per mobile platform(s)


As the number of devices is vast as per corresponding platforms, testing on all the available devices in the market would not feasible and so need to go for classification of devices.

Devices can be classified as per various features/specifications even on a particular platform:
  • Family wise devices
  • Screen Resolutions
  • OS versions
  • Nature of keypad
  • Nature of Device
 
Ø      By classifying the devices into various available families of devices, we would be able to generalize the compatibility of the app across multiple families of same platform of devices.

Ø      By classifying the devices into all the various screen resolutions of the platform, we would be able to be assured of the compatibility of the app across multiple screen resolutions in terms of UI and display which is the main and primary critical factor.

Ø      By classifying and identifying the devices of all the various OS versions of same platform, we can make sure that we are trying to cover all the supported and available devices of various OS versions.

Ø      By classifying and identifying the devices of various natures of keypads – as in Standard, QWERTY, Touch keypads, we can check for the keying in of the text in the app, as some apps pose issues with QWERTY and Touch keypads.

Ø      By classifying and identifying the devices of various natures of devices – as in Low end device, High end device, Smart device, Touch device, Touch/Qwerty, Slider etc.., we can make sure that we are trying to cover all the device models.

By grouping the devices as per the above specifications; we can select few devices which cater to all the specifications and can assure that the app would work fine for the remaining devices of the same specifications.

Monday, November 29, 2010

The Challenges faced when testing mobile apps

Testing a mobile app is very similar yet different from testing any web based application. At the heart of it, testing the two would follow the STLC yet scope/number of platforms on which the two are tested draws them apart. Normally, to test a web application, the scope of testing is confined to limited browsers; whereas while testing a mobile app, the scope is enormous and varies according to the platform the app supports. Categorizing this as a challenge that a Mobile App Tester faces, here are few more that I would like to share in the same context:

  • Testing the app on all the physical devices that it supports may not be feasible at all the times due to various constraints and has to be hence prioritized.
  • A strategic approach to testing mobile solutions takes into account a number of characteristics unique to the mobile platform and supported OS.
  • Ideally, the functionality of the app or the user experience is expected to remain consistent across multiple devices of similar/varying platforms. Hence compatibility of the app to these becomes critical, calling the need of the app to be tested across multiple devices/platforms the app supports.
  • And in some cases, there might be chance of inconsistency in terms of functionality across multiple devices of same platform.
  • Even though you are testing on same platform, there might be discrepancies across multiple OS versions of devices.
  • GPRS connectivity would be inconsistent and mostly very bad during the peak hours (mostly 6-10pm), which may lead to inconsistent results.
  • As we cannot test on all physical devices, sometimes we may end up testing on simulators, on which we cannot rely completely.
  • The increased and continuous launch of new devices into market

Inception


Mobile space, in contemporary times is at the center of corporate growth strategy irrespective of the industries, target customers or regions they are catering to. Emerging trends and rapidly changing rules of the game are keeping testers like me on our toes, pushing us to keep ourselves up breast with the latest trends and patterns. Through this blog, I intend to share my learning and my 2 cents to this immense and dynamic field which is equally exciting.

Also the frustration which has been creeping in me since few months has ignited towards writing the blog. I would like to thank all the people/circumstances/situations which made me frustrated, and with out this; I would not have been able to start writing.

And last, but not the least, I would like to thank Anurag Khode who has inspired me in writing this blog and Ashwin Maru, my technical editor & Rupal Der, who is the editor of the blog in regards to the language support.