Organizing a Test Automation Project with Ranorex Test Suites

Oct 31, 2011 | Best Practices

Organizing a Test Automation Project with Ranorex Test Suite

The Ranorex test suite enables you to easily manage your test cases, as well as build robust data-driven tests. Your test automation modules can be shared, adopted, and used within your team. Learn why Ranorex module projects are the best way to group your test modules and reuse them in different test suite projects within your teams.

Different Views

In order to perform professional testing of an extensive software product, it can be beneficial to separate the views of the testing process.

On the one hand there might be a team consisting of e.g. a Test Automation Engineer and some testers. This team is responsible for covering all conceivable work flows and dividing these workflows into small, reusable modules.

On the other hand there might be a tester. The tester, for his part, is responsible for testing specific work flows processed by the software under test. As the team already has provided all necessary modules, the tester only has to put the desired modules together, to fulfill the required work flow.

Different Views

Separation of Modules

As mentioned before, it is useful to separate specific work flows in small self-contained modules in order for them to be reused in different scenarios.

These modules can either be recordings or user code modules which will be prepared by a team to allow the tester a rapid generation of different workflows.

To allow a more general approach the team can add variables to the particular modules. The tester only has to provide values by parameters or a data source and to bind the specific columns of this data source to the specific variables.

For more details about data driven testing and parameter usage please have a look at following chapter in our user guide: Data-Driven Test Automation

Separation of Modules

Multiple Projects, One Solution

DLL Type Projects

To allow collaboration of a team and the tester, the team has to provide the generated modules to the tester.

This can be established by providing Ranorex Test Suite libraries holding specific test modules.

These libraries can be referenced in the Test Suite project of the tester and all modules held by these libraries will be available for the tester to add to his specific test cases.

Test Suite Library

These libraries include all recording and user code modules generated by the team as well as the repository holding the elements the modules are accessing.

Let’s have a look at Ranorex Studio and how such a test project with several Test Suite libraries would look like.

First of all the Test Suite libraries have to be referenced to make them reusable for the tester.

This can be done by opening the .Net Assembly Browser“ tab at the Add Reference” dialog (Project->Add Reference) and simply adding the generated DLL files. After this step the DLLs should be viewable in the reference list in the project view pad.

Reference list in Project View

The referenced Test Suite libraries are also viewable in the Ranorex Module pad with all their modules and variables.

Module Browser View

The tester can now simply drag and drop the individual modules from the module browser to his Test Suite to construct the specific test cases.

Drag/Drop Modules form Module Browser to Test Suite

EXE Type Projects

To handle different test scenarios you can add several Test Suite configurations for your Test Suite.

By modifying the Test Suite configurations, different test cases or folders in your Test Suite can be selected to be executed.

Have a look at following chapter of our user guide to learn more about Test Suite configurations: Running a Test Suite

If modifying the Test Suite configurations does not fulfill the requirements, it’s also possible to add several Test Suite projects to one solution.

Each of these Test Suite projects in a solution will then generate an executable.

Exe Type Projects

Ranorex Solution with several Test Suite Projects

Additional to the automatically generated ones you can add other project relevant files to your projects, like your application under test or files holding the test data provided by your data connectors.

To ensure that these files will be available within the test project by distributing it on other machines – as described in the next chapter – you have to open the properties tab of the added file and set the “Copy to output directory” option to “Always”.

Execution on Runtime Machines

The generated test projects can be distributed to every machine, which has at least the Ranorex Runtime License installed.

To execute a test project on a runtime machine, you have to copy the executable (*.exe), the Test Suite file (*.rxtst) and the used libraries (*.dll) to a folder on the machine.

These files are by default already in the output folder of your project.

There are two different methods of executing a test project on a runtime machine:

Execution on Runtime Machines

Working on the same solution with different users

As illustrated in this article, using libraries it is possible to share a whole Ranorex Solution between the team and several testers. The team provides libraries in form of DLLs which are referenced by the tester in the Test Suite project.
That means everybody (testers and team) is working on the same Ranorex Solution.

Working on same Ranorex Solution with different user

To make this scenario work comfortable, it’s recommended to use a source versioning system like SVN (which integrates in Ranorex Studio), having the advantages of

  • making the history of all changes made on your project visible
  • providing backup functionality
  • preventing security issues on network shares (source code checked out locally)

to name some of them.

You can find some hints regarding Ranorex and SVN settings at this blog post.

Using source versioning system

By following the mentioned approaches it will be easy for you to organize a professional testing environment for your extensive software project.

Related Posts:

Alpha Testing vs Beta Testing: A Comparative Analysis

Alpha Testing vs Beta Testing: A Comparative Analysis

In software development and engineering, testing plays a pivotal role in ensuring the final product is up to standard. The two most prominent testing stages are alpha and beta testing. To understand these crucial stages, it's necessary to learn about the significance...

What Is a CSS Selector?

What Is a CSS Selector?

  Building a website from scratch is the surest way to completely control its look and feel. But to do that, you need knowledge of HTML, CSS, and JavaScript. One way to shorten your development time is by using CSS selectors to customize your site. We'll cover...