Mobile application testing

Last updated

Mobile application testing is a process by which application software developed for handheld mobile devices is tested for its functionality, usability and consistency. [1] Mobile application testing can be an automated or manual type of testing. [2] Mobile applications either come pre-installed or can be installed from mobile software distribution platforms. Global mobile app revenues totaled 69.7 billion USD in 2015, and are predicted to account for US$188.9 billion by 2020. [3]

Contents

Bluetooth, GPS, sensors, and Wi-Fi are some of the core technologies at play in wearables. [4] Mobile application testing accordingly focuses on field testing, user focus, and looking at areas where hardware and software need to be tested in unison.

Key challenges for mobile application testing

Types of mobile application testing

  • Incoming and outgoing SMS and MMS
  • Incoming and outgoing calls
  • Incoming notifications
  • Battery removal
  • Cable insertion and removal for data transfer
  • Network outage and recovery
  • Media player on/off
  • Device power cycle
An application should be able to handle these interruptions by going into a suspended state and resuming afterwards.

Related Research Articles

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Palm OS</span> Mobile operating system

Palm OS is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. It was provided with a suite of basic applications for personal information management. Later versions of the OS were extended to support smartphones. The software appeared on the company's line of Palm devices while several other licensees have manufactured devices powered by Palm OS.

In software quality assurance, performance testing is in general a testing practice performed to determine how a system performs in terms of responsiveness and stability under a particular workload. It can also serve to investigate, measure, validate or verify other quality attributes of the system, such as scalability, reliability and resource usage.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">MIDlet</span> Java ME application format

A MIDlet is an application that uses the Mobile Information Device Profile (MIDP) of the Connected Limited Device Configuration (CLDC) for the Java ME environment. Typical applications include games running on mobile devices such as smartphones with J2ME support and feature phones which have small graphical displays, simple numeric keypad interfaces and limited network access over HTTP.

<span class="mw-page-title-main">Binary Runtime Environment for Wireless</span> Application development platform

Binary Runtime Environment for Wireless is an obsolete application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It was offered in some feature phones as well as smartphones.

Network emulation is a technique for testing the performance of real applications over a virtual network. This is different from network simulation where virtual models of traffic, network models, channels, and protocols are applied. The aim is to assess performance, predict the impact of change, or otherwise optimize technology decision-making.

Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.

In computer science, fault injection is a testing technique for understanding how computing systems behave when stressed in unusual ways. This can be achieved using physical- or software-based means, or using a hybrid approach. Widely studied physical fault injections include the application of high voltages, extreme temperatures and electromagnetic pulses on electronic components, such as computer memory and central processing units. By exposing components to conditions beyond their intended operating limits, computing systems can be coerced into mis-executing instructions and corrupting critical data.

Turbo is a set of software products and services developed by the Code Systems Corporation for application virtualization, portable application creation, and digital distribution. Code Systems Corporation is an American corporation headquartered in Seattle, Washington, and is best known for its Turbo products that include Browser Sandbox, Turbo Studio, TurboServer, and Turbo.

<span class="mw-page-title-main">Virtualization</span> Methods for dividing computing resources

In computing, virtualization (v12n) is a series of technologies that allows dividing of physical computing resources into a series of virtual machines, operating systems, processes or containers.

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

API testing is a type of software testing that involves testing application programming interfaces (APIs) directly and as part of integration testing to determine if they meet expectations for functionality, reliability, performance, and security. Since APIs lack a GUI, API testing is performed at the message layer. API testing is now considered critical for automating testing because APIs serve as the primary interface to application logic and because GUI tests are difficult to maintain with the short release cycles and frequent changes commonly used with Agile software development and DevOps.

NeoLoad is an automated performance testing platform for enterprise organizations continuously testing from APIs to applications. It provides testers and developers automatic test design and maintenance, the most realistic simulation of user behavior, fast root cause analysis and built-in integrations with the entire software development lifecycle toolchain. It is designed, developed and marketed by Neotys, a privately owned company based in Gémenos, France.

A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on desktop computers, and web applications which run in mobile web browsers rather than directly on the mobile device.

Opensignal is an independent analytics company specialising in "quantifying the mobile-network experience".

Crowdsourcing software development or software crowdsourcing is an emerging area of software engineering. It is an open call for participation in any task of software development, including documentation, design, coding and testing. These tasks are normally conducted by either members of a software enterprise or people contracted by the enterprise. But in software crowdsourcing, all the tasks can be assigned to or are addressed by members of the general public. Individuals and teams may also participate in crowdsourcing contests.

Computation offloading is the transfer of resource intensive computational tasks to a separate processor, such as a hardware accelerator, or an external platform, such as a cluster, grid, or a cloud. Offloading to a coprocessor can be used to accelerate applications including: image rendering and mathematical calculations. Offloading computing to an external platform over a network can provide computing power and overcome hardware limitations of a device, such as limited computational power, storage, and energy.

Mosaik Solutions was a company that specializes in wireless coverage data and wireless coverage maps, based in Memphis, Tennessee before being acquired by Ookla.

References

  1. "'What is Mobile Testing?', SmartBear Software". smartbear.com. Retrieved 2014-07-23.
  2. "'Increase efficiency and productivity with Test Automation', Bitbar". bitbar.com. Retrieved 2014-08-07.
  3. "Mobile app revenues 2015-2020 | Statistic". Statista. Retrieved 2019-03-08.
  4. "Core technology of wearable devices". DigiTimes. July 15, 2014.
  5. "Testing Strategies and Tactics for Mobile Applications, Keynote White Paper" (PDF). Keynote.com. Retrieved 2012-05-02.
  6. "Emulated vs. Real Device Mobile App Testing". bitbar.com. Retrieved 2016-11-08.
  7. "Testing on Emulators vs Real Devices | Smashing Magazine". Smashing Magazine. Retrieved 2016-11-08.
  8. "The Pitfalls of Mobile Emulators| Mobile1st Blog". Mobile1st.com. Retrieved 2015-09-30.
  9. "StickyMinds | How the Usability Matrix of Emotions Can Benefit Your Software Testing | Page 1". StickyMinds. Retrieved 2015-10-29.
  10. Contractor, Lena. "What is User Experience?". WhatUsersDo. Retrieved 2015-10-31.
  11. "Mobile UX Issues Caused by Device Fragmentation". Testmunk Blog. Retrieved 2015-10-31.
  12. "Mobile App Testing Techniques and Tools". Mindster. 2019-07-16. Archived from the original on January 2, 2021. Retrieved 2021-01-02.
  13. "Mobile App Testing | Services Issues | Page 1". GTT. Retrieved 2016-03-22.
  14. "Mobile Application Testing using Managed Crowd Sourcing". Qualitrix.com. 2017-02-06. Retrieved 2017-03-14.
  15. "6 Major Pitfalls of Crowdsourced Software Testing - QualityLogic". QualityLogic. 2017-10-26. Retrieved 2018-02-14.