Nowadays people are spending time more and more on mobile devices or mobile apps.People use to spend their time on online shopping and moreover on social apps like(WhatsApp,facebook).This brings a tremendous change in the users life.Use of mobile apps have made their life easy.
Android, iOS, Windows Phone, Blackberry, and Symbian are the leading Operating Systems used in Smart devices like Phones and Tablets.

There are more than 950,000 apps in iOS store, more than 750,000 apps in Play store and around 200,000 apps in Windows Phone and Blackberry’s play store.
Mobile phone users from 2011 to 2013

Mobile App downloads and usage History of users

Mobile apps saw 76%  growth in 2014. A Nielsen study finds that the average smartphone user has about 42 apps on their device and 87% claim to use nearly 10 apps on daily basis.

Mobile technology and smart devices iPhone,iPad and android phones are the trend now and changing  the future of the world as you can see here.

You’re walking on the road roaming in malls. You see some interesting and listen some new things and You need to explore at that moment. What do you do? Do you wait until you get home, open up your laptop, and type that heard thing  into your search bar?

Of course Not. You probably take out your phone and go to the app store/play store to see if there is an appropriate mobile app you can download, right? This is called Mobile Mania……..

So more and more users are busy in their mobile phones and they are using MOBILE APPS.Some companies are named by their mobile app if that mobile app is too interesting and multiple feature in that application.

The Mobile apps they are using their speed and performance should be good and accurate So that will be good if that application is tested.

Before jumping to mobile testing you should know about mobile application types.

Mobile application types:

1.Native apps

2.Mobile WebApps

3.Hybrid apps

Native Apps:

