Skip to content

Software Development News: .NET, Java, PHP, Ruby, Agile, Databases, SOA, JavaScript, Open Source

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager! Latest News
Syndicate content
Updated: 7 hours 9 min ago

Beta 1

Thu, 05/11/2017 - 15:43

The post Beta 1 appeared first on Ranorex Blog.

Categories: Vendor

5 Common Challenges When Using Selenium

Wed, 05/10/2017 - 13:10

There’s no denying the importance of Selenium when it comes to web browser automation. While its many automation benefits are obvious, there are common challenges both testers and developers alike encounter when using Selenium. In this blog post, I want to address five common challenges and show you how you can solve them with the Selenium WebDriver integration in Ranorex Studio.

Identifying dynamic content The challenge

It can be tricky to identify content with dynamically generated attributes using Selenium. Dynamic content is based on dynamic identifiers (IDs). These IDs are generated anew every time an element is displayed, which makes it difficult to address the web element based on this attribute. For example, the IDs in web applications based on the “Yahoo User Interface Library” look something like “yui_3_8_1_1_13679224741219_543”. This ID changes every time the webpage reloads. In this case, you cannot use the ID locator to identify the element.

How to solve it

Ranorex comes with a set of RanoreXPath weight rules that automatically decide which attribute to use to identify objects based on particular web libraries. If you want to resolve a specific problem when identifying web elements, you can add a rule to this set. Please have a look at the blog post “Automated Testing and Dynamic IDs” for detailed instructions. Once added to the rule set, you can create your script-free or code-based test scenarios and run them on your WebDriver endpoints. As a result, the object repository will be automatically filled with robust repository items.

RanoreXPathWeight Editor

Dealing with timing issues The challenge

Another challenge, especially when testing dynamic web applications, is handling timing issues – for example, when a query takes longer to provide the desired output. In Selenium, you have to manually implement a wait mechanism in code to overcome this issue.

How to solve it

Ranorex automatically creates search time-outs for each item in the object repository, providing a built-in safety net for possible timing issues. You can edit the search time-out of a repository item in Ranorex Studio (context menu item Properties). For further details about repository time-outs, please have a look at the chapter Waiting for UI Elements – Repository Timeouts in our user guide. In addition to the automatically added search time-outs, you can explicitly wait for a specific element to appear or disappear using a Wait For Exist or a Wait For NotExist action in the actions table. You can get an overview of all possible actions as well as detailed information about specific actions in the section Types of Action Items in our user guide.

Wait For Action

Maintaining web elements The challenge

Test maintenance is dreary and, unfortunately, unavoidable. Especially in complex test scenarios, it can be difficult to maintain web elements addressed in your automated tests. When using a pure Selenium WebDriver implementation to automate your test scenarios, the same web element may be used multiple times. If this element changes, you then have to alter every occurrence of it manually. Even if you have used the page object pattern to manage web elements, you have to find the element that has changed and fix it in code.

How to solve it

In Ranorex, you can use the central object repository to manage your web elements. Every time an element in your application under test changes, you only have to edit it once and all changes will be automatically applied to all occurrences of this web element. To do so, select the desired element in the repository and open its RanoreXPath. Simply re-track the element using Ranorex Spy to successfully identify the element for future test runs. Implementing data-driven testing The challenge

Selenium WebDriver doesn’t have a built-in data-driven testing mechanism. This means you have to manually connect your automated tests to external data sources, read the data out of these sources and execute your test scenario with the added data if you want to data drive your tests.

How to solve it

Data-driven testing is already an integral aspect of Ranorex. Without any additional preparations, you can choose between several types of data connectors (simple data table, CSV file, SQL database and Excel file). Simply use the data from these external sources, to automatically execute your test cases with different data sets. You can find detailed instructions on how to perform data-driven testing in the dedicated user guide chapter.

Data-Driven Testing

Reporting The challenge

An important aspect of any test automation environment is getting a detailed and easily understandable report for each test execution. When you use Selenium WebDriver, there are several possibilities to achieve a reporting mechanism. All of which, however, have to be implemented in code using third-party integrations.

How to solve it

Using the Ranorex Selenium WebDriver integration, you don’t have to worry about reporting. When you execute a website test on a WebDriver endpoint, a detailed Ranorex report will be automatically generated. This report provides you with a comprehensive overview of the entire test execution flow. As it is a JUnit compatible report, you can easily integrate it into any CI process.


As you can see, the matchless Selenium WebDriver integration in Ranorex Studio 7 allows you to finally use the best of both frameworks to your advantage and address common Selenium WebDriver pain points.

How the Selenium integration works Download Trial

The post 5 Common Challenges When Using Selenium appeared first on Ranorex Blog.

Categories: Vendor

Ranorex 7.0 Webinar – Questions Answered

Thu, 04/13/2017 - 13:08

