Selenium

 

All automation development and testing engineers are very well aware of ‘Selenium’ which is the de-facto testing framework for web applications. With the changing mobile landscape, Appium is the most used framework for testing mobile apps. But is it possible to use Selenium for mobile application testing? The direct answer is ‘Not really’ but there is a long and different approach to this answer.

 

Appium is the most popular mobile application test framework which can be used to test all native, hybrid, and mobile web apps for iOS and Android. It is also used for cross browser testing that involves testing on real devices and real browsers. The fact is that Appium has got its roots from Selenium and it uses JSONWireProtocol to interact with iOS and Android apps using Selenium’s webdriver.

 

Appium/Selenium Architecture

In a typical architecture, Appium is an HTTP server written in Node.js that produces and handles multiple WebDriver sessions. Appium starts tests on the device and gets commands from the main Appium server. The server is mainly the same as the Selenium server that gets HTTP requests from Selenium client libraries.

 

The image below is an example to show how test scripts can run on our pCloudy platform. Don’t forget to watch the video on ‘How to run Appium scripts on pCloudy‘ here.

Appium pCloudy

Now that we know a bit about Selenium and Appium testing framework, let us understand the new term in Android app testing – ‘Selendroid’ which is a framework based on Selenium for automated app testing.

 

In other words, Selendroid is a test automation framework which can interact with multiple devices concurrently that can be tested without any modifications. It is also known as “Selenium for Android” for testing native and hybrid mobile apps and mobile web.

 

Let us have a look at some of the features of Selendroid:

a) It is an Open Source and is free to use
b) It supports all Android versions
c) It supports Selenium as a scripting language
d) It supports webdriver compatible languages eg: Perl, Java, C#
e) It can work on both emulators and real devices
f) It works on all native, hybrid and web-based apps
g) It is effective while executing native and cloud-based apps as it supports Selenium grid
h) It is very easy to implement.
i) With its feature called ‘Hotplugging’, it can recognize the new devices automatically.
j) It has a built-in Inspector to simplify test case development.
k) It can support various Android API versions from Android API 10 to Android API 19.
l) It can fully support parallel testing by integrating a node into Selenium grid.

 

Selendroid Architecture:
Selendroid is based on the Android Instrumentation framework where tests are written using Selenium Webdriver client API, which is also called as Selenium 2 client. Hence, it can be fully integrated with existing Selenium frameworks. It is also compatible with JSON Wire Protocol.
Let us have a look at the architecture of Selendroid:

Selenium for Mobile App Testing

To conclude, Selenium has paved its path as a de-facto web test automation framework and Appium is providing high-level APIs that can be speedily adopted by Selenium developers, and it helps simplify the tests.

Automation Testing Advantages

With an incessant advancement in technology and mobile eco-space, it is becoming extremely challenging for companies to maintain the quality and efficiency of mobile app development. Testing being one of the major business critical activities is often neglected because of the time and cost limitations. This ultimately leads to a compromised product quality, dissatisfied customer, delayed delivery and an increase in the overall quality costs. The major reasons for an increase in costs can be an ineffective test strategy, underestimated effort of generating a test case, delay in testing or keeping pace with the device fragmentation. Test automation helps to better the development process of a mobile app in multiple ways. Test automation is generally associated with increased effort and the results pay off quickly in return.

 

Benefits of Automation Testing

 

1. Faster feedback: Automation of testing actually comes as a relief for development and testing engineers during different phases of an app development life-cycle. It helps to better the communication among coders, designers, product owners and rectifies the potential glitches with no delay. It also increases the efficiency of the development team.

 

2. Saves time: Writing codes in manual testing is a tedious process especially when the testers have to write long scripts while doing regression testing. The requirement of fast bug free delivery of apps is not fulfilled and companies have to suffer business losses.

 

3. Early Bug Detection: Unlike manual testing, bugs can be detected early during the development phase in an automated testing which saves a lot of time during Mobile app development life-cycle for both developers and testers.

Want to test your Mobile App?

Join pCloudy Platform!

 

4. Re-usability of Scripts: Testing automation makes the lives of the testers easy. The scripts can be reused with no or minimal changes in the script. These scripts can be used multiple times no matter if there are changes in the OS version of the device. The scripts and steps are stored and it helps to repeat the test without skipping or forgetting any step.

 

5. Running tests anytime, anywhere: Automated testing help test engineers to run their tests 24/7. If the test engineer has to leave early for the day, he can easily schedule the tests and leave the office. The test results will be ready by the time he logs in again next morning.

 

6. Distributed Test Execution: Automation testing cuts down complexities with its distributed test execution feature. It helps the testers to run a test script on more than one computer or shared network or servers simultaneously. So, only an automation testing tool is the requirement rather than multiple tools.

 

7. Robust and simpler reporting: Automation testing gives us the benefit of tracking each test script. All the test scripts executed will be visible in visual logs. The reports generated can evidently show the number of test scripts already executed, scheduled, their reported bugs or issues and the ways in which they have been fixed.

 

8. Testing Capabilities: Automated testing offers an unmatched and huge testing capability. The mobile app needs to be tested on multiple devices, OS versions, screen sizes etc. which can be efficiently done through automated testing and not by manual testing. In fact, it is almost impossible to get perfect results through manual testing.

 

9. Better Test Coverage: Test automation can easily execute thousands of different complex test cases during every test run providing coverage that is impossible with manual tests. It can only be possible through automated testing as it can run test scripts on multiple computers with varied configurations. It can look inside an application and see memory contents, data tables, file contents, and internal program states to determine if the app is functioning as expected.

 

10. Less Manual Effort: If an enterprise has implemented automation tools for testing, then it can accelerate the process and reduce the manual effort multi-fold. Less number of people will be required for a project and they can be utilized for different projects.

 

11. Improves Accuracy: We have been saying this time and again that automation testing overcomes the shortcomings of manual testing. It has improved the accuracy to a great deal by giving error-free results unlike manual testing where testing is error-prone, delays the delivery and increases the cost. It is especially a boon in stress testing where getting error free results in manual testing is almost impossible.

 

12. Return on Investment: One of the most important advantages of automation testing is the return on investment to the organization. Every enterprise analyses the return it would get out of its investment and then would go for creating a test automation framework. Automated testing offers immense returns in terms of faster testing, error-free results, less manual effort. If the enterprise has automated testing tool, then the testing would be more efficient and accurate and easy.

 

13. Volume: You can run your tests on more than 500 devices in automation testing which is impossible in manual testing.

 

One of the most important business advantages of automation testing is the return on investment to the organization. There are many advantages of automation testing tools as they are a crucial component in the DevOps toolchain. The importance of automation testing comes into picture when you have to run the test cases with different data and conditions several times.

 

Conclusion

 

Automation testing not only helps in saving time and improving accuracy, it does value addition to all the stakeholders involved in the app development lifecycle. Although testing automation offers such huge benefits, but many organizations have not adopted it in its entirety because of its initial cost associated with its configuration. With Agile testing and DevOps methodologies being widely followed in the IT industry, it is advisable to automate your testing processes completely with renowned automated testing tools to get the best results.

Want to test your Mobile App?

Join pCloudy Platform!

For more information check out this video: