This article gives a detailed description of mobile and Web app testing. It is a must-read for anyone who wants to make a career in testing.
Mobile testing is basically the testing of an application on a mobile platform. Such applications are developed to run on mobile devices. They are mainly tested for functionality, usability and consistency. Nowadays, mobility solutions have taken over the market. People don’t want to switch on their laptops or PCs for everything, but would rather use their handheld devices to perform tasks quickly. Hence the mobile solutions that are delivered to clients should be tested very well.
Some open source tools that can be used for mobile app testing are Appium, Calabash, Money talk, Robotium, etc.
Web app testing
This is basically software testing that focuses on Web applications. It is a software testing technique exclusively adopted to test the applications that are hosted on the Web, to which the application interfaces.
Some open source tools for this are Selenium, JMeter, WebLOAD, Grinder, OpenSTA, etc. Among these, Selenium is the most popular.
The importance of testing a project before delivery
Testing is necessary because nothing is perfect in this world. We all make mistakes, i.e., in the process of software development, bugs often do emerge. We learn from our mistakes and once identified, we iron out the bugs. Some of these mistakes are unimportant, but some can be expensive or dangerous. So to prevent major mishaps, we need to test everything that is delivered to customers.
Some reasons for mobile testing
1. It is important to ensure that the application does not result in any failures because that can prove very expensive in the future or in the later stages of software development.
- Proper testing ensures that bugs and issues are detected early in the life cycle of the product or application.
- If defects related to requirements or design are detected late in the life cycle, it can be very expensive to fix them, since this might require redesign, reimplementation and retesting of the application.
2. It is very important to ensure the quality of the product. A quality product delivered to customers helps in gaining their confidence.
3. Testing is essential since it ensures that the customer finds the organisation reliable and is satisfied with the application.
4. Testing is necessary to provide customers high quality products or software applications that are low in maintenance and, consequently, result in more accurate, consistent and reliable results. High quality products typically have fewer defects and require lesser maintenance, which means reduced costs.
5. Last but not the least, testing is required to stay in the business. In the case of a product organisation or a startup which has only one product, the poor quality of software may result in lack of product adoption, which may result in losses that the business may not recover from.
I will share my personal experience here. We had to deliver an e-commerce project to our client. But we didn’t catch one major bug and the project went live. After some hours, somebody from the client side caught the bug and fixed the issue. But the damage had been done by then.
The issue was a one-time coupon, which because of the bug, could be used multiple times by a single customer. Due to this one major lapse the client lost millions of dollars in the space of a few hours. It escalated this issue to our company, and charged us thousands of dollars in fines. This is how lack of testing can result in huge losses.
Are mobile and Web testing the same?
The answer is certainly no. The most obvious difference between mobile app testing and Web app testing is that mobile apps are usually meant for a larger number of users, more diverse devices, and an increasingly broader range of communication than Web apps. The complexity level is more in mobile apps as compared to Web apps. In fact, the former are continually becoming increasingly complex, as they deliver more and more functions on mobile devices. A mobile application may run on several devices, including a smartphone, tablet, smartwatch, heart pacemaker, lock system, or fitness tracker.
The differences between mobile and Web apps
Devices and OSs: Desktop apps are usually targeted at specific platforms. Web based applications make it a bit more challenging because of the presence of browsers. Mobile applications, on the other hand, take the complexity of supported platforms to the next level because of the addition of devices. Mobile apps need to work on all types of devices (smartphones, tablets, and phablets) from many companies like Samsung, Sony, Nokia, HTC, Apple, etc – all fielding various models on different platforms (iOS, Android, Windows, BlackBerry, etc.). On top of that, new devices are hitting the market so often that it becomes impossible to cover all the major devices.
Multifaceted user interfaces: The user interface in desktop and browser based applications is typically limited to the mouse and keyboard. Mobile applications on the other hand are trying to make user interfaces as fluid as possible.
Application types – Web, native or hybrid: Native apps are created for use on a platform like a mobile or a tablet. Mobile Web apps are server-side apps to access websites on mobiles using different browsers like Chrome, Firefox, etc, by connecting to a mobile network or Wi-Fi network. Hybrid apps are a combination of native and Web apps. They run on devices or offline, and are written using HTML5 and CSS.
Agile development: Mobile apps are installed, uninstalled, or updated more regularly than desktop applications. As a tester in the mobile world, you have to be on top of the changes in the next revision of any OS or platform, and be clear about how these might affect an application.
Network: Web app testing is done mainly from one place with the help of LAN or Wi-Fi. Mobile applications rely on the network – the tester needs to test how the application responds to 3G, 4G, weak signals, no signals, powerful signals, when switching from cellular to wireless and vice versa, or when the user is moving at different speeds all these variations can affect how the application behaves.
Important aspects of mobile and Web app testing
|Operation: This relates to how apps interact with the phone, and how they react when any request is sent. This mainly depends on two factors.
|Functionality: This is the core functionality required for an app to work properly. For example, does your app need Internet connectivity? What happens to an app when a user performs an action that the app is not designed to handle?|
|Installation: This is about whether the app is downloadable to all devices. Can it be installed and uninstalled properly without any error?|
|Versatility: This relates to how an app behaves in different situations or on different platforms. For example, how does it behave on a device with a different screen resolution, on a different mobile OS, etc.|
|Data security: This is the most important aspect of mobile testing, during which the tester checks what data the app saves, collects, processes and sends. The app needs to work well through all these tasks.|
|Link/URL testing: This relates to checking whether the correct link is opening and whether this happens properly.|
|Cookies testing: Testers check how the app behaves when enabling and disabling cookies.|
|Functional testing: During this process, testers check what core functionality the app requires to work properly, and how this is implemented.|
|Usability testing: System navigation is checked in this part. For example, how does the app respond when clicking on any link, do the correct responses emerge, etc.|
|Performance and security: Like in mobile testing, here too the tester tracks the risk of leaking private data. For example, what data is the app asking for and what is it doing with that data?|