Suyash Dubey | Posted on | 2 min Read

Today, there are many smartphone users in the world and so is the popularity of mobile apps. In order to be competent enough, mobile apps have to be unique and should provide the best user experience to increase the user base. With the users getting more informed and intelligent, the apps built should keep up with the pace. In order to be impeccable, the mobile app should undergo a rigorous testing process and during that process, the testing team faces many challenges in this aspect which will be covered in this blog. But before we dive in, let’s look at the different types of apps that are available in the market.

Types of mobile applications

The creation of mobile applications is a fantastic approach to boost brand recognition, attract new clients, and improve the user experience for existing customers. In light of this, let’s examine the three primary categories of mobile apps: native, web, and hybrid.

Native apps:

Native mobile applications are ones created exclusively for a given operating system. As a result, software created for one System cannot be used on another, and vice versa. Native applications are more effective, quick, and offer greater phone-specific functionality. Thus, the difficulties of testing mobile apps for compatibility with native user interfaces of devices involve ensuring that such traits are preserved strictly.

Web apps:

Similar to native apps, web applications do not require users to download them. Instead, the users’ web browsers on their phones can access these apps because they are incorporated within the website. So, it is envisaged that web applications will operate flawlessly across all platforms. Testing teams must carefully examine the application on a wide range of real devices and browsers to ensure high app quality. Yet in addition to taking a lot of time, this operation is essential because failing to work on a few devices can severely reduce the app quality and incur heavy losses when the app doesn’t function as required.

Hybrid apps:

The features of both online and native apps are available in hybrid apps. These are essentially web applications that mimic native apps in design. These applications are easy to maintain and load quickly. Teams that test mobile apps are in charge of making sure hybrid applications don’t lag on some devices. Any operating systems with the capacity to support the said features have access to all their functionality.

While each of these app types are slightly similar to each other the technical teams face a different challenge with each type of mobile application. Combining these challenges greatly increases the complexity, making the entire procedure laborious and time-consuming. Let’s quickly look into what some of these challenges are?

Challenges in Mobile App Testing


Different Operating Systems and their versions

There are different types of operating systems available in the market such as iOS, Android, Windows etc. Also, these OS have different versions too. So, it becomes challenging to test so many versions of the mobile app in a shorter period of time. One app that works well in one type of OS may not work well in the other. It is very important to test the application with all supported platforms and their version because we don’t know where the user is going to install the application. As per research, iOS users upgrade quickly as compared to Android but in Android the device fragmentation is larger. That means the developers have to support older versions and APIs and testers also have to test accordingly.

2019-03-27 (1)


Device Variations: Based on Screen size

Android comes with a mix of features and variations in pixels densities and ratios which varies in each screen size. Even in the case of Apple, the screen new size was introduced with the launch of the iPhone 6. Now, it is not just about being picture perfect screen design rather designing an adaptive screen design. Well with such a variety in screen sizes, the role of the tester becomes serious as they need to check if all the features are working well in different screens and pixel and aspect ratios are maintained well.

devices-screen-sizes


Based on the number of Devices

The picture below shows the number of devices in the market by different brands. The number of device manufacturers has increased. According to OpenSignal, there are around 1294 distinct Android phone manufacturers alone, imagine if we add up other brands. The pace with which this data is increasing is a bit alarming for the testers as the testers have to check the app performances on different devices, they would probably need a device library to do the same. The challenge remains in context to functionalities like Complex user interactions on touch screen and keypad devices as well. Having a device library is certainly is a costly affair unless emulation is adopted which can simulate multiple device types and testing can run easily on it.

OpenSignal-Brand-Fragmentation

Image Source: venturebeat.com


Various Networks

The QA team also faces challenges when it has to test the devices connected to different networks. Generally, there are 2G, 3G,4G mobile data available. These provide different data transfer speed and transmission. These varying speeds of the networks by various providers remain a challenge for the testers even today. In this case, testers have to check that the app must perform well at different network speeds and connectivity quality and a check on bandwidth usage of the app. This remains a challenge as it is partially controllable based on different network providers and connectivity access in different geographies.

 

Frequent OS releases

Mobile Operating Systems keeps changing. Both Android and iOS have more than 10 versions of their operating systems. They keep enhancing and updating their versions for better performance and user experiences. This frequent OS release comes as a testing challenge as the testers needs to validate the complete application with each of new OS release. It is very important to test the application with the latest OS release otherwise the app performance would be a major issue and consequently loss of users using the app.

screen-shot-2018-07-12-at-1.35.22-pm

Script Execution

