Mobile application testing can be quite a challenge for a Quality Assurance (QA) testing team. Mobile applications often are required to function on a variety of devices featuring different hardware capabilities, configurations, and specifications. There are several types of testing that focus on different areas of the application, as well as automated testing. Some even believe that automated testing may replace manual testing almost entirely. However, automated testing is still not able to cover all the types of testing that manual testing does.
Manual testing is a sapient activity which requires human judgement. As a QA team tests an application, they use implicit knowledge to judge whether or not something is working as expected. This enables them to find extra bugs that automated tests would never find. Intuition can also lead team members to explore areas that may not have been scheduled for testing.
Manual QA testing can spot things that automated testing might miss.
Manual testing is also helpful for finding visual layout issues and trivial bugs which wouldn’t be found by an automated test. Usability issues are also identifiable by manual testing that cannot be discovered through writing and running automated test scripts. It is often impractical to automate 100% of test cases due to various constraints such as functionality that implicitly will have to be tested manually (Eg. Captcha), tool restrictions, complex technology, support to technology by tool, etc. See below for our thoughts about which type of testing is more appropriate for each area of testing.
Key types of Mobile QA Testing: Manual or Automated Testing?
- Functional Testing – Functional testing makes sure that the application is working as described by the requirements. This testing is usually focused on the user interface and features of the application. This type of testing is best performed manually.
- Performance Testing – This testing checks the performance and behavior of the application under conditions like low battery, bad network coverage, low available memory, and simultaneous access to application’s server by several users. This type of testing can sometimes be performed with automated testing.
- Memory Leakage Testing – When a computer program or application is unable to manage the memory it is allocated the application and overall system may experience poor performance. Memory leakage testing is crucial for the proper functioning of an application because mobile devices are often very limited in their available memory. This type of testing is best tested manually and with automated testing.
- Interrupt Testing – While functioning, a mobile application may be interrupted by incoming calls, text messages, or network coverage outage and recovery. Applications should be able to handle interruptions by entering a sleep state and resuming afterwards. This type of testing is best tested manually and with automated testing.
- Usability testing – Usability testing verifies that the application is getting a favorable response from users and achieving its goals. Often this is done with a test group of potential future users. This type of testing can only be done manually.
- Installation testing – Most applications have to be downloaded and installed from a store such as the Apple App Store or Google Play. Installation testing confirms that the installation process functions correctly. This type of testing can only be done manually.
- Certification Testing – Many mobile platforms offer a certificate of compliance which an application can acquire by successfully conforming to the guidelines established by the mobile platform. This type of testing is often done with automated testing.
Because many important kinds of testing cannot be done automatically, it is not likely that manual testing will be replaced entirely by automated testing in the near future. However, automated testing can be powerful tool in a hand of manual tester to reduce efforts, time, and cost. Automation can be particularly effective in regards to performance, memory leakage, and interrupt testing. But the only way to thoroughly test an application is an experienced QA team with the right tools.