RPA’s contribution to functional test automation

July 29, 2020

By Hadrien Poquet

Testing is one of the key elements for the success of IT projects, which have undergone many transformations over the years. Thus, whereas they used to take place only at the end of V-cycle projects, they now take a central place at each phase of the V-cycle in agile methods.

With agility also came new development techniques such as TDD (Test Driven Development) and BDD (Behaviour Driven Development), which contributed to the growth of automated testing. The next major change could concern the latter through RPA, for which automation is the core business.tion of knowing which system, process or tool can potentially be developed to improve productivity within companies, but how, with what means and at what cost.

State of the art

In its article “State of open source testing”, which includes various elements of a survey concerning more than 1,500 testers, Tricentis provides us with an accurate vision of the state of the art in test automation. We learn which programming languages are used as well as the different related tools such as Selenium or TestNG.  The mastery of the latter can lead to some obstacles related to their technicality and/or the need for skills upgrading, especially since, if we take the case of functional tests, the people in charge are mostly not developers. Acquiring this knowledge implies an investment in time which, at a time when the “time to market” is increasingly reduced and makes it the main obstacle to test automation. As this article points out, these difficulties could lead companies to turn to easier to use and deploy solutions such as RPA.

RPA contributions

RPA (Robotic Process Automation) allows us to simulate the actions of real users of a site or an application and to automate them as we seek to do in functional test automation projects.

Previously, a profile with a technical appetence was necessary for this type of project because it was necessary to learn at least to use a programming language and a test framework. In addition to the cost in time, this technicality could easily put off and push away the “business” profiles when they are the most familiar with the needs that the solution must meet. Today RPA simplify all this because this solution called “no code” or “low code” requires little to no programming knowledge and brings together all the necessary elements in the same solution. The teams are thus operational much more quickly because only one installation is necessary without the need for advanced or complex configuration for a lambda user, as the “pom.xml” files of Maven for example can be. This configuration file, which allows among other things to define the webdriver that will be used in the project, is composed of tags organized according to a specific hierarchy that must be scrupulously respected to work as shown in this extract:

In RPA solutions, this one is installed through a simple plugin that will only need to restart the browser by clicking on the browser of your choice:

This ease of use will be found in the very heart of the project in the way it interacts with the user interface. Indeed, when you want to use a graphical element, you must first find it. To do this, you will have to look for a unique way to identify it via HTML tags for example and there again many difficulties can appear especially if the page contains several nested “frames”. Thanks to tools such as UiPath, the user simply has to drag and drop the action he wants to perform and then indicates the element on the screen, the tool will take care of finding the right selector.

For example, let’s say you want to automate your connection to the Outlook website. You’ll need to go to “https://outlook.live.com/owa/”, open the development tools and then look for the selector to find the button to identify yourself. Once found, if you are coding in Java, you will have to write: “driver.findElement(By. LinkText(“Sign in”)).click();”. Not only it’s not very useful at first glance, but this line alone won’t be enough because you have to create a class, a method, instantiate the driver etc… For those of you who want to know all the necessary elements, I invite you to follow the first 30 minutes of the “Selenium WebDriver with Java” course created by Angie Jones and available in link. With UiPath and its Studio, things are done much faster. First you install Studio (which will take most of the time), then you create a new process. We only have to do 3 actions to make everything complete and usable immediately after, like this:

1.   Indicate the website
2.   Choose the action from the left menu
3.   Indicate the target

Now some of you may think that there is nothing new here and that doing the actions one by one will quickly become boring. Indeed, solutions such as Selenium IDE already provides an answer to this problem with a tool that automatically creates scripts based on user actions. Here again, RPA changes the game by deploying this technique at a higher level through solutions like UiPath, which offers 6 different recording possibilities, depending on whether you are testing a software or a website, in order to provide the most relevant solution when needed. The strength of this solution comes not only from the multiple choices it offers but also from its expertise in OCR and AI which combined will bring a very high stability to the tests thus reducing costs and maintenance time thanks to the “Ui Explorer” tool (image below). This tool will tell you if your selector is still good after modification, and if not, it will suggest you to repair it. To make sure you have no doubt, you can also circle it in red.

Obviously maintaining tests in a new tool when others are already being used like Xray would be counterproductive. UiPath, one of the RPA leaders, thought about this by providing through its “test manager” application deployed as part of its “UiPath Test Suite” tool, a plugin allowing to interface its solution with Jira and to import the “issues” directly from it. This integration with other test tools does not stop there. As almost all applications are intended to be used and tested on mobile phones, UiPath has also set up a solution in partnership with Appium (a company specialized in this field) to allow this. Finally, UiPath having sought to create the most complete solution possible, it is therefore natural that an association with CI/CD platforms such as Bamboo has been planned in the coming months.

Conclusion

The RPA offers many advantages for test teams, especially those in charge of functional testing, thanks to its ease of use and the time savings it can generate. UiPath has perfectly perceived the potential that can be generated by its products and has therefore chosen to develop a complete solution, easy to use and perfectly integrated with the different actors involved throughout the life cycle of a project. However, this solution must be taken with care since these tests must remain at the top of the testing pyramid, and will not replace either unit tests or integration tests.

References

https://www.tricentis.com/state-of-open-source-2020/ https://testautomationu.applitools.com/selenium-webdriver-tutorial-java/

Hadrien Poquet, Technical Analyst at ADNEOM Paris

Categorised in:

This post was written by Suzanne Berthou