Another major challenge of mobile testing is what we call scripting, the method of defining a test. Script execution can either be manual or automated. You can write down the scripts in a document, which is then used by a test engineer who manually interacts with the test environment to determine the result, else you can run automated scripts that in turn drive interaction with the device and app, and record the results.

 

Automated scripting needs to be kept away from the device to be of any real use because there are so many different devices with different interface options. A script that follows strict keystrokes on an Apple iPhone would not have any chance of working on a Samsung device, because the UI is different. Fortunately, most real device automated testing software provides high-level scripting that operates on the text, image, or object layer. Device emulators can automate testexecution using a higher-level, abstracted scripting language that is not device dependent. When you use automated scripting, the cost of setting up the script will typically be higher than the cost of a single manual execution of a test. But if it is a test script that you run on a periodic basis, every time that you subsequently run the script, the more time and effort you will save. You will eventually recover the cost of initial scripting If you run the script enough.

 

So to conclude, to build a better user experience, an app tester needs to work had in overcoming the challenges of testing. By adopting some analytical skills and methods, testers can really cope up with these situations. For eg. Testing only those apps and OS which are mostly used by their user segment, by adopting a strong testing strategy to take situational decisions eg. Decisions regarding when to choose Automation and manual testing. Strategically, the challenges can be overcome.

 

Screen Size

The Android world is not simple. The variety of different aspect ratios and pixel densities can be overwhelming. With the launch of iPhone Xs Max which has a screen size of 6.5 inches, Apple brings new screen sizes to the iOS world as well. Though iOS developers are used to pixel perfect screen design, they now need to change their mindset to the adaptive screen design instead. For testing, it means that we need to check on various devices that all the necessary screen elements are accessible with different screen sizes and aspect ratios. There are many phones with a screen size of 5 inches which are still popular.

 

2019-03-28

Security Issues

Traditional testing tools like selenium and QTP weren’t designed with cross-platform in mind. Automation tools for web apps and mobile apps are different. Operating systems especially Android further adds to the complexity with API level fragmentation. The most common automation testing tools for mobile app automation testing are Appium and calabash. Each tool has it’s own advantages and disadvantages and you need to choose on the basis for your app’s functioning.

Weak Hosting Controls is one of the most common issues. The server on which your app is hosted should have security measures to prevent unauthorized users Weak Encryptions can lead to data theft which will impact the trust factor of the users. Most of the mobile apps require user data such as email ID, password, age, location etc. This data should be encrypted and stored with proper security. Hackers often use this kind of data to get money out of users account online. Encryption will make it difficult for anyone unauthorized to intrude and retrieve that data rather than keeping it in plain text.

Power consumption and battery life

We haven’t seen much innovations in the mobile battery but the mobile usage and specifications are increasing rapidly. People are using more apps nowadays and the apps are more complex than ever. This is why testers need to test the apps power consumption because if the apps use lots of CPU cycles and some apps will also run in the background than the battery will drain out quickly. We need to make sure that the app uses less battery power so that users can use it for a longer period of time.

2019-03-27

Conclusion

Mobile apps are evolving with device technology and user expectations. Developers are emphasizing on reducing the app size and battery usage. Testers play a major role to ensure that the app works smoothly and does not crash or have bugs. This is why testers must be aware of the latest trends in mobile app testing to deal with the mobile app testing challenges.


whitepaper

Related Articles:

Mallikharjun | Posted on | 2 min Read

Did you know that there are nearly 1.8 million apps listed on the App Store for users to explore and make use of? And nearly 10% of these iOS apps are classified into business apps securing second place leaving games at the top with 21%. With many businesses, game developers, eCommerce ventures, fashion industries, etc, striving to venture out into the digital space; the need for high-quality iOS apps has become a necessity in today’s day and age. The power of developing an iOS app that is successful and purposeful gives you an option to interact with the customers directly. iOS app development is the way forward for many that want to tap into the millions of users that avail of its services on Apple devices. Mobile app marketing is setting the tone for a new way of advertising that companies are leveraging to level the playing field. While social media marketing and digital advertising seem to be gaining momentum, reaching audiences through app marketing seems to be taking shape as well. The future of mobile app marketing makes it all the more important for developers to ace the skill of app development to get ahead in the game.

iOS App Development