Let me kick this blog post off by saying thank you to all of you who have made the Ranorex 7.0 Webinar such a great success. It was a pleasure presenting the highlights of our latest software update, and I have received a lot of valuable questions. As I did not get to address all of them during the webinar, I’d like to take this opportunity and answer the most popular questions in this blog post.

Can the JUnit compatible report be integrated in Jenkins or other CI tools?

The JUnit framework is widely accepted and natively supported by most CI environments, such as Jenkins, TFS and Bamboo. Please read this blog post to find out how you can integrate Ranorex automated testing into Jenkins.

JUnit report

How does the new WPF plug-in work with 3rd party controls and other technologies?

The WPF plug-in in Ranorex 7.0 was designed to provide out-of-the-box support for major 3rd party controls, such as Telerik, DevExpress and Infragistics. Even mixed technology modes like WPF controls embedded in WinForm hosts and vice versa, are supported and can be identified completely configuration-free.

WPF plug-in

Can you convert an existing object repository with WPF items to the new WPF paths?

RanoreXPaths generated by the WPF technology plug-in in Ranorex 7.0 are much leaner and, therefore, not compatible with those generated in previous versions. If you want to convert your object repository to the improved WPF plug-in, you will have to re-identify your controls. We strongly advise you against mixing repository elements created with different WPF technology plug-in versions, as this will cause your test runs to fail.

WPF tests created with a previous Ranorex version will continue to work in the exact same way as they did before. Ranorex 7.0 scans your object repositories for items representing WPF elements. If existing repository items representing WPF elements are found, the legacy mode will be automatically activated for your solution.

For more information about the new WPF plug-in, and to find answers to frequently asked questions about the changes to this plug-in, please refer to this site: Ranorex 7 WPF Plug-In FAQ.

Can we execute Selenium tests written in Java or only those written in C#?

Ranorex is a .NET API for test automation and, therefore, Java test development is not supported. However, if you have existing Selenium tests written in Java, you can integrate them in your Ranorex test report. Head over to our blog “How to Use Ranorex with Existing Selenium Tests” to find out how!

Selenium test report

Can you switch endpoints programmatically?

Yes! You can utilize the Ranorex.Host class in order to define the current host at runtime. Ranorex.Host.Local defines the current computer executing your test suite. Defined endpoints can be queried via the Ranorex.Host.AvailableHosts functions. Ranorex.Host.MakeCurrentHost(string name) switches the automation root at runtime and Ranorex.Host.Current returns the currently active automation root. Head over to our API documentation for further details.

Can I reuse my existing Ranorex tests, which I have created entirely in code without using the object repository and run them on endpoints?

Once you have set-up your endpoints, you can easily execute existing Ranorex tests on these endpoints using the new endpoint parameter (more information available here).

Selenium WebDriver Endpoint

Can I perform cross-platform web tests using the same test case in Ranorex 7.0?

Yes, that is not a problem at all. Using the Selenium WebDriver integration, you can run the same web tests across Linux, macOS and Windows now. Simply create endpoints for the platforms you want to run your tests on and then start the same test on these endpoints. Ranorex will do the rest for you.

Are you supporting Selenium Grid or cloud providers such as SauceLabs and BrowserStack?

While there is a general support for grids integrated in Ranorex Studio, we are currently working on tightening the integration with grid providers and latency management in the cloud. You can expect an update on this matter in a future release.

What about the support of Microsoft Edge?

Microsoft Edge is now fully supported again through our Selenium WebDriver integration. Simply use the Open Browser action in the Ranorex Studio action table and run your test on an endpoint where Edge is installed and the Microsoft WebDriver is in place.

Automate Edge Browser

Is there any difference to recording web tests in previous Ranorex versions? Do I have to re-record my tests through the WebDriver?

There’s no difference. You have to record web tests using our plugin-based system and can use the new WebDriver integration to replay these tests. You just have to ensure that a test executed on a WebDriver endpoint only contains actions which are supported by Selenium WebDriver.

What is the difference between this Selenium WebDriver integration and Ranorex Remote?

The Selenium WebDriver integration utilizes the WebDriver protocol to retrieve the UI element information of your SUT and processes it locally on your computer. You can use this integration for web tests only. Ranorex Remote executes tests for desktop, web and mobile applications on remote Ranorex Agents. Basically, it is possible to execute a Ranorex test suite on a Ranorex Agent that accesses a WebDriver endpoint. The advantage of using Ranorex Agents is that the test suite is not executed locally on your device anymore, whereas the Selenium WebDriver integration enables you to run web tests on previously inaccessible browsers and platforms.

Which Selenium server versions are supported?

We’ve tested Ranorex on the Selenium server versions 3.0.1 and 3.3.1. Older versions have not been tested, but basically all future versions should be compliant.

What are the system requirements to execute Ranorex tests and which environments are supported by the Selenium WebDriver integration?

