PeetRonics' blog

All can be true!

Tue 15 September 2020 - read time: 3 min.

GUI test automation for Windows desktop

  

Screenshot of a windows 3.1 desktop

Introduction

If you look at conference talk and workshop topics, (online) articles, tutorials, and courses, you could get the impression that most software testing revolves around web and mobile. The 2020 state of testing report, curated and published by Practitest, underwrites that. Web and mobile have got the biggest share of the technologies being tested (75% and 59% respectively). Desktop is coming in third with 45%. Which makes you think why this technology is not getting more attention in the world of testing? It's about time that we put the limelight on desktop testing; Windows desktop automated testing to be precise.

The first part of this article will give an overview of available tools for Windows desktop automation. Then it will go into the things to consider in choosing a tool.

Available tools

This will not be a complete overview on available desktop test automation tools. Things that are currently not included (but might be added later):

  • Paid for tools. I have not done enough research into these. Only open source tools are listed.
  • Tools for other operating systems than Windows (e.g. Linux, MacOS), as I've not had a lot of exposure on this.
  • Tools that are not aimed at (aiding) GUI automation (e.g. database, API, network). These are not specifically for desktop, so won't be covering those.

Joe Colantonio of Test Guild (@joecolantonio) already has put together a very extensive list of Automation tools for desktop applications. Follow the link to Joe's article for a full description of each of these following tools:

Almost as important as the tools for automated test execution itself, are the tools that support you in creating your automation. For web automation, DevTools are invaluable in that respect (, built in any modern browser). Similar tools are often not readily available in desktop applications. But there is definitely help available. A collection of GUI inspect tools can be found here (follow the link). With those tools you can inspect the application you want to test and look screen object identifiers. The one I particularly like is UISpy.exe.

A last tool I would like to mention is not necessarily a desktop GUI automation tool, but definitely one that can help in testing a Windows desktop application. It is called Accessibility Insights, and is aimed at inspecting and assessing the accessibility of an application for people with and impairment like vision loss or colour blindness.

Considerations

In choosing a test automation tool or framework, in general, there are a lot of things things to consider, like:

  • Supported programming languages
  • Reporting capabilities
  • Integration with other tools
  • ...

A more complete overview of general considerations can be found on the Ministry of Testing website.

In addition to the above, there are a few things specific to desktop test automation to keep in mind:

  • Supported operating systems. Not all available tools will work with each version of Windows. We would have loved to use WinAppDriver as our platform, but it is only available for Windows 10.
  • Windows has got different application platforms, which all work slightly differently. Be sure your tool supports the platform you want to target.
  • Some desktop applications have got their own specific frontend, depending on which underlying technology is being used. For example, GUIs from a JAVA or Oracle application are constructed in a different way, and there are specific tools supporting those type of applications.

Wrapping up

The aim of this post has not been to give an ultimate list of available desktop test automation tools. But sure I will keep adding to it when I come across tools in this category that not yet have been mentioned.
And please send me a message if you know of a tool that should be mentioned here.