The high demand for mobile apps has raised the standard of iOS app development. The need for designing apps that look sleek and perform fast has always been a daunting goal of many iOS app developers. When building an iOS app, it is important to not just create apps that look good but also build them to ensure smooth functionality in fulfilling the requirements. The stringent app guidelines and the rigorous quality checks that are set by Apple makes it all the more difficult for developers to develop iOS apps that make the cut and become App Store worthy. Hence, It is crucial to assess the performance of the iOS app at every stage of the development process. The response time of the app and the speed at which it functions are a few other vital components that play an important role in qualifying to be listed on the App Store. Providing a practical application-based solution for the requirements of the stakeholders is more important now than ever before due to the changing environment.

 

Here are a few iOS app development tips that are trialed and tested to be beneficial when developing high performing iOS apps.

 

    1. Planning and Market Research

Before you jump straight into writing the code for the app, it is advisable to understand the requirements thoroughly to chart out a plan for app development. Performing an extensive market research to ideate a unique offering to the customers’ needs is sure to save you a lot of time that you may have spent reworking a plan if you were unprepared. Conducting a thorough app research about the requirements at hand will equip you to not only build an app that meets the needs but also will help you avert duplication of any sort.

 

Plan your app well, think about the target audience, chart out the requirements and ask all the questions needed before you initiate the iOS app development.

 

    1. Stick to a Simple Design

The mind of a developer generally wanders off to different tangents to build an app that overachieves the requirements. While most of the thought processes would be directed at adding additional features to the solution; most times these additional features become additional baggage of complexity to a simple solution. This in turn leaves the users confused of its usability and functionality. Designing a seamless UX/UI that speaks simplicity enables users to get around the app comfortably for its utility. Designing an app that addresses the key problem area tends to attract growth organically. The mantra is to take a simplistic approach to address the requirements of the app users and not complicate things.

 

Designing a seamless UX/UI that speaks simplicity enables users to get around the app comfortably and use it with ease.

 

    1. Spend Time on the Fundamentals

Brushing up your basics often is sure to set you on the path to developing apps faster. Getting your fundamentals in place, diving into algorithms, inheritance, polymorphism, and data structures are sure to enhance the use of the software fundamentals for building applications faster in the future. Every tool that you use to develop iOS apps be it Xcode, CocoaPods, Alcatraz, etc surely have shortcuts that you can take advantage of to speed up your build time.

 

Taking the time to learn various commands and shortcut keys are an added advantage that will put you on the fast-lane to become proficient at iOS app development.

 

    1. Use Storyboard for Transitions

A storyboard is an outlandish feature that provides an overview of the apps’ user interface on a screen. The beauty of this feature is captured in its capacity to help with designing multiple controller views on a single screen. Using the storyboard would not only provide you a roadmap of your prototype but also gives you the liberty to design your transitions between the view controllers. Talking about designing the content around the app, it is fundamental for app developers to stick to the principles of depth, clarity, and deference.

 

Storyboarding will ensure that your users get an immersive experience as they navigate through screens and follow the instructions that are thoughtfully constructed for a seamless functionality of the app.

 

    1. Don’t Block Main Thread, Use Git early

Another best practice that is followed by most iOS app developers is adopting Git at an early stage. Using Git early is sure to help with your build in a significant way especially if the app that you are designing is a combined collaborative effort. Using Git early makes it easy to roll back the changes when things go south. It also allows you to view any changes that may have been made to the code by others. Also, blocking the main code by performing app development tasks on it would make the app seem unresponsive, it is best to refrain from working on the main code as the UIKit constantly runs functions like drawing, touch functionality, and input functions on it.

 

Hampering with the main code could become a recipe for disaster leading the app to perform poorly and attract dreadful reviews on the App Store.

 

    1. Swift and Objective-C

Many app developers switching to Swift for creating applications has left the iOS app development industry in a dilemma. While the use of Swift has an edge over Objective-C, it sure has its set of audience that still favor the latter. Although Swift is an easier programming language that new coders can learn and pick up without much knowledge of additional code, a majority of the iOS programming community speaks the language of Objective-C for their iOS app development needs. Swift encapsulates a ton of advantages that is beneficial to paving the future of iOS app development and builds. It is still a work in progress and is consistently evolving with the changing needs of the app industry. Learning Swift is surely an advantage considering the future of app development.

 

Learn new programming languages like Swift which are easier and intuitive but also make an effort to be well versed with a widely used language like Objective – C to make the best use when the need arises.

 

    1. Ensure Compatibility

A crucial factor that you need to keep in mind while building an iOS app is its compatibility with different iOS versions. Running tests to ensure compatibility across devices on cloud-based testing platforms gives you the option to perform your tests on multiple devices running different iOS versions conveniently and effectively. It is advisable to optimize the apps to run smoothly on all iOS versions to ensure a maximum user-base.

 