You can find a complete list of Ranorex-supported operating systems on our system requirements page. Ranorex tests can access and interact with Selenium WebDriver endpoints on Windows, macOS and Linux environments. Please refer to this site to find out more about the Selenium WebDriver system requirements.

Selenium supported browsers

Which license do I need to execute a Ranorex test on a Selenium WebDriver endpoint?

You will need at least a Ranorex Runtime License to execute a Ranorex test on a Selenium WebDriver endpoint. If you would like to learn more about Ranorex licenses and pricing, please refer to our pricing page or contact our sales team.

Download Free Trial Watch the 7.0 Webinar

The post Ranorex 7.0 Webinar – Questions Answered appeared first on Ranorex Blog.

Categories: Vendor

7 Reasons Why to Use Ranorex 7.0

Tue, 04/04/2017 - 12:07

It’s that exciting time of the year again – we’re thrilled to announce the release of Ranorex 7.0. With this major software update, we’re introducing our matchless Selenium WebDriver integration, leaner test suite structure, JUnit compatible reports as well as an enhanced WPF plug-in. Are you wondering how you will benefit from this release? Here are 7 reasons why you should definitely use Ranorex 7.0:

1. Selenium WebDriver integration in Ranorex Studio

Selenium WebDriver is a platform-independent open source test automation framework that automates browsers and integrates in nearly all development environments. Due to its many automation benefits, it has gained a significant user base over the past few years. As a W3C Candidate Recommendation, Selenium is on the fast track of becoming a standard for web test automation.

We recognize the importance of Selenium for the future of web testing and are proud to announce that with Ranorex 7.0, you can access Selenium WebDriver with the powerful Ranorex tools! While other test automation tools simply trigger existing Selenium tests, Ranorex provides a much deeper integration and makes Selenium WebDriver part of the Ranorex Core API.

How the integration works

2. Ability to access Selenium with the powerful Ranorex tools

Automating tests in Selenium is time-intensive and requires programming skills. Once you’ve invested time in setting up the automation framework, it can still be rather tricky to deal with issues such as object-mapping and time-out handling. As Ranorex directly integrates Selenium WebDriver on a plug-in level, you can access Selenium WebDriver with the powerful Ranorex tools. The benefits?

  • Create web tests using script-free or code-based Ranorex tools
  • Instantly automate dynamic UI elements and handle synchronization issues
  • Handle data-driven testing, parameterization as well as reporting in a single test suite
  • Run your Ranorex tests on Selenium WebDriver endpoints




3. Plug-in free web testing across all major platforms and browsers

Selenium is renowned for its unparalleled platform and browser support. By upgrading to Ranorex 7.0, you can finally run your Ranorex tests on all Selenium-supported browsers and operating systems, including: Chrome, Firefox, Internet Explorer, Edge, Safari, Microsoft Windows, macOS and Linux.

Selenium supported browsers

4. Leaner test suite structure

Complex test scenarios can be rather difficult to organize. We’ve now revised the test suite structure, making it leaner and easily readable. Smart folders replace traditional folders and add lots of new functionality to their organizing nature. That’s why you are now able to easily bind data sources and set iterations without the need of nesting test cases. You’d like to upgrade existing Ranorex solutions? Read this blog to find out how!

lean test suite structure

5. JUnit compatible reports

Due to the new and improved test suite structure, reports in Ranorex Studio are now JUnit compatible, so you can easily integrate your test execution and reporting into continuous integration systems and ALM tools! Find out how you can create JUnit compatible reports.

junit report

6. Enhanced WPF plug-in

As the WPF framework is rather flexible and powerful, it can be tricky to find the elements you want to automate. We’ve reimagined the way you can automate WPF applications, so you will benefit from:

  • Configuration-free WPF object recognition
  • Easier maintenance of the object repository
  • Revised support for 3rd party controls: Infragistics, Telerik & DevExpress

wpf plugin

7. News updates on Ranorex Studio start page

Never miss new features, updates or Ranorex-related news! Now you can find all important announcements on your Ranorex Studio start page. Download Ranorex 7.0 and see for yourself!

Ranorex Studio start page

Download Free Trial Watch the 7.0 Webinar

The post 7 Reasons Why to Use Ranorex 7.0 appeared first on Ranorex Blog.

Categories: Vendor

How to Use Ranorex with Existing Selenium Tests

Thu, 03/30/2017 - 14:35

With Ranorex 7, we’ve introduced support for the Selenium WebDriver protocol for web testing. Testers can now use Ranorex to automate their web sites on a wide array of browsers and operating systems, all without the need for plugins or coding. What a time to be alive!

How it works

The Ranorex WebDriver Integration utilizes the WebDriver Wire Protocol to communicate with browser instances via their individual driver implementations. If you have used Selenium before, you might know that the Selenium API sends JSON data over the WebDriver to execute actions on an endpoint.

