Compare Robotium and AndroidDriver? - robotium

How would you compare Robotium and AndroidDriver tool for mobile application testing?
Can anyone explain me the detailed statistics?

I have use android driver of the appium testing.
Robotium can test both blackbox and white box.
AndroidDriver is for blackbox testing, which means that if you want to assert the activity, you cannot do with it.
Robotium is a very powerful tool, and the biggest problem is the cross process.

This is very broad question but I will talk about three aspects:
Type of applications, different OS and different development languages.
I would discuss appium as implementation for the WebDriver (Selenium).
Usually we are consider three types of the mobile apps - native, hybrid and web apps. Robotium provides a good support for the native application. Robotium 4.0 supports hybrid application. Appium provides in addition a good support for the mobile web application. Especially I would recommend appium if you have to test a web application on other platforms (Linux, Windows). In this case you may use almost the same code.
We use Robotium for the Android devices only. You may use appium for the different OS like iOS.
One of the biggest advantages of Appium is that you can write your Appium code on many programming language (e.g. Java, Objective-C, JavaScript, PHP, Ruby, Python or C#, etc)
To summarize: use Robotium in case you need write tests fast and you are interesting in the Android app only. Use appium if you need wide device/OS supporting and Java not your prefered language,

Related

QA Testing automation tools to learn: Selenium, Protractor, Cypress

I have some programming experience and want to switch to QA roles that suit my skills better, I have more knowledge of Java but some Python.
I am wondering if I should focus on Selenium that I have some knowledge of or Protractor or Cypress that are considered as the latest standards?
I am more of a front end guy as a developer.
Also, I generally use guru99, tutorialspoint or w3schools to get started. Any other great resources for free or less expensive for quick learning for these topics?
Will cloud upgrades affect this learning process?
Please advice.
Selenium is still the most wide used web UI automation tool, having a lot of tutorials for any level of experience etc. Also, once you know one tool, you will be able to learn other similar tools in the future easily. Also, Selenium supports and mainly used in programming languages you already know while the other tools you mentioned using JavaScript. So, I'd advice you to start (and then continue) with Selenium.
I think Protractor is being dropped by Angular in favor of Cypress.
Please see
The State of end-to-end testing with Angular
...we’ve decided to deprecate Protractor
and #cypress/schematic.
Component testing
Also consider that Cypress has first-class component testing (as well as e2e testing) which has better speed than e2e but better coverage than unit testing.
See Quickstart Angular
and Cypress Component Testing vs Angular Test Harness

Is there a way to run a specific version of a browser in a sandboxed fashion when using WebDriver?

At the moment, it is possible to run the same test on different browser assuming that you have all those browsers installed on your machine and that those browsers have a version compatible with your drivers version.
Is there a way, such as a library or everything else, that allows us to run the same test on different versions of the same browser, downloading those browsers on demand (bit like WebDriverManager does with the drivers)?
We want a test harness runnable on every machine and every operating system and we don't want to rely on any browser already installed in that machine.
A tool that allows us to choose on what browser and what version we want to run the test, it downloads a sandboxed or virtual version of that browser, and it runs the test.
I heard also about Saucelabs, but the systems under test are not available by publicly available URLs because they are in a dev environment.
I thought we could use Docker, but in that case we have to use a Headless browser, and we want to keep to possibility to see what the test is actually doing.
Thanks in advance.
No longer do you need (as we did in the dark old days) to manage our own infrastructure and have machines running instances of browsers and configure a Selenium Grid.
SauceLabs is a Selenium Grid in the cloud and is most definitely the recommended approach here. They offer a wide (ever growing) array of platforms.
With all that infrastructure taken care for you in the cloud the problem changes to one of correctly providing SauceLabs the DesiredCapabilities
I would highly recommend you also use Jenkins and its Sauce OnDemand plugin which allows you to select your target environments and at the same time integrate cross device testing into your build pipeline.
Constructing the DesiredCapabilities objects for SauceLabs in your test code is not a straightforward exercise however and can lead to hard to maintain spaghetti code if not done with a lot of discipline.
There are some NuGet packages that solve the SauceLabs DesiredCapabilities problem and integrates with Jenkins as well.
Saucery2 for NUnit2 (NuGet, Source, Example)
Saucery3 for NUnit3 (NuGet, Source, Examples)
SauceryJ for JUnit4 (Source, Example)
Saucery is DesiredCapability factory for SauceLabs. Full disclosure: I wrote Saucery and maintain it.
Saucery pulls in all the dependencies you would want allowing you to write tests against:
Desktop browsers (simply extend SauceryBase)
with Selenium;
or native app tests against:
IOS (simply extend SauceryIOSBase); or
Android (simply extend SauceryAndroidBase) devices
with Appium.
The home page provides benefits and a How To.

Is it possible to write automation tests for nwjs app?

I am currently working on node-webkit based desktop app. I was searching for a way to do automation testing for this . But most of the automation tools required a server to start up but in my case i have on but it runs in the chromium that comes by default. Is there a way to automate UI acceptance test for nwjs apps.
Take a look at the NW.js Wiki under How to run node webkit's test cases
You will need to setup the chrome driver in order to use selenium for example
Once you have those, check out Yaniv kessler's blog post on how to Automate NW.js UI testing using mocha.

Automated testing for Flash/Flex application

I have to do Automated testing of Application based on Flash builder, after searching on this topic i came to know that flash builder includes Testing API's, and these API's supports HP QTP so After Including Testing API's in my application and making test cases Scripts based on VB scripts I can do automated testing, how should i do automated testing of application based on Flash builder.
You should take a look at Flex Mojos, which is a Maven Plugin. You can use it for automated builds and tests as well.

For testing windows applications - Is there any tool developed in Java?

I am familiar with jwinauto for windows applications however I am looking for a better tool to automate the test of Windows Applications developed in Java or JRuby or Jython.
I have seen white for automating tests on web application and windows application by accessing the controls and automating them. However I want to find a white equivalent for windows applications (written in Java) preferably that is open source.
FEST is a nice tool to test Java UIs.
You can use the robot framework. It is written in python and can be run with jython.
Robot framework is a keyword driven testing framework. Keywords can be written in python, but if you're running with jython you can also create keywords out of POJOs (plain ol' java objects).