Mobile App QA Testing2018-06-26T12:20:47+10:00

Mobile App QA Testing

iTech QA Labs has been testing mobile software on both browsers and downloadable applications for over 10 years, for some very large companies across the world. iTech QA Labs is accustomed to testing against very strict and highly regulated requirements. Because of this, our Testers and Consultants are thoroughly trained and experienced in very in depth testing (both black box and white box). Their experience ensures that any bugs that could potentially affect the quality and performance of your application are found and fixed.

Mobile Testing Scope

Our mobile app QA testing is always conducted primarily against specifications, according to our customer’s individual requirements. The testing scope will typically include the following areas being tested: ease of use, speed & performance, connectivity, reliability, security, and any other requirements. The aim of our Mobile App QA Testing is not only to meet strict specifications, but also to meet any business requirements your customers may have provided. What we want is a fully functional and impressive app for you and your customers.

These cost effective services are provided by our test labs in Australia, Europe and Asia.

The primary areas of Mobile Testing are:

During the Functionality Testing stage, we ensure that all individual modules operate as they are specifically designed to. This includes both in an individual and integrated capacity, as well as ensuring that connectivity remains strong between all modules and the outside world. We prepare test scripts with test cases covering every type of requirement covered in a module specification, to ensure that your mobile app does everything it’s supposed to.
Functional Testing typically involves the following:

  • Identification of any applicable government regulations the software is expected to comply with
  • Identification of all functions the software is expected to perform
  • Creation of input data and determination of output
  • The execution of test cases
  • Comparison of actual and expected outputs
  • Checks on whether the application works as expected
  • Connectivity tests
  • Functionality testing of each individual module
  • Integration tests

Functional Testing does not imply testing a function or method – our Functional Testing gets even more in depth, and tests a slice of the functionality of the whole system (also known as end to end testing).

During User/Device Interaction Testing, we ensure that the application doesn’t negatively affect or interfere with any other application or function on the device.

The three main areas of this testing include:

  • Multiple Applications
  • Messages and Calls
  • Help and About

The speed and performance of a mobile application are important factors when it comes to the quality and satisfaction it will bring to end users.
Performance testing determines how your application performs in terms of responsiveness and stability, under a particular workload. It can also serve to measure, validate or verify other attributes of the system, such as scalability, reliability and resource usage. We bring many years of experience in Performance testing to ensure your application is delivered to your customers at the highest level of quality possible.

Load Testing
Load testing is the simplest form of Performance Testing. A Load test is usually conducted to understand the behaviour of the system under an expected load. This load could be, for example, the expected concurrent number of users of the application, performing a specific number of transactions within the set duration. If the database or application server are also monitored, this test can point towards bottlenecks in the application software as well.

Stress testing
Stress Testing is normally used to understand the upper limits of capacity within your system. This test is conducted in order to determine your application’s robustness under an extreme load. It helps to determine whether your application will perform adequately if the current load goes well above the expected maximum.

Device Health Testing is vital to the overall functioning of the device while the application is either running or idle. We run several different tests during this stage to determine whether every “normal” function of the device, from the most minute and obscure to the most basic and standard, is able to complete its purpose while the application is in either a working or an idle state.

Some of these tests include the following:

  • Application Stability
  • Event Handling
  • Memory Usage
  • Error Handling

Multiple Device Compatibility Testing determines whether your application correctly fits and functions on different screen sizes and operating systems. We have the necessary testing methods and devices to ensure most types of devices (of different sizes) are covered, leaving you completely assured that your application will be well received by all intended audiences.

The Interface Testing stage of our process encompasses several different tests. Each test ensures, depending on the environment or devices, that your application will be able to adjust and function as intended, without any delays, miscommunication, or hiccups.

The main areas of the Interface testing stage are:

  • Screen Displays
  • User Interface
  • Input/ Output
  • International Date and Time

Security Testing encompasses all measures taken throughout the code’s life-cycle, to prevent gaps in the security policy of your software or any underlying system vulnerabilities. These may have come about through flaws in the design, development, deployment, upgrade, or maintenance of the application, and are incredibly easy to overlook through internal or inexperienced eyes.

Common security threats are given below:

Category Threats/Attacks
Input Validation Buffer overflow; cross-site scripting; SQL injection; canonicalization
Software Tampering Attacker modifies an existing application’s runtime behaviour to perform unauthorized actions; exploited via binary patching, code substitution, or code extension
Authentication Network eavesdropping ; Brute force attack; dictionary attacks; cookie replay; credential theft
Authorization Elevation of privilege; disclosure of confidential data; data tampering; luring attacks
Configuration Management Unauthorized access to administration interfaces; unauthorized access to configuration stores; retrieval of clear text configuration data; lack of individual accountability; over-privileged process and service accounts
Sensitive Information Access sensitive code or data in storage; network eavesdropping; code/data tampering
Session Management Session hijacking; session replay; man in the middle
Cryptography Poor key generation or key management; weak or custom encryption
Parameter Manipulation Query string manipulation; form field manipulation; cookie manipulation; HTTP header manipulation
Exception Management Information disclosure; denial of service
Auditing and Logging User denies performing an operation; attacker exploits an application without trace; attacker covers his or her tracks

Security testing checks for any vulnerabilities or security holes in your software. If un-tested, these vulnerabilities leave your software and customers wide open to exploitation.

Automated tools associated with security detection are: vulnerability scanners, penetration testing tools and code analysis tools.

Regression Testing seeks to uncover any software bugs in the existing modules of an application after changes such as enhancements, patches or configuration changes have been made in a related module. The purpose of Regression Testing is to ensure that software changes have not introduced any new bugs in related modules of your application.

Regression Testing is performed to test an application efficiently, by systematically selecting the appropriate minimum set of tests, instead of re-running previously completed full tests. This saves you both time and money.

Regression tests can be done either manually or using automated tools.

In many critical applications with regulatory oversight, critical code must be independently reviewed and then compiled under supervision of the independent test lab. Source Code Review generally involves usage of input values, logic and parameters that determine output values, and looking for Trojan horses and malicious code. Source Code Reviews can be tailored to meet your individual requirements. We provide manual, as well as automated analysis of software.

Our consultants have enormous experience in reviewing critical code and conducting remote, supervised builds.