Native apps are built specifically for a particular mobile platform using the development tools and languages that the respective platforms support (XCode and Objective-C for iOS apps, Eclipse, Android Studio; Java for Android; and Visual Studio and C# for Windows).

They are developed for a specific platform or device.

Native app directly interact with the operating system

.It performs very well then Web applications.

Main feature of Native app is they only  run on those platform on which they are targeted.

Advantages of a Native app

  • In native app we can access the wider functionality of device like camera,contacts and swipe gesture and location
  • Native app contains push-notifications feature.

Mobile WebApps

What are Web Apps?

An application which runs within a mobile browser, like Safari or Chrome, like every other website. We  don’t have to install a web app. We don’t need  available space on our devices for Web app.
Web apps are sometimes designed to look and behave like apps and are in general ideal when the purpose is simply to make content or functionality available on mobile, but an app is either not a good fit or too expensive.

Web apps use JavaScript, CSS, HTML5 or other languages. Developer won’t have access to a standardized SDK. Developing a web app can be simple and quick, however, their simplicity is also their downside.
Hybrid Apps
Hybrid apps is the combination of Native as well as Web apps.

Hybrid apps function like native apps as they gave superb user-experience.

They are written on web technologies, such as HTML5, CSS and JavaScript.

They run inside a native container and utilizes the device’s browser engine to process the HTML, JavaScript and CSS locally.

These applications can be sold in app store. They can utilize the native features of the phone thus provide a appealing user experience. Building hybrid apps is cost-effective as compared to the native apps.Hybrid app work sometimes when they are not connected to the internet.It depends on the requirement how it made.
Difference Between Native,Hybrid and WebApp

Native Html5(WebApp) Hybrid(Combination of Native+Webapp)
App Features
Performance Fast Slow Slow
Look and feel Native Emulated Emulated
Distribution AppStore Web App store
Device Access
Camera Yes No Yes
Contacts,Calender,Location Yes No Yes
Offline Storage Secure File Storage Shared Sql Secure File Storage,Share Sql
Geolocation Yes No Yes
Gestures
Swipe Yes Yes Yes
Connectivity Online and Offline Only Online Online and Offline
Development Skills Objective C,Java HTML5,CSS,JavaScript HTML5,CSS,JavaScript

What is mobile Application?

A mobile application is a software application designed to run on smartphones,tablets and other devices.

Why mobile applications are designed?

They are designed to entertain,educate or to promote for business or assist consumers in their daily lifes.
What is Mobile application Testing

By Definition, Mobile application Testing is a process in which a Developed application is tested on Mobile Devices for its functionality.

Future Growth Of Mobile Technology

The growth of mobile technology is nothing short of phenomenal.As you can see growth of mobile devices from 2009 to 2014. According to Forrester, by 2016, smart phones and tablets will put power in the pockets of a billion global consumers. Mostly Businesses use mobile applications to meet an essential business need.

90% of users spend time in their mobile devices.

More than 77% of the mobile users are concerned about app performance.

40-50% of the mobile users deleted apps when they encountered a single bug.

Mobile Platforms

Android

Ios(iPhone)

Symbian(Nokia)

Windows Mobile

Blackberry

Android Version

Androd 1.5 Cupcake
Android1.6 Donut
Android2.0/2.1 Éclair
Android 2.2.x Froyo
Android 2.3.x Gingerbread
Android3.x Honeycomb
Android 4.0.x Ice Cream Sandvich
Andoid 4.1.x Jelly Bean
Android 4.4.x KitKat
Android 5.0 Lollipop


iOS Version and History

June 2007 1.1.5, 2.0
July 11, 2008 2.0,2.2.1 available
June 17, 2009 3.0, 3.1.3, All iOS versions from 3.2 until 4.0 were made specifically for the iPad.
June 2007 1.1.5, 2.0
July 11, 2008 2.0,2.2.1
June 17, 2009 OS 3.0
June 21, 2010     iOS 4.0
June 11, 2012 iOS 5
June 10, 2013 iOS 7
June 2, 2014 iOS 8

Types of Mobile App Testing

Functional Testing

Functional testing ensure that mobile application is behaving as per the requirements.

Testing all the features of an application comes in Functional Testing.Your application should work on all the devices.

Test all the features like

1.Test all the common features like if you app contains  login,registration,Searching.

2.Test all the validation part.

3.Perform Negative Testing

Be sure that your mobile apps work everytime, everywhere and for every user!

Performance Testing

Performance testing means  test the behaviour of application under certain conditions like low resources (Memory,space).Our mobile app performance should be good.Testing the performance of the mobile application by changing the connection from 2G, 3G,4G to WIFI and try to use personal Hotspot .Check the performance of application. Performance Testing is like you need to verify server Connection

Does your mobile application loads on 2G network.

Does your mobile application is loads on when changes from 2G to 3G.

Mobile users are Impatient.

People always think that their mobile application should work as it works on desktop/laptops.

Mobile users Expect equal speeds.

Compare to websites that you access from your home computer or laptop how quickly do you expect websites to finish loading on your mobile phones?

An important difference between the PC and mobile platforms is that mobile platforms are battery‐powered.

Mobile Phone batteries are smaller then batteries in laptops so battery consumption is an important performance measurement.

Processor and memory constraints are more present on mobile platforms.

Mobile devices run on a different processor architecture (ARM vs x86) than

PC devices and the processors and less processing power and memory

capacity is available.So performance testing is major part for mobile application.

User Interface Testing

Testing the various graphical user interfaces, how user interacts with application, testing application elements like fonts, layouts, button, images, colors etc.

Following are the types which covers User Interface Testing.

Screen Resolutions,TextBox Buttons

Testing of menu options, Textbox buttons, bookmarks,Search Buttons settings Buttons  and navigation flow of the application.

Here are the example of user interface Testing

  1. *symbol have to display in all the mandatory fields.
  2. By Clicking Cancel button it have to display the previous or home page.
  3. Font size should be proper as per the requirement
  4. Font style should be proper as per the requirement
  5. Spaces between the texts and the fields should be proper
  6. Default options such as “Logout, Change password, Terms and conditions, Privacy policy, etc” should be there in standard positions.

Usability Testing

Functionality is very important for an application to work. But there is another important to be tested, before it has to be released, which is side-lined due to time frames.The Other Important thing which is mostly taken aside is Usability Testing.Usability Testing should be start with the Requirement specification and analysis phase then goes to design and then in coding phase. If we perform Usability testing in the same phase, Then Usability testing is just like Verification. This Testing can happen after (or) along with Functional Testing.

Usabilty Testing is the most important factor for mobile app success.Usability Means how to use your  mobile application.If your app is confusing them they will move to different app.

Usability means thinking about how and why people use a product.

Good technical writing, like good interaction design, focuses on user’s goals. The first step in creating a usable product is understanding those goals in the context of the user’s environment, task or work flow, and letting these needs inform the design.

Do all the buttons and icons have sense.

Does all the link are opening when they clicked.

Security Testing

Security Testing is a type of software testing that intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders. Security testing is basically a type of testing an application to determine that an information systems protects data or not.

Mobile device security will become more important as the users are growing  so it is essential to test the security of mobile application,sensitive data storage.

Some security Examples are:

  1. Password should be in encrypted format.
  2. Application or System should not allow invalid users.
  3. For Banking  sites,  back in mobile application button should not work.
  4. If we delete app from backround then if we launch it again then it should ask for new login.

Stress Testing

A stress test is often used to determine the maximum load on software, and to evaluate if the software will be able to operate correctly in certain conditions.

These conditions can include heavy loads, high concurrency, or limited computational resources. The idea is to stress a system to the breaking point in order to find bugs that will make that break potentially harmful.

Mobile  applications have much less overall device memory  so must handle them very efficiently.

Stress Testing is to  Test Your application with the huge data and verify the response.Does your app hangs or Stops.

1-Perform the same operations over and over again.

2-Perform the repeated operations at varying speeds – very quickly or very slowly

  1. Have multiple applications running on your device so you can switch between your application and other device applications often.

Compatibility Testing

Testing of the application in different mobiles devices, browsers, screen sizes( big or small) and OS versions (iphone,android ).

This type of testing is designed to ensure that your software works on different versions of operating systems, different types of computers and software programs, and different network environments.    Compatibility testing ensures the following:

The software can install and function on multiple environments.

Variances in screen size, resolution, and operating systems do not corrupt the software

Mobile Platform Compatibility

Does your applications work on all the devices or versions.If it is ios application will it work on ipad,ipad mini,iphone5,iphone6 and etc.

If your application is an android application will it work for all the android versions.From(4 to 5)..

Interruption Testing

Interruption testing is like if you are using your mobile application at that time if any incoming call/any notification appear on your device then your application should not stop by these intrupptions.Your application should be resume if you receive call.

Test your application By the following Interupt

Incoming call

Receiving incoming call

Receiving message

Device shutdown

Remove battery

Camera activated

Challanges in Mobile App testing

1.Device Fragmentation

With new devices getting launched every other day, testing is becoming increasingly challenging and demanding.Mobile device fragmentation is a phenomenon that occurs when some mobile users are using some older versions and other are using newer version.We can never know about customers/consumers mind for mobile devices. Mobile device fragmentation can be a problem for software developers who must create different versions of the same app in order to make sure it works correctly with different versions of a given OS. For Example if your app is working on your device.Are you sure about that it will work on all devices (Htc,Moto,Sony). Testing is one of the main challenge for mobile app developers. Android developers faces  many challenges then ios developers because this platform contains huge fragmentation in the term of device screen size, resolution and many other factors

2.Usability Issues

Mobile device screens are relatively small/big on different devices and there are always more data we would like to present than possible to fit to the screen. Font size,Screen Sizes  and readability are other challenging factors of usability. When you are  testing mobile apps it’s important to give attention for clickble areas for all the buttons and links  and making sure that all texts are readable without lenses.

3.Network Challnges

The performance of a carrier’s network can have a huge impact on the user’s experience with an app.There are different networks  2g,3g,4g for mobile data connection and also broadband connection.We should test application on all the networksWe should test What is the impact of low signal strength, 3G or 4G networks, and different Wi-Fi speeds?.Sometimes there might be no connection available at all the devices is in flight mode.

4.Hardware Challenges

Sometimes memory might be a big challenge for mobile application user.Low memory space can reduce users to download the application. Size of mobile apps icons , screen and images are the important factors for the mobile application. Sometimes slow processing speed of device should be a major factor for mobile application.

  1. Power consumption and battery life.

For many of us, the most important characteristic of our phone is its battery life. We are running lots of apps during the day and several processes are running on background without us even noticing. When testing mobile apps we need to make sure that the power consumption should be minimum and the app is developed by keeping the best practices in mind.

Checklist for Mobile app testing

This will test only generic app characteristics of mobile app.It will not test your mobile application features .But it will improve the quality of your application.

Device Specific Checks

1.       Are you able to be installed application on the device?
2.       Are you able to uninstall the application from the device.
3.       Are you able to update a newer Version of an app.
4.       Does the app behave as designed/desired if the charger is connected?
5.       Does the app behave as designed/desired if the charger is disconnected?
6.       Does the app behave as designed when phone connected from laptop.
7.       Does the app behave as designed when phone disconnected from laptop
8.       Does the app behave as designed/desired if the device goes to sleeping mode.
9.       Does the app behave as designed/desired if the device is shaken?
10.   Does the app behave as designed/desired if a local message/alarm is coming from another app (reminders,alarms to-do task etc.).
11.   Does the app behave as designed/desired if a push message is coming from another app (think of: whatsapp message,facebook message ,gmail etc).
12.   Does the app behave as designed/desired if the device is in airplane mode?
13.   Can the app switch to different apps on the device through multitasking as designed/desired?

14.   Like If you are using any music application and listening the songs if you move to other app then check that song stopped and it is still playing.

15.   Does your mobile application work when you move it from portrait to landscape mode.
16.   Does your mobile application work when you move it from landscape to portrait mode.
17.   Does your mobile application work close when remove from Background.
18.   Does your mobile application start with a new login when deleted from background./Does your mobile application start from home page when delete from background.
19.   Does the back button of devices take user to previous screen.
20.   Does search button available on the device, does this get the user to some form of search within the app?
21.   Does all touch screen (buttons/links) working when a screen protector is used.
Interruption in Mobile application
1.       Does your application stop/pause/resume if there  is any incoming call is coming.
2.       Does your application stop when low battery warning is showing on screen.
3.       Does your application stops if any of push message(any notification from a different application) is coming on the device.
4.       Does Your application stops if cable is inserted or removed.

App Specific Checks

Does your app tested on different type of devices(small screens and large) and different versions of OS for android (4.1,4.2,4.4,5.0) and for ios (6,7,8)
Does your app contains a list.if it contain list then try to scroll it and verify that loader should loads and results should be appear.
Integration: Does your app connect correctly to the different social networks (LinkedIn, twitter, facebook,gmail ,pininterest etc).
Does the search option in the app displays relevant results
Does the slider move if app contains a slider.
Does the slider moving smoothly or it is works on very hard pressing.
Does the swipe gesture is working smoothly in your application.
Does your app add contact or email from mobile contacts./Does your app working if we are adding blank contact number.
App name should be self explanatory.
Does your app is opening camera if there is any camera option on your device.
Does your app is adding photos if we click on choose photos button in the device.
Does your app updating the photo if we update photo from a another one.

App User interface checks

Checklist based on the recommendations of Apple and some testing experts.

In an app, the user should not be exposed to the permissions of a specific file.
Does your app ask p permission if it accessing photos.(iphone case)
Does your app ask permission if you are accessing location?
Users should be warned of the consequences of deleting a document
Keyboard adjusts to expected input (for instance numbers/letters when expected).
If performance is slow, indicate a progress status icon (“Loading…”), preferably with specific message.
The appearance of buttons that perform standard actions are not altered in the app (for instance:  back, Settings,menu icon  etc.)
If performance is slow, indicate a progress status icon (“Loading…”), preferably with specific message.
Status message in iphone app should be accurate otherwise sometimes app is rejected.
If the app is stopped at an unexpected time, user data should be saved locally and available at start-up.

App store Checks

An app store (or app marketplace) is a type of digital distribution platform for mobile apps.

These checks are important  for iphone app then our application will  pass the submission process in the app store. For android application app store named as  Play store , has much less strict demands.

Here are some important factors by which apple store rejects the application.

1.Your application shouldn’t be copied from a different app which is already submit on app store.

2.If your app is crashing too much  so your app will not be published on app store.

How iphone app crashed?

 

If your app is not working properly.It  crashed sometimes if we click on back button on any menu icons.By these issues it never be submitted on app store.

If you copy the functionality of an existing application, they will notice. Guaranteed.
Submissions with .ipa files bigger than 50 MB
All links in your app must be functional.If any of the link is broken then it will not be worked.
Apps that are still in progress and contain placeholder content are not ready to be distributed and cannot be approved.
When submitting your app for review, you’ll be asked whether your app uses the Advertising Identifier (IDFA) to serve advertisements. If you indicate that your app uses the IDFA, but it does not have ad functionality or does not display ads properly, your app may be rejected.
Make sure to thoroughly test your app on devices and fix all bugs before submitting.If your app is crashing then apple will reject the app.
From: seleniumgyan.com