Fundamentally, Ranorex does the same, but instead of Selenium APIs, we use our own automation technology and the RanoreXPath. This results in many benefits for you as a tester:

  • Object identification via Ranorex Spy is simple and fast
  • Instead of coding page objects, you can keep and maintain all of your web site’s elements in the Ranorex Repository
  • You can record your tests on your local computer instead of coding them
  • We generate a report for you out of the box

The above points show that Ranorex brings a lot of value to your existing Selenium test infrastructure. But what about your existing Selenium tests?

In this blog post, I am going to show you how you can execute an existing Selenium test suite with Ranorex Studio and integrate its results into the Ranorex report. By virtue of Ranorex being a test automation framework, we can leverage the .NET programming language and the new reporting improvements to run an existing test suite either before or after the Ranorex Test Suite and combine the results of both into one report.

Starting Selenium tests programmed in Java

For this example, I’ve created a simple Selenium Test in IntelliJ IDEA utilizing Maven and the Conductor Selenium framework. It consists of two simple test cases and some page objects that automate the Ranorex Web Testing Examples page. This example project will serve as our demo throughout this chapter. You can download it here.

The two test cases “testFillForm” and “testValidateForm” are very simple and only serve as a proof of concept. “testFillForm” validates the existence of two input controls and fills them with values, without doing anything else. “testValidateForm” fills the AJAX form on the test page and validates the AJAX response according to the inputs. I’ve included a false positive in order to get a successful and a failed test result.

Reporting test results using Maven

Depending on the environment you are using, there are different ways to export the test results. In my example, I am using the Maven Surefire plugin to generate output for the test results. If you want to integrate Surefire as well, you need to extend the POM file of your project to include the plugin:


Copy code to clipboard

You can configure Surefire to generate reports exactly the way you need. However, in its default configuration, it creates an XML and a TXT file with the results. For this example, we’re sticking tothe defaults, as we’re going to use the XML file later for reporting.

Executing a Java test with Ranorex

After successfully running the two unit test cases in your Java IDE, you can invoke Maven to build the project and run the test cases in the project. To do so, open the Windows command line and run Maven from there.

mvn clean test surefire-report:report

Copy code to clipboard

Maven will build the project and run the test cases at the end. Thanks to the Surefire plugin, we can pick up our report from the working directory (under target/surefire-reports/). The plugin should have generated 2 files, an XML file with detailed information as well as a TXT file with a more user-friendly summary. If the command executes as expected, we can use Ranorex to do this for us.

Ranorex can run external applications from within Recordings using the Run Application action, which starts the program in question in parallel. However, to execute our Selenium test suite, we are going to operate from outside the Ranorex Test Suite and want it to run before the Ranorex test starts. That’s why we are going to create a new Code Module in our Solution and name it SeleniumTools. In this Module, we add a new function to run a test synchronously.

using System.Diagnostics;
    public void RunTestSynchronized(string command, string args, string workdir)
        Report.Info("Selenium", "Starting " + command + " with Arguments " + args + " in " + workdir);
        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = command;
        psi.Arguments = args;
        psi.WorkingDirectory = workdir;

            var proc = Process.Start(psi);
            Report.Info("Selenium", "Done!");
        catch(Exception e)
            Report.Error("Selenium", "Could not start Selenium Test\n" + e.Message);

Copy code to clipboard

The above code causes Ranorex to launch the application supplied via command with the arguments in args and run it in the working directory workdir. Furthermore, Ranorex will wait until the process completes. The reporting engine is invoked as well so that we have some information in the Report about the externally started application.

Parsing the Results

Now that we can successfully start our external environment with our existing Selenium test, we also want to include its results in our Test Suite. As stated before, Apache Surefire generates a report that we can use in order to verify the success of our test cases. Let’s have a look at the structure of the XML that Surefire generates:

<?xml version="1.0" encoding="UTF-8" ?>
<testsuite tests="2" failures="0" name="com.ranorex.selenium.TestPageTest" time="8.794" errors="0" skipped="0">
        <property name="" value="Java(TM) SE Runtime Environment"/>

    <testcase classname="com.ranorex.selenium.TestPageTest" name="testFillForm" time="1.62"/>
    <testcase classname="com.ranorex.selenium.TestPageTest" name="testValidateForm" time="7.174"/>

Copy code to clipboard

The above XML is from the report generated by the recording we just executed. We can see the following interesting parts:

  • The number of tests in the test suite
  • The number of failed tests in the test suite
  • The number of errors that occurred during execution
  • The number of skipped tests

