Skip to main content

Quality Assurance for mobile applications

[PLACEHOLDER]
By: Herak

Quality Assurance is an important aspect of Software Development Cycle and it has become even more important with the advent of mobile applications. This is because mobile applications are typically more complex and needs to be supported across a plethora of platforms. Often the same application needs to be coded in different programming languages to support different platforms for example Objective C for iOS and Java for Android. This results in multiple code base and requires multiple streams of testing. QA also need to pay special attention to ensure that the user experience of the app remains somewhat similar across the multiple environments. Thus traditional QA practices need to evolve to adapt to the needs of the mobile app testing.

In this article I am going to discuss the first two phases of QA, Preparatory Phase and Testing Phase. I will discuss how QA needs to adapt to the testing need of mobile applications and include links to resources which will help with the QA process.

Preparatory Phase

The Preparatory Phase is the phase when you prepare all the documentation and environments for the testing. This is the phase to ask questions about the business requirements and outline test plan and test cases.
There are three key steps in the Preparatory Phase phase

  1. Identify the target devices
  2. Create test plan and test cases
  3. Setup the test environments and devices

1. Identify the target devices

There are multiple devices in the market such as iPhone, Android, Blackberry, Windows Mobile, etc and each of these devices support number of versions of the operating system for instance iPhone supports iOS 3 to iOS 7 whereas Android supports 1.5 to 4.3. So it’s important to identify which device and operating system combination the application will support.

Make sure you have the answers to the following questions in the Business Requirement Document (BRD):
- Which devices are we supporting?
- Are we supporting tablets and smartphones?
- Which version of the operating systems are we supporting?
- Will the app have any functionality that may disabled in older versions?

The last two questions could be driven by the features of the application. For instance if the application uses any of the features in the latest iOS e.g. iOS 7 then the application needs to support the latest iOS. Then the question arises if the application should support any of the older iOS in a limited capacity i.e. with some of the new features disabled. QA should work with the Business Analyst or the Product Analyst to determine the target devices. The decision will also depend on the time allocated for QA and the application release date. This is important as there is a plethora of devices and operating systems combination out in the market.

Another key factor to take into account is the market share of these devices and operating system and the target geography. Visit the following link to StatCounter website to find the real time stat http://gs.statcounter.com/ 


2. Create test plan and test cases

Use the answers to the questions in Step 1 to create a matrix to document the target device and operating system combination in the test plan. Then prepare the test cases taking all the information you gathered in Step 1 into account. The test cases for mobile application testing needs to be more high level as the tasks within a mobile app is typically very simple and can be executed with a few simple clicks.

3. Setup the test environments and devices

Install the necessary software development kit (sdk) such as Xcode for iPhone, Android SDK for android, etc.

Typically all these sdk comes with a simulator that can be used for testing.

Also resource the main target devices for the final round of testing. Even though majority of the testing can be done on the simulator it is still advisable to test the app on the key target devices every now and then to ensure the usability is consistent between the simulator and the app.

Testing Phase

Once the build is ready use the respective sdk to run the application on a simulator. Make sure there are no compile errors and if there are warnings go through them to make sure they are not anything significant.

Once the build is in a reasonably good shape deploy the build to the device. Follow the necessary process to deploy the build to the device. Go through the resources below to find more information about deploying the build to devices.

Steps to deploy app to iPhone:
http://www.edumobile.org/iphone/iphone-programming-tutorials/submitting-iphone-apps-to-the-apple-app-store-a-step-by-step-guide/

http://support.brightcove.com/en/app-cloud/docs/step-step-guide-publishing-apple-app-store-using-windows

Steps to deploy app to Android device:

http://docs.xamarin.com/guides/android/deployment%2C_testing%2C_and_metrics/set_up_for_device_development

http://developer.android.com/tools/device.html

Steps to deploy app to Windows device:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402565(v=vs.105).aspx

Steps to deploy app to BlackBerry:
http://developer.blackberry.com/native/documentation/cascades/getting_started/tools/index.html

https://developer.blackberry.com/html5/documentation/running_your_app_on_a_device.html

Also pay special attention to the following when testing the app across the supported devices:

Apple iOS testing

- Make sure your app abides by the apple store review guidelines to avoid rejection. Here is the link to the review guidelines - https://developer.apple.com/appstore/resources/approval/guidelines.html




- Assure your app abides by the iOS Data Storage Guidelines
https://developer.apple.com/icloud/documentation/data-storage/

- Assure you app follows the Guidelines for using Apple Trademarks and Copyrights
http://www.apple.com/legal/intellectual-property/guidelinesfor3rdparties.html

Android testing

- Assure the android app follows the Android App Guidelines
http://developer.android.com/distribute/googleplay/quality/core.html

- Follow the Android Launch Checklist to deploy the app to the Google play
http://developer.android.com/distribute/googleplay/publish/preparing.html

- Assure the app abides by the Google Play Developer Program Policies
https://play.google.com/about/developer-content-policy.html

Blackberry testing

- Assure the app abides by the BlackBerry guidelines
https://developer.blackberry.com/design/bb10/

Windows mobile testing

- Assure the app follows the windows mobile guidelines otherwise the app will be removed from the windows app store
http://msdn.microsoft.com/en-us/library/bb158602.aspx

In conclusion mobile app testing provides more opportunity for QA to flex its muscle and to play a more vital role in the software development cycle. At the same time QA needs to be more careful and assure the app abides by the guidelines of the respective supported environments in order to avoid rejection. I’ll discuss these guidelines in more details in my future post and will outline test cases based on these guidelines.    

Trending posts

Apple's App Tracking Transparency sealing Meta's fate

If you have been following the recent news on Meta (formerly Facebook) you may have read that Meta recently projected their ad revenue will be cut by a staggering $10 billion in 2022 due to Apple’s new App Tracking Transparency feature (also known as ATT). This has resulted in Meta’s stock to plummet by over 20%. Photo by julien Tromeur on Unsplash - modified by Beolle So what is Apple’s ATT and how does it impact ad revenue? Apple has been releasing multiple privacy features for the last few years. This included Apple’s Mail Privacy Protection and Apple’s App Tracking Transparency feature. You can learn more about Apple’s Mail Privacy Protection in our earlier post by clicking here .  Apple’s App Tracking Transparency (ATT) was launched in iOS 14.5 and iPadOS 14.5 where it prompted users to select if they wanted the app to track their activities across other apps on the device. The prompt is displayed when the user opens an app like Facebook or Instagram for the first time o...

Assembling MLOps practice - part 2

 Part I of this series, published in May, discussed the definition of MLOps and outlined the requirements for implementing this practice within an organisation. It also addressed some of the roles necessary within the team to support MLOps. Lego Alike data assembly - Generated with Gemini   This time, we move forward by exploring part of the technical stack that could be an option for implementing MLOps.  Before proceeding, below is a CTA to the first part of the article for reference. Assembling an MLOps Practice - Part 1 ML components are key parts of the ecosystem, supporting the solutions provided to clients. As a result, DevOps and MLOps have become part of the "secret sauce" for success... Take me there Components of your MLOps stack. The MLOps stack optimises the machine learning life-cycle by fostering collaboration across teams, delivering continuous integration and depl...

AGILE For DIGITAL AGENCIES

Introduction Some Digital agencies have a project process where waterfalls still plays a big part of it, and as far as I can tell, the tech team is usually the one suffering as they are at the last part of the chain left with limited budget and time for execution. I do believe that adopting an Agile approach could make a Digital Agency better and faster. In this article I’m presenting you just another point of view of why it make sense looking at Agile Methodology.  Why Agile for a Digital Agency? The Agile movement started in the software development industry, but it has being proven to be useful in others as well. It becomes handy for the type of business that has changing priorities, changing requirements and flexible deliverables. In the Digital Agency of today you need a different mindset. Creative will always play a huge role (“the bread and butter”). But the “big guys” need to understand that without technology there is no Digital Agency. Technical resources ...

SLA-SLO-SLI and DevOps metrics

Companies are in need of the metrics that will allow them to stay in business by making sure they meet the expectations of their customers. The name of the game is higher customer satisfaction by winning their trust and loyalty. To do so, you want to provide good products and services. Therefore you need to find ways to monitor performance, drive continuous improvements and deliver the quality expected by the consumer in this highly competitive market. Photos from AlphaTradeZone via Pexel and Spacejoy via Unsplash SLAs, SLOs and SLIs are a good way to achieve the above. They allow clients and vendors to be on the same page when it comes to expected system performance. If we go one level deeper, vendors/providers work on NFRs (Non-Functional Requirements) when working on their solutions. NFRs define the quality attributes of a system. I bring them up because the relationship between them and the SLAs is that they provide, in a way, foundational aspects for the SLA-SLO-SL...

This blog uses cookies to improve your browsing experience. Simple analytics might be in place for pageviews purposes. They are harmless and never personally identify you.

Agreed