Tag: Mobile Application Testing
As the reign of mobile applications and mobile devices continue, we, as part of this revolutionary trend, have to keep ourselves updated about everything latest in the mobile world, don’t we? Of course we do. We also have to be aware of everything we need to in this regard. I’m talking about mobile applications and their making. Continuing my endeavour to make you guys acquainted about the many processes and resources that go into making a mobile application, here I’m going to give you some more information on mobile application testing.
In one of my previous articles, A winning mobile testing strategy: The Way to Go, I had explained the various steps involved in the process of testing and the article, and Mobile Application Testing: Challenges and the Solution had the major challenges faced by testers.
Now, for those of you who read through the testing process, in case you are wondering “what other kinds of testing are there?”….
Here is a list of the most commonly used kinds of mobile application testing. Do keep in mind that all of these tests are conducted to perfect different aspects of an application. Hence, ideally a combination of some of these would probably be the best way to go.
- Functionality testing – This is actually the most basic kind of testing for any application, as it ensures that the basic functions of the app work as intended. As is the case with any user interface based application, mobile applications work on the basis of several human interactions as well. All of these functions need to be tested for their accuracy. Considering the challenges faced by testers, like the wide range of mobile devices for example, functionality testing is usually a time-consuming and intensive process if it is done manually. However, there are various automation tools available in the market for functional testing as well.
- Usability testing – This is conducted in order to ensure that the mobile app is easy to use and provides a good user experience to the customers. It basically tests the app from three angles:
Satisfactory user experience – The user acceptability level or comfort level of the application and also others affected by its use.
Effectiveness – The level of benefits achieved through the app in comparison to the level of resources expended for it.
Efficiency – The accuracy of the application in terms of its ability to achieve specific goals in specific environments. - Performance testing – This covers testing of performance of the application from the client side, server side as well as network. The client side will focus more on things like, responsiveness of the application, user interface elements etc. It also involves testing with different types of data connections, WIFI, levels of battery consumption etc. There are again a number of tools available to carry out testing in these areas.
- Compatibility testing – This is conducted to see whether the application works as intended in different devices, Operating systems and their different versions, browsers and screen sizes.
- Security testing – This is carried out to test whether the application is capable of storing and protecting information.
- Memory testing – This is important to ensure that the application maintains optimum memory usage throughout its life. Mobile devices usually tend to have very limited memory and the operating systems also have a tendency to stop applications that use too much memory, which might lead to problems with user experience.
- Regression testing – This is done in order to bring to light any bugs or errors that may exist in already built modules of a project after making changes such as improvements, enhancements or configuration changes and the like.
There are also other kinds of testing, like services testing, user interfaces testing, operational testing etc. which are also done in some cases depending on the kind of mobile application. Apart from that, the most commonly used tests are listed above. As a general rule, functional testing is often conducted first followed by performance testing and the rest. Like i said before, not all of these tests might always be conducted in order. It all depends on the application. The basic point is that testing is a huge and significant part of mobile application development, and at no cost can this be avoided.
Mobile Application testing can be quite a daunting task sometimes, what with the number of mobile devices being used these days and also the various operating systems. You need to achieve maximum accuracy and efficiency out of an application, and you need to ensure that through testing. Hence, the testing process can definitely be said to be the most essential and critical part of mobile application development. You need to have a perfectly thought out testing process and be extremely careful and particular about each step in it. Previously, we had discussed the various challenges involved in testing on our blog Mobile Application Testing: Challenges and the Solution.
Let us now see the different steps that need to be followed for a winning mobile testing strategy:
A winning mobile application testing strategy
To state an example, one of our clients in the retail sector, needed an application for carrying out their operations. Here are the steps that we followed in testing and delivering a perfect solution for them;
- Identification of the types of testing – The application was one that needed to work on a range of devices, like tablets and notes and was handled by a number of agents. Hence, the testing process had to be quite diverse. We decided to carry out a combination of manual testing, automation testing and also testing on the cloud.
- Selection of mobile devices – This involves two basic decisions: selecting the gadget or device model, and whether to use an emulator, a simulation device or other such devices. In our case, we decided to use a simulation device, called Device Anywhere. You can select from a range of devices like MobiReady, ResponsivePX, ScreenFly etc. The choice can be made based on the costs involved and the scope of the application.
- Manual and Automation testing – We normally use the SCRUM process of project development and testing. Hence, we used this approach here too, with sprints lasting up to two weeks. After the completion of two weeks, a particular logically completed module was given to the testing team or Quality Assurance team to run the tests. This was where regression proved to be kind of difficult, as every two weeks, with the delivery of a new module to the testing team, they also had to make sure that the previously tested modules were still functioning as intended. For this purpose, we used a set of automated tasks that could run smoothly and used it on each of the built modules, which helped in saving a good amount of time. And for tracking defects we also used JIRA.
Quality Assurance Support – As required by the SCRUM system of project development, the development team constantly provided the necessary support to the QA team throughout the process of testing. This contributed a huge deal in timely delivery of the project.
Beta testing – This is where the application gets tested on real world users, real devices, an actual network connection and a wider geographic area. This is conducted for the purpose of user acceptance testing, that is, to see whether the app is accepted by actual users. We used a set of field agents for this, and had them go through every part of the application to ensure that every single bug was fixed and that it had all the necessary features and functionality. - Cloud testing – The cloud provides a web-based environment in which we can test, deploy and manage mobile applications. There are many advantages associated with cloud-based testing, like reduced costs setting up real-world test conditions, elimination of unstable test conditions, wider scalability, and real-time results. For our application, we carried out cloud-based testing as well to ensure accuracy.
- Performance testing – This is where the functionalities and the performance of the application is tested. This involves testing the responsiveness, the stability, the features, and the resource usage of the application and its comparison with set standards. For our application, these tests were thoroughly carried out for each completed module.
- Device testing – After all the previous tests, the application was tested in multiple versions of the Operating System required. This was to ensure proper functioning of the app even in the older versions. The Device Anywhere simulation tool was used for this purpose again.
- Test summary – At the end of the process, a test summary was created which had the details of all the important information received from the testing, like the performance details of the testing equipments used, quality of the testing process steps, statistics derived in various stages etc. It also includes details about the kinds of testing conducted and the duration of time required to complete the process. This report is also helpful in analyzing whether the testing equipments meet the performance standards and whether they are fit for further use.
These steps helped us deliver an efficient mobile application to our client and solved the problems in their business.
An ideal testing strategy will have all the above-mentioned steps, as we believe that ‘thorough testing’ means testing the application in all possible scenarios and conditions. This strategy has always helped us achieve excellence in all projects that we deliver.
We live in a world where mobile devices literally rule, not just in the case of business enterprises and professionals, but also the consumers and the common man. Whether it is for consumer applications or enterprise applications, the use of mobile devices has been on the rise and has reached its peak since the last few years. It has definitely been ages since mobile devices became more than just calling devices. Now, they have surpassed all odds to become even virtual assistants that do what they are told.
Mobile applications are basically the reason why mobile devices became such a rage at one point of time. They still continue to be a huge part of people’s lives because of the same reason; innovative, useful and well developed mobile apps! It is when a mobile application proves useful or entertaining (as the case may be depending on the mobile app), and becomes effective and popular (it having served the intended purpose and attracted more number of users), that it can be said to be successful. Several statistics show that almost 93% of app developers target smartphones for their applications and over 80% of the world’s population uses smartphones. This shows how important it is to have awesome yet reliable mobile applications. And such successful mobile applications require a lot of thought, time, and a hell lot of effort. That being the scenario, it would be worthwhile to discuss how important testing is, as part of mobile application development.
Mobile Application testing
Testing of mobile applications varies according to the kind of platform for which they are created, that is, the process might be different for native applications, hybrid applications, and web applications. This is one of the most crucial and important steps in the process of development, as it is here that you see how successful your application is and how far you need to go while finding anomalies.
A typical testing process usually starts with creation of test cases, then performance of user acceptance and finally device testing. Before getting into the testing process and the different kinds of testing, let’s take a look at some of the challenges of mobile application testing.
Challenges
Testing of mobile applications is actually more challenging than testing a web application due to the following reasons:
- Multitude of mobile devices – There a number of mobile devices available these days, ranging from smartphones to tablets to ipads with varying sizes, screen sizes, and configurations. This makes it difficult for the testers to assess the quality of their application. For example, an application that works well with one device cannot be guaranteed to work just as well in another device.
- Different OS versions – The different Operating Systems like iOS, Android, and Windows send out upgrades to their newer versions often, which results in several versions of the same OS being in use at one point of time. For example, iOS users have been known to upgrade to their latest versions pretty quickly, whereas Android user upgrades have been found to be kind of slow, but the fragmentation is wide. This makes it necessary for the app developers and testers to maintain support for older versions and older APIs as well.
- Test interfaces – There are obviously a number of test interfaces, like mobile emulators and simulators, which prove to be quite important when performing regression testing (more on this a little later). The basic function of these devices is to enable testing of mobile applications in environments and scenarios which are not real. Now, the advantages in functionality and features of such interfaces are somewhat limited in scope and are not always reliable. They are after all hypothetical situations. They cannot be substituted for the real world.
- Connections – The different standards for data connections available, like 3G and 4G and also WIFI, pose a challenge for mobile application testers sometimes. The kind of connection in which the testing is carried out might not be similar to the one that the application is being used in (depends on the user, of course). Hence, what might work or seem perfect in a particular connection, might not be so in another scenario. As the user moves around, the connection type might vary, and so will the application’s capabilities. Some data carriers carry out their own filtering processes as well, which again affects the performance of the app. Hence, it is important to test the usage of bandwidth, as different carriers may support different data volumes.
- Testing tools – There are also a variety of testing tools available. The best ones need to be used for the process in order to attain maximum accuracy and efficiency out of the mobile application. These test automation tools may be free or paid. You need to choose one by taking into consideration several factors like the operating system for instance.
Considering these challenges, it might seem to be quite a daunting task to carry out the testing process. The question is, how to overcome these challenges and arrive at a perfect solution for testing an application to make sure your application is perfect too.
Now that we have discussed the challenges in testing, let us get into the process. One that we at Fingent believe, is a solution that overcomes most of these challenges and brings out the best in any application.
The testing process – Step-by-step
The testing process usually starts by identifying the types of testing required for the application, depending on the kind of platforms that it is required to work in. Only then can the process be neatly laid out or planned and executed. The mobile devices, that is, whether to use an emulator etc. also need to be figured out beforehand.
Here are the steps that need to be followed in an ideal testing process.
- Identification of types of testing required
- Selection of mobile devices
- Manual or automated testing
- Beta testing
- Testing on cloud
- Performance-based testing
- Device testing
- Generation of test case file and summary
A thorough study and understanding of the testing process, along with the needs and requirements of the application will ensure a 90% success rate with testing. That put together with accurate usage of testing devices and tools will give a sure shot efficient and successful mobile application.