The individual test cases are listed below the properties block. Both of them show each test case’s name and package. If a test case fails, it will look like this:

  <testcase classname="com.ranorex.selenium.TestPageTest" name="testValidateForm" time="7.676">
    <failure message="Text does not match! [expected: Array
    [value1] =&gt; Hi from
    [value2] =&gt; Ranorex
    [checkbox2] =&gt; true
    [color2] =&gt; bluex
)] [actual: Array
    [value1] =&gt; Hi from
    [value2] =&gt; Ranorex
    [checkbox2] =&gt; true
    [color2] =&gt; blue
)]" type="java.lang.AssertionError">java.lang.AssertionError: Text does not match! [expected: Array
    [value1] =&gt; Hi from
    [value2] =&gt; Ranorex
    [checkbox2] =&gt; true
    [color2] =&gt; bluex
)] [actual: Array
    [value1] =&gt; Hi from
    [value2] =&gt; Ranorex
    [checkbox2] =&gt; true
    [color2] =&gt; blue
        at org.junit.Assert.assertTrue(
        at io.ddavison.conductor.Locomotive.validateText(
        at com.ranorex.selenium.TestPageTest.testValidateForm(
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
        at java.lang.reflect.Method.invoke(
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(
        at org.junit.internal.runners.statements.FailOnTimeout$
    <system-err>Starting ChromeDriver 2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9) on port 10532
Only local connections are allowed.

Copy code to clipboard

Above you can see my false positive. The values shown do not match – intentionally. That’s quite a lot of useful information that we want to see in our Ranorex report as well, since we want to give as much information to our developers as possible. In order to do so, we need to parse the XML and invoke the Reporting API to add that information.

Ranorex Test Suites and Test Cases

In order to integrate the Surefire results meaningfully into the Ranorex report, you first need to understand how Ranorex Test Suites correlate with the reporting engine. A Ranorex Test Suite starts the reporting autonomously and assumes all test cases are provided exclusively by itself.. This naturally does not play well with outside test cases. In order to overcome this, you need to decide whether you want your existing Selenium tests executed before or after the Test Suite, and have them inserted accordinglyinto the report. In the following example, we are going to invoke the reporting engine manually and insert our Selenium test results into the “Before Test Suite” block.

We start by adding a new function to our Code Module. This method will load the XML file once the Selenium test suite completes and inserts the results from it into the Ranorex report.

public void ParseExtTestResults(string workdir, string fileName)
            XmlDocument xdoc = new XmlDocument();
                xdoc.Load(workdir + fileName);
                XmlNode xtestsuite = xdoc.SelectSingleNode("/testsuite");
                XmlNodeList testcases = xdoc.SelectNodes("/testsuite/testcase");
                string sHead = string.Format("External Selenium Test completed. {0} out of {1} test cases successful",
                                             Int32.Parse(xtestsuite.Attributes["tests"].Value) - Int32.Parse(xtestsuite.Attributes["failures"].Value),
                TestReport.BeginTestEntryContainer(1, "Selenium Test Suite (external)",  ActivityExecType.Execute, TestEntryActivityType.TestCase);
                TestReport.BeginSmartFolderContainer("Selenium", sHead);
                Report.Info("Selenium", "Parsing Results...");
                foreach(XmlNode n in testcases)
                    Ranorex.Core.Reporting.TestReport.BeginTestCaseContainer(n.Attributes["classname"].Value + "." + n.Attributes["name"].Value);
                    Ranorex.Core.Reporting.TestReport.BeginTestModule("Module " + n.Attributes["name"].Value);
                    if(n.SelectSingleNode("failure") != null)
                        Report.Failure("Selenium", "Test case " + n.Attributes["name"].Value + " (" + n.Attributes["classname"].Value + ") \n" +
                    Report.Success("Selenium", "Test case " + n.Attributes["name"].Value + " (" + n.Attributes["classname"].Value + ")");
            catch(Exception e)
                Report.Error("Selenium", "Error reading Results\n"+e.Message);

Copy code to clipboard

Bringing everything together

Now we have everything we need to run our Selenium test suite from within Ranorex. In the Program.cs file, create an instance of your SeleniumTools class and call the two newly created functions before the TestSuiteRunner call.

        public static int Main(string[] args)
            // Uncomment the following 2 lines if you want to automate Windows apps
            // by starting the test executable directly
            //if (Util.IsRestartRequiredForWinAppAccess)
            //    return Util.RestartWithUiAccess();

            Keyboard.AbortKey = System.Windows.Forms.Keys.Pause;
            int error = 0;
            SeleniumTools st = new SeleniumTools();
                "clean test surefire-report:report", 

                error = TestSuiteRunner.Run(typeof(Program), Environment.CommandLine);
            catch (Exception e)
                Report.Error("Unexpected exception occurred: " + e.ToString());
                error = -1;
            return error;

Copy code to clipboard

Checking the results

When you hit the Run button or press F5, Ranorex will now first call the mvn build and execute the unit tests. Using the Surefire plugin, Maven will generate a report which will then be parsed and inserted into your report.

Your report should look like this:

Existing Selenium Tests Report

Note how the external test cases are organized in a new Smart Folder and are counted in the report. Our false positives even report what’s wrong with the faulty test case. The Ranorex test case is executed afterwards.


Instead of recreating every single test case you’ve designed with Selenium in the past, you can now trigger them easily in your Ranorex environment. From there you can continue to create new and additional test cases with Ranorex Studio. Since maintenance tasks are much more efficient when using the Ranorex Repository and Spy, you can cut down on maintenance efforts even more without losing the functionality of your previous work.


You can find and download the SeleniumTools class and its functions from our github repository.
The example IntelliJ project is available for download here.
The example Ranorex Solution is available for download here.

More about the Selenium integration Download Trial

The post How to Use Ranorex with Existing Selenium Tests appeared first on Ranorex Blog.

Categories: Vendor

The Improved Test Suite Hierarchy

Wed, 03/29/2017 - 09:29

When running into complex test scenarios, the test suite might get increasingly incomprehensible and complicated – not to mention the lack of clarity when analyzing reports.
That’s why the test suite structure in Ranorex 7.0 has changed in favor of a flat and, therefore, more readable test suite hierarchy.

Ranorex 7.0 introduces smart folders to Ranorex Studio. They replace the former nested cases as well as the former simple folders. Using smart folders, you can structure your test suite in any possible way: equip them with external data binding or define the number of iterations the underlying test scenario should be executed. This makes the test suite as well as the reporting JUnit compatible, simplifying the integration of enhanced reporting in CI systems.

How to Upgrade Existing Ranorex Solutions

After you install Ranorex 7.0 and open your existing solutions, the test suite will be automatically upgraded. The upgrade process includes the following changes:

  • Former simple folders will be replaced with smart folders
  • Nested test cases will be automatically re-structured using smart folders

An upgrade report will inform you about the changes made to your solution.

Upgrade Report

The Evolution of Simple to Smart Folders

As mentioned before, former simple folders are replaced with the more powerful smart folders. This has two clear benefits: You can define the number of iterations the test scenario within the smart folder should be executed, and also bind external data and parameters to the underlying test cases and modules. Additionally, smart folders – in contrast to the former simple folders – can now be executed in the same way as test cases.

How to Map Any Test Scenario without Nesting Test Cases

When you upgrade your solution, all nested test cases will be automatically converted to smart folders. A sophisticated mechanism processes the test suite according to the following rules set:

  1. Every test module is part of a test case (or a setup/teardown region)
  2. A test case cannot be a descendant of another test case

Remove Nested Test Cases

You can convert smart folders to test cases at any time. Simply right-click the smart folder and select Convert to Test Case in the context menu.

Convert Smart Folder to Test Case

The mechanism I previously mentioned ensures that the given rule set is fulfilled.
The same applies for copying and moving test cases in the test suite. The following dialog will pop up before test cases are automatically converted to smart folders or vice versa.

Convert Items Dialog

As already known from test cases, smart folders can access internal and external data sets. You can then bind these data sets to variables of the included modules or module groups. To do so, right-click the smart folder and open the properties from the context menu.

Data Driven Smart Folder

With Ranorex 7.0 you can, next do making smart folders and test cases data-driven, also define the number of iterations a smart folder or test case will be executed. To do so, press <F4> to open the properties pad and select the desired smart folder or test case. Now you can simply enter the number of iterations in the dedicated property.

Set Iteration Count

Benefits of the Flat Test Suite Structure

By eliminating nested test cases, the entire test suite structure as well as the structure of the resulting report is leaner and more readable. Additionally, it will also be easier to understand the counting of the executed test cases, while the test case count of the report now also conforms to the JUnit standard.


You can also generate a JUnit compatible copy of the report. This allows you to easily integrate your test execution and reporting into many continuous integration systems. To do so, right-click the test suite root folder and open the test suite properties from the context menu. Switch to the Report tab and enable the option Create a JUnit compatible copy of the report.

Create-a JUnit compatible copy of the report

The report will be copied to the Output Folder (by default \bin\Debug) of the test suite project.

As you can see, it is well worth to upgrade to Ranorex 7.0 if you would like to benefit from a flat test suite and report structure that will make your test suite and reports leaner, more readable and easier to integrate in CI systems.

Download free trial

The post The Improved Test Suite Hierarchy appeared first on Ranorex Blog.

Categories: Vendor

Ranorex Object Repository

Thu, 03/23/2017 - 17:25
Categories: Vendor

Ranorex 7.0

Thu, 03/23/2017 - 16:26

Be among the first to experience the matchless Selenium WebDriver integration, WPF object recognition and test suite improvements available with Ranorex 7.0.
Release Notes

The post Ranorex 7.0 appeared first on Ranorex Blog.

Categories: Vendor

Record and Replay

Thu, 03/23/2017 - 16:23

Record and Replay

The post Record and Replay appeared first on Ranorex Blog.

Categories: Vendor

Ranorex Studio – Overview

Thu, 03/23/2017 - 16:16
Categories: Vendor

Next generation WPF Plug-In

Thu, 03/23/2017 - 16:00

The post Next generation WPF Plug-In appeared first on Ranorex Blog.

Categories: Vendor

Enhanced Test Suite Structure

Thu, 03/23/2017 - 15:27

The post Enhanced Test Suite Structure appeared first on Ranorex Blog.

Categories: Vendor

Selenium WebDriver Integration

Thu, 03/23/2017 - 15:07

The post Selenium WebDriver Integration appeared first on Ranorex Blog.

Categories: Vendor

Ranorex – One of Austria’s Best Employers 2017

Thu, 03/16/2017 - 08:58

I’m excited to announce that for the second year in a row now, the Great Place to Work® institute has chosen Ranorex as one of Austria’s best employers!

Each year, the Great Place to Work® institute conducts its renowned benchmark study to identify Austria’s best employers. The rating focuses on credibility, respect, fairness, pride and teamwork – values that are of great importance to a successful enterprise. Based on the responses of the extensive survey, we are delighted to see that 93% of our employees stated that “Taking everything into account, I would say this is a great place to work.”

It’s the team that matters most

Without a doubt, it’s every single member of our outstanding team that makes our company such a great place to work. At Ranorex, we are dedicated to providing the best possible environment for our team. We are proud to have a workplace culture that builds upon trust and transparency, and enables each team member to grow and have a meaningful impact on the company, its success and its values.

A meaningful workplace culture

I’m honored to be part of a company that sees the importance of a great workplace culture and does everything to foster it throughout everyday work life. For example when it comes to the areas of:

  • Work environment
    At Ranorex, you’ll benefit from the best possible work environment: from in-house gym, weekly yoga class, areas for relaxation to state-of-the-art technology and ergonomic desks.
  • Team spirit
    Team spirit is one of our core values – and we love to celebrate it: whether it is at a business run, the many team events and company trips or at the weekly breakfast.
  • Work-life balance
    While we love what we do, it’s not all about work. Flexible working hours and the opportunity to work from home enable our employees to achieve a satisfying balance between private and work life.

We are honored and humbled by the award we have received and would like to credit our incredible team members. Thank you again for making Ranorex such a special place to work. We will continue to do our best to ensure inspiring working conditions, which allow us to create extraordinary solutions for our clients.

If you would like to join our team, please check out our open positions. We’d love to hear from you!

Open Positions

The post Ranorex – One of Austria’s Best Employers 2017 appeared first on Ranorex Blog.

Categories: Vendor

Chromium Embedded Framework Support

Tue, 03/14/2017 - 14:23
Categories: Vendor

Getting started with Data Sources

Tue, 03/14/2017 - 14:22

The post Getting started with Data Sources appeared first on Ranorex Blog.

Categories: Vendor

Progressive Report Preview

Tue, 03/14/2017 - 14:22

The post Progressive Report Preview appeared first on Ranorex Blog.

Categories: Vendor

5 Principles of Agile Testing & How Ranorex Fits In

Thu, 02/23/2017 - 14:39

Agile has changed the way we approach development and testing. At least it should. Release cycles are shorter, requirements change rapidly and quality standards are higher than they’ve ever been. To have the slightest chance at scoring a medal in the agile testing games, we’ve got to understand the rules of the game and get the right tools. So let’s get at it together.

I am trying to break down the requirements agile testing should meet on five basic principles. Based on these, I’ll show you the benefits we’ve experienced ourselves when using Ranorex for agile testing and how your team will also benefit from using Ranorex for agile test automation.

Fast feedback

Best case scenario: You test the full range of functionality for every single code change. When performing continuous testing, it’s essential that the whole development team gets immediate feedback on the executed tests. Therefore, an easy to access and easy to read reporting mechanism is indispensable. This is where our test reports step in. You can fully integrate the lightweight test executables of our test suites into any continuous integration systems and share the resulting easily understandable report files with the whole team to ensure a high level of transparency. Not fast enough? You can also get live feedback during test execution: Simply open the test report while the test still runs to see if any test cases have failed so far. The earlier you know, the faster you can react.

Progressive Report

High level of automation

Fact is that manual testing is slow, labor intensive, inconsistent and buggy. If you want to rapidly respond to changing requirements and constant code changes, a high-level of automation is absolutely essential. Next to basic unit tests, acceptance tests and integration tests are highly important to test the full range of functionality. To reduce time and increase quality, test automation has to be an integral part of the project from the beginning. You can use Ranorex Studio to automate your entire range of UI tests.

High Level of Automation

Low overhead

Sometimes, it make sense to create a simple throwaway test, which is used only in one specific sprint. In these cases, there’s neither time nor resources for a big setup. Using Ranorex Studio, you can easily automate such tests and integrate them in your existing test environment. The lightweight test automation projects of Ranorex result in executable files, which you can directly trigger from command line. The executable files inform you if the test has failed or succeeded. In addition a report file can provide detailed information about the test run. Perfect conditions to integrate into any continuous integration process.


Termination of testing roles

In an agile software development process, the whole team is responsible for quality. The borders between the traditional understanding of testers and developers blur. So, typical testers should be able to write unit tests or simple integration tests. In contrast, developers should also record UI tests. Using the broad set of tools ideal for all skill sets, you can set ideal conditions for developers and testers to work together on projects. Pick and choose – it’s up to you: Easily create script-free automated tests using the Ranorex Recorder, or quickly create and edit tests entirely in C# or VB.Net.

One Tool Different Skill Sets

Termination of testing phase

Finally in agile iteration cycles, there’s typically no time for a sequential processing of all testing levels (unit tests, integration tests, system tests, acceptance tests…). Therefore test automation has to be an integral part of the project from the beginning. As Ranorex Studio does not rely on dependencies, you can create test scenarios at any time. As soon as you know how the UI will look like, you can implement an automated test and refine the detailed paths of the repository elements as you go along.

UI Test Driven Approach

As a result we’ve seen, agile testing is based on a high level of test automation. To set the ideal conditions for your team, make sure to get a tool, or a set of tools, that enable you to directly integrate automated testing in your continuous delivery pipeline, ensure a high level of transparency and enable collaboration within your team.

See the benefits for yourself

The post 5 Principles of Agile Testing & How Ranorex Fits In appeared first on Ranorex Blog.

Categories: Vendor

Complete the Team: Why You Need to Empower Testers

Thu, 02/02/2017 - 12:56

It’s all about that team, ‘bout that team, not individual…. With apologies to Meghan Trainor (It’s All About That Bass), that team is what everyone is talking about when it comes to effective agile software development and DevOps. More and more companies are realizing that having the developers, the product owner, and the testers all working together at the beginning of a development cycle pays dividends.

A Different Approach

This is especially important in a shift-left mentality where testing is done early and often. Everyone on the team shares an understanding of the requirements. Everyone understands the tests that are needed. And there is a consensus about whether a feature was specified sufficiently. The result is that there are efficiencies in development. Development interruptions are eliminated. Delays, lost effort, lack of velocity and timely feedback, and unwarranted assumptions that give us results we don’t want become a thing of the past.

Wait a minute! How is that approach different from the way software was developed in the past? There was a team. It had developers who provided the technical solutions and fixed defects. It had product owners who provided the requirements. And it had testers who made sure that everything worked.

That’s true. But they didn’t always work together efficiently. Sure, developers could get their questions answered by engaging the product owner directly. When it was time for testing, the testers could get information they needed from the developers and/or product owner. However, many times, choices or decisions were made with only two parts of the project team, usually between just the developers and the product owner. The testers found themselves on the outside looking in. Inefficiency, reworking and missed deadlines were built in. Not much of a team.

Don’t Forget the Testers

To have an effective team, ALL parties – the three Amigos: developer, product owner AND tester – must be invited to contribute from the beginning. Why? Because each brings with them their own, many times different, viewpoints on almost anything you’re planning to build. The product owner thinks about what the business hopes to accomplish by building it. The developer is concerned about the details needed to implement it, e.g. what information is needed when and which technologies are needed to accomplish the goals. The tester thinks about what might go wrong, either within the system under test or in the external context upon which it depends. Sometimes these three viewpoints are enough, but sometimes others are also needed. The big change here, though, is inviting the testers.

Yes, it all starts by empowering testers and instilling a “whole team” view of quality. Including testers early on in the development process is quite a change from the approach that many companies took (and some that still do) when it came to testing and testers: “When the developers are done, we’ll let you in on what they were doing and let you test. And don’t miss anything!”

The Psychology of the Tester

Okay, so it’s really important to include testers early on. What do they bring to the table? I’ve been asked that question many times. Part of it is the way that their brain is wired. They are naturally curious, naturally analytical, and critical thinkers. It also helps to have a thick skin.

That’s all nice, but how can somebody with all those personality traits influence a project? Testers can work closely with both developers and business representatives to ensure that the desired quality levels are achieved. They can use those traits when supporting and collaborating with business representatives to help them create suitable acceptance tests, defining what done is, working with developers to agree on the testing strategy, and deciding on test automation approaches. Testers can thus transfer and extend testing knowledge to other team members, thereby influencing the development of the product. Everybody benefits.

If you’re considering making the change to the whole-team view in agile product development, don’t worry about the testers. They’re a tough bunch. In almost all cases, over time the old-style attitude that testers should just be along for the ride fades. The rest of the team eventually develops a newfound respect for testers. One that helps to foster growth, efficiency, and effectiveness, and along the way enhance the project’s and team’s – there’s that word again – chances for success and your ability to deliver value to your customers.

Find out why Ranorex is the right fit for agile teams

The post Complete the Team: Why You Need to Empower Testers appeared first on Ranorex Blog.

Categories: Vendor