QA – Rockwolf – Android, IOS, WP mobile application development company https://rockwolf-apps.com mobile apps development service provider Wed, 24 May 2017 14:23:08 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 Specifics of Mobile app testing https://rockwolf-apps.com/specifics-of-mobile-app-testing/ Wed, 24 May 2017 14:23:08 +0000 https://rockwolf-apps.com/?p=36256

Every day many people use mobile phones. Some of them have even more than one phone. With the growing number of smartphones and tablets, mobile applications became more and more popular. Users expect that installed applications are simple, intuitive, and work stable. So mobile application development and its testing (as a part development lifecycle) are very important nowadays. With monitoring and testing software from such suppliers as Apica Systems, they can help these applications reach their full potential as they identify any performance issues that could hinder the expansion of the app. This type of testing also helps in protecting the application from potential data breaches. Businesses often employ services, to ensure the safety of their mobile applications.
Nonetheless, at times, mobile application testing tends to be more complex than testing traditional desktop and web applications. There are specific factors that need to be considered in the testing process:

  • screen orientation (landscape, portrait);

  • screen resolution;

  • different OS versions;

  • different devices’ manufacturers;

  • turning on/off GPS (in Android 6 and iOS GPS and can be enabled/disabled for each app).


Functional testing is testing performed to ensure the mobile application developed according to requirements. Basic Functional test scenarios are:
  • check work-ability of all functions;

  • check the correct work of all form fields;

  • check the correct work of the user registration and authorization process;

  • check that the page scrolling scenarios are being enabled in the application as necessary;

  • check correct buttons working (tapping on the buttons should be displayed and after tapping on the buttons the correct actions should be done);

  • check search field working (if it is implemented in app);

  • check the app navigation menu working;

  • check app reaction while tap navigation buttons (Home, Back; Resent App List);

  • check the correct app work when it is launched and when quit from it;

  • check app interaction with database;

  • check that the application allows necessary social network options such as sharing, posting and navigation etc.;

  • check the correct working with payment system (if it is implemented in app);

  • check that the user receives an appropriate error message in case of possible exceptions(for example: “No Internet connection” if Internet is turned off);

  • check that the installed app does not interfere with the normal work of other applications;

  • check that the app saves all settings on exit;

  • check that the app works correctly with all appropriate languages (if the app is multilanguage);

  • check if app can return to initial condition after system crash or hard device reboot;


It is important to conduct Usability testing. This kind of testing is a non-functional testing technique that is a measure of how easily the app can be used by end users. The main goal is to answer the question “Can people use this app design conveniently?”. For usability testing is necessary to:
  • check if the design ensure visual focus on the most important elements of each screen;

  • ensure that the buttons have the required size and be suitable to big fingers;

  • ensure that the buttons are placed in the same section of the screen to avoid confusion to the end users;

  • ensure that the buttons, which have the same function type also have the same color;

  • ensure that minimal keyboard input was provided;

  • ensure that user can return or cancel the action if press the wrong button;

  • ensure that the text is simple, clear and visible for user;

  • ensure that the app is free of technical text display issues such as: Text cut off / Text overlapping;

  • ensure that the optimal font size was found;

  • ensure that the app can be terminated from any state and that it resumes it’s working at the same state;

  • ensure that the contextual menus are not overloaded because it has to be used quickly;

  • check visual indication of the function execution progress (for example if user moves between screens);

  • check correct work of zoom-in and zoom-out functions;

  • check availability the user’s guide to help to understand the app and use it effectively;


It is necessary to check app stable working after external interrupts:
  • incoming and outgoing SMS;

  • incoming and outgoing calls;

  • removing tho phone battery;

  • disconnect and connection USB cable;

  • insertion and removal memory card;

  • connection and disconnection the wall charger;

  • receiving a file/picture via Bluetooth from another device;

  • receiving incoming email to device;

  • alarm clock alarm;

  • low battery notification;

  • connection and disconnection a wired headset;

  • connection to wifi and then 3G and on the contrary;

  • notifications from another apps;

  • device going into sleep mode;


The app must not crash or freeze at any time while running on the device. Of course it must be free of spelling errors.

