Explore topic-wise InterviewSolutions in .

This section includes InterviewSolutions, each offering curated multiple-choice questions to sharpen your knowledge and support exam preparation. Choose a topic below to get started.

1.

What are the tools used in Appium for debugging?

Answer»

We generally use log data ( a log file is maintained WHEREIN whenever an error occurs, it is logged into this file) to see the CAUSE of the ISSUE, where the failure is occurring. So for iOS – iPhone configuration utility & for Android Monitor.bat, etc can be used. If you give the developer the logs from these tools, they'll be able to figure out what's CAUSING the problem quickly.

Useful Resources:

Automation Testing

Android 

2.

What are the basic requirements for writing Appium tests?

Answer»

Following are the basic requirements for writing Appium tests:-

  • Driver Client: Appium's driver client simulates the behaviour of a user in mobile applications. Appium tests can be built with the aid of a client library, which wraps the stages of a test and sends it to Appium over HTTP.
  • Appium Session: Because appium tests are run within a session, it's crucial to set up an appium session first. Once the automation of a session has come to an END, it will be terminated and the user will have to wait for the next session.
  • Desired Capabilities: In order to start an appium session, it's critical to design some parameters known as desired parameters. Platform version, platform name, device name, and many others are among these parameters. This also aids in defining the type of automation that the Appium server is EXPECTED to provide.
  • Driver COMMANDS: Appium provides the ability to BUILD tests using a LARGE and expressive set of commands.
3.

Mention the tests which you cannot do with an emulator but can do it with a real device.

Answer»

Following are a list of tests that we may conduct on a real device but is not possible in an EMULATOR:-

  • TESTING for interruptions during phone calls and messages.
  • Performance of the application when the BATTERY is low.
  • Effect of the application on battery usage.
  • A scenario where the memory card is MOUNTED or unmounted from the device.
  • Testing INVOLVES the use of Bluetooth.
4.

Do you think that automation testing can be a complete replacement for manual software testing?

Answer»

No, automation testing cannot be a complete replacement for manual software testing. This is because the tools used are meant to execute tests once they are set up and proper automation requires as little human PARTICIPATION as feasible. As convenient as it is, it should not be used to replace manual testing; rather, it should be used for REPETITIVE activities such as load testing, which requires thousands of virtual users. Engineers should not automate test scripts if they are only intended to run on a periodic basis, nor should they automate code reviews or BUG testing for new software BUILDS that may require human engagement to detect errors. To sum up, we can say that large-scale, repetitive jobs are better suited to automation.

5.

Differentiate between Appium and Selenium.

Answer»

Selenium: Selenium is an open-source (free) automated testing framework for validating web applications across multiple browsers and platforms. Selenium Test SCRIPTS can be written in a variety of programming languages, including Java, C#, Python, and OTHERS

Following are the differences between Appium and Selenium:-

Based on USAGE:

  • Appium - Appium is a popular open-source for automation testing, notably in native applications such as Android and iOS apps. It can ALSO be used in hybrid applications that run in both Android and iOS environments. This type of automation testing assures that no systemic issues arise as a result of any specific patch installation once the app has gone live in production. It assures complete integration testing and avoids a significant amount of manual labour on the TESTER's part. By using Appium, users can easily avoid manually testing each and every feature of the entire application every time.
  • Selenium - Selenium is a common automated testing tool that is built for any type of web application. It is compatible with all current popular browsers and operating systems such as Windows, Linux, and MACOS.

Based on Design:

  • Appium - Appium is primarily intended as an HTTP server because it will handle any type of mobile app. However, it is primarily following or developing the same in node JS, rather than utilising standard Java or JS code. As a result, developers who want to utilise Appium for automated testing in any type of mobile app must first install Node JS on their system before using the Appium tool.
  • Selenium - Selenium is primarily used for maintaining automation logic on web applications or webpages. It is created in such a way that it may interact with the application quickly and easily by using browser activities.
6.

Differentiate between Appium and Calabash.

Answer»

Calabash : Calabash is an automation framework for automating user INTERFACE acceptance tests. It works with a variety of mobile systems, including iOS and Android. This can be used to automate a variety of mobile applications, including native, mobile WEB, and hybrid.

Following are the differences between Appium and Calabash:-

BasicAppiumCalabash
Programming Languages SUPPORTEDJava, Python, JavaScript,.Net, Ruby, and all other major programming languages are supported by Appium.The Ruby programming language is the only one supported by Calabash.
iOS mobile web pageIt necessitates the creation of a custom safari application for automation.Calabash does not support it yet.
Native iOS applicationIt requires only the iOS UI Automator. It requires iOS instrumentation for this. 
Hybrid iOS applicationIt necessitates the USE of custom UI commands and the iOS UI Automator.It necessitates the use of custom UI commands as well as an iOS framework.
Hybrid Android applicationOnly the Selendroid application is required.Android instrumentation is required - calabash android.
Android mobile web applicationIt can be used to automate only the chrome browser.It is not supported by Calabash.
Native Android application Both Android UI Autometer and Selendroid are required by Appium.Android instrumentation is required - calabash android.
7.