Optimizing your app to perform well on different iOS versions is sure to fetch some brownie points to the apps’ success journey as you accommodate both the new and the old iOS versions.

 

    1. Streamlined interaction through Social Network Integration

One of the best features that you can include while developing and iOS app is the Social Network integration which allows you to streamline the interaction between the mobile app to the web app or the website. Developing this feature on the mobile app would surely help businesses engage with their users better through customizing their offerings to a particular geography or demography. Users would find it easy to use an app on their phone and pick up from where they left off on other devices that are in sync with the particular user account. The social network integration would allow the developers to diversify their tools for a future offering as well.

 

Integrating social networking platforms to the app would enable businesses to curate offerings to customers based on their interests, demographics, and geographies.

 

    1. Traffic Management

Prevention is better than cure. With the right tools and features in place for the app’s success, it is the responsibility of the developers to ensure that the app does not crash. Optimizing the memory usage, or timely updates to cater to the OS updates are a few of the vital elements to keep in mind. Putting systems in place for the app to function smoothly even when marketing efforts direct traffic toward the app should keep it going with a hassle. The last thing you want is for the app to crash during these promotional campaigns or marketing events.

 

Make sure that your app is optimized to handle the traffic during any promotional events or marketing campaigns, because an app that crashes during a sale is no good at all.

 

    1. Thorough Testing

The App is only as good as its functionality and performance. Assessing the app’s performance by conducting several tests multiple times will ensure a successful launch/release. Making sure that the iOS app achieves the requirements on different devices will secure a pivotal standing in the market gaps that it fills. Since Apple performs a much more rigorous assessment on the app as compared to the Google Play store, it is advisable to perform continuous testing at every stage of the iOS app development to monitor its functionality and make changes accordingly.

 

Testing for functionality, UI, compatibility, security, etc in different environments and devices running different iOS versions will ensure high quality and ROI on its release.

 

Apps when done right are sure to be on the path to success. However, in order to design an app that is successful, you will need to constantly plan, develop, integrate and test rigorously using continuous testing methods to save time on releasing the app at the earliest. App development can be a tedious task at first, however, with the right mindset, tools, and tricks up your sleeve you are sure to make it an enjoyable one. A pro tip would be to explore cloud-based continuous testing platforms like pCloudy for testing your iOS app on different devices before you submit it to the App Store for review. Ensuring that the iOS app that you built goes through a continuous testing process will ensure a quicker debugging and faster release cycle. We hope this was beneficial and wish you the best on your iOS app development journeys.

pCloudy 5.1

At each step of our journey, we aim to make your app testing robust and simpler. That’s why your feedback and requests are so important for us. We tried to incorporate them into a release structure again that makes pCloudy work better and faster for you.

 