These are only the most obvious cases for the testing. Of course, each app has it’s own specific users, technical complexities, domains. It must be considered during the testing process to get bug-free and useful applications.

]]>
Why do we need software testing? https://rockwolf-apps.com/why-do-we-need-software-testing/ Thu, 17 Dec 2015 13:35:01 +0000 https://rockwolf-apps.com/?p=36037

Software test engineer is more than profession. It is a proactive way of life and desire to make this life better for all, with feasible and effective ways. Goals of software tester are closest to the business objectives and strategic goals of the company in respect of software product and at the same time deep inside the company as a researcher. So its main qualities are the energy, knowledge and flexibility. In some way, testers are researchers from the world of software development. Therefore, easily recognizable symbol in the hands of the test engineer is a magnifying glass (lens), to observe the bugs.

Software testing is important and essential part of creating software products. It allows to find and fix defects, thereby reducing the risks and increasing product quality. Also, software testing checks parts of the user interface where the user could make a mistake or misunderstand the output of the program. This is so important because software is something that a lot of industries rely on for serious situations. For example, the frontline workers and the emergency services – look at these ems software solutions for an example. If something were to go wrong here so many things could go wrong, so the software has be to faultless.

Mobile testing is very difficult process with dozens of different screen resolutions, hardware differences, multiple versions of operating systems, different types of internet connections, sudden disconnections. Testing on multiple devices, browsers, operating systems can help ensure your product works for as many of your users as possible. As the mobile development quite impetuous process and testing of mobile applications should cover a large range of mobile devices, need to apply different testing techniques for providing the best test coverage. This will reduce the time required for testing, and provide good results of product quality.

Cost of an error in the release of the mobile application is high. Apps get on Google Play for a few hours, on AppStore for several weeks. It’s unknown how long the users will be updating. Defects in software products cause a violent negative reaction. Users submit low ratings and feedbacks. Then new users, seeing this, do not install the application. For avoidance of such result it is worth to implement testing on the project. It’s better to start the testing as early as possible, at the stage of definition and analysis of requirements in the life cycle of software development.

Requirements testing actually reduce the costs of development even without considering the issues of improving the product quality. Due to unclear or misunderstanding of requirements, developers often do a lot of extra work rewriting the same things several times, adjusting the units to each other, etc.

A software tester checks the requirements for completeness and compatibility. Usually, a project has initial requirements that contain inconsistent information. They need to be resolved before starting of development. Also, many project has incomplete requirements: not enough layouts of secondary screens, entry field limits, displaying of errors, etc. Non-obvious invisible things on layouts: animation, pictures and content screens caching, the app behavior in non-standard situations.

The cheapest bugs are bugs that were found in the product requirements before the implementation and even better ??? before the development of application architecture.

Software testing is creative and intelligent work. Creating correct and effective tests is quite difficult task. Basic principles of testing helps to understand how important this process is for developing and improving of software quality:

1. Testing shows the defects

Testing can show the defects in program, but does not prove their absence. However, it is important to create test cases that will find as many as possible bugs. So, with proper test coverage, the testing reduces possibility of defects in the software. Even if defects were not found in the testing process, it can’t be stated that they not exist.

2. Exhaustive testing is impossible

It is impossible to carry out exhaustive testing that would cover all combinations of user input and system states, except for very primitive cases. Instead, it’s better to use a risk analysis and prioritization, that allows to allocate the efforts of software quality assurance more efficiently.

3. The defects accumulation

Different modules of the system may contain a different number of defects – density of defect accumulation may vary in different elements of the program. Testing efforts should be distributed in proportion to the actual density of defects. Basically, most of the critical defects are found in a limited number of modules. This is a manifestation of Pareto’s Low: 80% of problems are concentrated in 20% of modules.

4. Pesticide Paradox

Running the same test cases all the time, you will face with the fact, that they are revealing fewer new defects. As the system evolves, old test cases will no longer work because many of the previously found defects were fixed. To overcome this paradox one needs to review and adjust the test suites to keep them relevant and thus allow to reveal as much defects as possible.

5. Misconception about absence of defects

The fact that testing has not found the new defects, does not mean that product is ready for release. Finding and fixing of defects won’t make sense t if the system would be inconvenient to use, and will not meet the expectations and needs of the users.

So, it’s better to adopt testing in the development process as early as possible to avoid negative feedback from users and be confident that the development has carried all the functional requirements to the product.

]]>