Differentiate between open source tools, vendor tools and in house tools.

Answer»
  • Open Source Tools: Open source tools are frameworks and apps that are free to use. ENGINEERS construct this TOOL and GIVE it free on the internet for other engineers, DEVELOPERS, or enthusiasts to develop and use, which is incredibly beneficial for aspiring developers.
  • Vendor Tools: Vendor tools are created by companies that have a license to utilize their tools and codes. Technical support is accessible via the internet for these tools.
  • In House Tools: In-house tools are the tools that a corporation develops for its own USAGE and self-development. They are never made available to the general population.
8.

Differentiate between Appium and Robotium.

Answer»

Robotium: Robotium is a testing framework for Android that automates TEST cases for native and hybrid apps. The developer can use Robotium to construct robust automatic Graphical User Interface (GUI) testing cases for Android applications. A developer might also design a functional, system, and acceptability test scenario, which would cover a wide range of Android activities.

Following are the differences between Appium and Robotium:-

  • Appium is a cross-platform testing tool that works on both iOS and Android devices. Robotium, on the other hand, is limited to Android.
  • Robotium only supports the Java programming language, but Appium supports a variety of languages.
  • The Appium tool does not require any application source code or libraries, WHEREAS the Robotium tool does.
  • Appium can test native, WEB, and hybrid mobile apps, whereas Robotium can only test native and hybrid mobile apps.
  • Many frameworks, such as Selenium, are supported by Appium. Robotium, on the other hand, is incompatible with Selenium and many other frameworks.
  • You don't have to reinstall Appium EVERY time you make a little modification. HOWEVER, a simple change in Robotium code necessitates a complete rebuild.
9.

Differentiate between Appium and Selendroid.

Answer»

SELENDROID: Selendroid is a cutting-edge test automation framework for testing native and hybrid Android mobile apps. The test is created using the Selenium 2 client API and is driven by the user interface of a mobile or web app. Selendroid is a dynamic mobile testing framework that can be used on emulators as WELL as real Android smartphones, with the option of integrating as a node in Selenium Grip for parallel testing and scaling.

Following are the differences between Appium and Selendroid:

  • Appium is an open-source automation solution that works on both iOS and Android, whereas Selendroid is an Android-only test automation framework.
  • A minor modification in Appium does not necessitate reinstalling the APPLICATION. However, Selendroid requires the application to be reinstalled even after a minor modification..
  • Appium has a LARGE and active COMMUNITY of active developers, whereas Selendroid does not have one.
  • Appium is compatible with a wide range of frameworks and languages. Selendroid, on the other hand, works with Jenkin and Selenium.
  • Appium does not necessitate the use of application source code or libraries, unlike Selendroid does.
  • Appium supports all Android APIs. Appium uses UIAutomator for tests that run on APIs greater than or equal to 17, and Selendroid for tests that run on older APIs. Selendroid, on the other hand, has different versions corresponding to the different versions of the Android APIs.
10.

Explain how Appium works.

Answer»

When we install Appium on our PC, it also installs a server that exposes the REST API. It accepts commands and connection requests from the client and executes them on iOS or Android devices. It responds to HTTP requests with HTTP responses. It RUNS the user interface of the app using a mobile test automation framework to perform requests. As an example -

UIAutomator is used for Android API 16 or higher, while Selendroid is used for Android API 15 or below. Apple Instruments is used for iOS.

Working of Appium on Android:

Appium sends the command to a UIAutomator script running on the device on Android. UIAutomator is an Android native UI automation framework that allows you to run Junit test cases straight from the command line on the device. Despite the fact that it is written in Java, Appium can be run from any WebDriver enabled language.

Android makes use of bootstrap.jar, a TCP server. It's used to deliver test commands to an Android device, which UIAutomator then executes.

In the above IMAGE, we can clearly SEE the architecture of Appium used for running on Android devices.

Working of Appium on iOS:

As Android uses UIAutomator, iOS uses UIAutomation. Similar to the Android, Appium PROXIES the command to a UIAutomation test case running on the Mac instruments ENVIRONMENT. Apple provides this application "instrument" that performs various activities like building, profiling, and controlling iOS apps. On the other hand, it also has an automation component where you can write commands in JavaScript. It uses UIAutomation API to interact with Application UI. Appium uses the same libraries to automate iOS Apps.

In the above image, we can clearly see the architecture of Appium used for running on iOS devices.