So here, we bring to you the fresh set of release updates that have been addressed and deployed in pCloudy 5.1.

 

  • Simpler Appium Integration Architecture: Here comes the bonanza for our Appium users! We have released a newer and simpler Appium integration architecture to simplify your Appium test execution on Android and iOS devices with pCloudy. The newer architecture make developers’ life simpler with lesser changes in the code. The older architecture demanded using APIs and also changes in your code that required some level of expertise. We addressed this issue and have come up with a simpler architecture where you need to mention some desired capabilities instead of calling APIs or doing changes in the code to run the Appium scripts. And wonder what! it just takes few minutes to integrate your existing Appium scripts with pcloudy. Check yourself here.
  •  

    pCloudy Appium Capabilities

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(“pCloudy_Username”, “Enter your email Id”);
    capabilities.setCapability(“pCloudy_ApiKey”, “Enter your API Key”);
    capabilities.setCapability(“pCloudy_ApplicationName”, “pCloudyAppiumDemo.apk”);
    capabilities.setCapability(“pCloudy_DurationInMinutes”, 5);
    capabilities.setCapability(“pCloudy_DeviceFullName”, “Samsung_GalaxyTabA_Android_7.1.1”);
    driver = new AndroidDriver(new URL(“https://device.pcloudy.com/appiumcloud/wd/hub”), capabilities);
  • Cross-browser testing made simpler: There are many widely used web browsers, but not all browsers, and versions of those browsers, work the same. A website may not look or function identically on each one, which can lead to lost revenue for an enterprise. We addressed the issue of choosing from the fixed set of browsers previously available.

    Heeding to the growing demands of our users, we have introduced the Launch and Upload browser feature for our Android users which will give him the freedom to choose the version of the browser that he wants to use. This is going to save their testing time and efforts to a great extent and also give better results for their cross browser test. To know more about it Click Here.

 

Upload Browser

 

  • Faster Upload of Apps: We received multiple requests to speed up the process of Upload and synchronization of App/Data into the cloud. With some changes in the process, we have now succeeded to reduce the app upload and synchronization time by 42%.

    As you know, during app synchronization, the platform automatically synchronizes your data with all the 4 data centers of pCloudy. Earlier, the process was done in a series where synchronization once completed in one data center will then start in the 2nd one and so on which took a few minutes to complete. We have now changed this to a parallel process, which makes your testing 2x faster.

 

App time saved in pCloudy 5.1
App upload time saved in pCloudy 5.1

 

  • TouchID for iOS devices no more a blocker: Apple introduced the ability to perform authentication via TouchID to enable secure and effortless access to the device. But it turns out to be a hindrance for mobility teams while testing their iOS apps on devices over cloud. To ease out the process of authenticating TouchID manually every time, you can now bypass the TouchID verification in your apps using our utility. The bypass TouchID feature will be available for iOS devices version 10.0.0 or above. To know more about it Click Here.

 

Touch ID

 

Note: This feature will for now be available only for iOS and won’t support Face ID.

 

  • Integration with Slack: Since many of our customers are moving towards Slack, there was a huge demand to integrate Slack with pCloudy to enable their broadly distributed teams collaborate well. We noticed this change and hence we integrated Slack with pCloudy. It will now be easier for you to share bug related data and artifacts like Logs, screenshots etc through our Slack integration. To know more about it Click Here.

 

Collaborate

 

Share to Slack

Device Location Testing

 

Multi-location device access

Continuing with our endeavor to provide you a better experience, we are excited to announce our next big step.

 

Now, you will be able to access Mobile devices and Mobile networks from across different geographies. In the first phase, we are providing devices and mobile network from India, US and Philippines. We will add more locations very soon.

 

You can continue to use your existing credentials with the URL device.pcloudy.com to access all the devices from different locations.

 

Here are some of  the changes you will notice –

Device Location filter in the Devices Tab

 

You can now select devices from different locations using the Device Location filter.

 

  • In the Instant Access page

 

Device Location Testing

 

  • In the Book your Device page

 

Cloud Access

 

Device Location filter in the My App/Data Tab

 

NOTE: The My App/Data folder is specific to a device location. If you plan to use devices from different locations, make sure your app is uploaded in all Device locations.

 

My App/Data

 

Device Location filter in the Reports Tab

 

NOTE: The Storage folder is specific to a device location. If you’ve used devices from different locations, please select the corresponding location to view it’s reports.

 

Reports

 

Device Location filter in the Settings page

 

  • History section

 

Settings

 

  • Test Runs section

 

Settings

 

  • UDID

 

Settings

 

You also see a few changes once you access a device

 

  • Device Information
  •  

    Device Information

  • Installing an app

 

NOTE: Since My App/Data is specific to a device location, ensure that the installation file is uploaded to the respective location of the device.Install

PCloudy 3.4

PCloudy is happy to announce several exciting features as part of it’s latest release.

  • ADB Bridge (for In-premise cloud): Connect and take full control of any Android device using Android Debug Bridge. It provides access to a versatile command line tool that lets you communicate with a remotely connected device over the cloud.
  • ADB Commands (Available as part of Enterprise package): You can run ADB commands from your computer to the remotely connected device on a Private Cloud Lab.
  • Network Simulation (for In-premise cloud): Control the network connected to the device on which you will test your application. Set Network Profiles, modify existing profiles and apply it to the network connected to the device.
  • Battery Consumption Reports (For Android devices above 5.0): The platform now displays real time battery consumption data of device and App under testing. You can view a graphical representation of battery consumed by your apps with the total battery used by the device.
  • Monkey Tool (UI/Application Exerciser Monkey): Perform Stress and crash test on your application by simply selecting a device and running monkey tool on your application. The tool sends out a stream of pseudo-random user events such as clicks, touches, or gestures, as well as a number of system-level events, which acts as a stress test on the application software you are testing.
  • New implementation of iOS Instruments: Several improvements for running Appium and Calabash scripts on iOS devices
  • Volume Up & Down buttons for Android: Separate keys to control Volume of the devices. This is just the beginning, there’s something bigger coming.
  • Wifi control button for Android: Separate keys to Switch-on/Switch off wifi settings on Android devices
  • Support for IOS 10 beta : Get your App ready for Testing for upcoming IOS 10 release. You can test on iPhone and iPad with IOS 10 Beta version.
  • Several Bug fixes

We would be happy to send you more information. Please contact us on info@pcloudy.com