Open-Source Test Automation Tools for Windows Desktop Apps 2022

news2024/12/20 4:56:58

Do you have a Windows desktop application that needs to be tested to verify if all the different features work seamlessly and according to documentation? We suggest you use test automation—or at least try it in combination with manual testing.

Test automation is one of the most efficient ways to accelerate the testing process while ensuring software quality is high. Not only does it reduce the time needed for testing by automating repetitive tasks, but it also brings down testing costs. This is because automated tests can be run over and over again at no additional cost.

To get the most out of automated testing, however, using automation testing tools is essential. But not just any tools, open-source automation tools. The reason for this is because open-source tools are freely available to the public. This means that anyone can view, modify, or enhance the source code. Namely, these types of automation tools allow QA engineers to perform various tasks more efficiently and ensure testing runs more smoothly. By using automation testing tools, you can enter test data into the system under test, analyze test results, perform various types of validation, and take screenshots of the system at some point of validation. You can also generate detailed test reports, log files, and error message files.

While automated testing cannot completely replace manual testing, it is the better choice in various cases, like when you have repetitive tasks, need to run test cases on multiple devices simultaneously, or want to get more accurate and consistent results.

But how do you know which open-source automation tool is right for your project?

In this article, we will look at several different open-source automation tools for testing Windows desktop apps and evaluate each using predefined criteria. Let’s jump right in.

Open-source automation testing tools for Windows desktop apps

We will look at and evaluate three open-source automation testing tools: SikuliX, Winium, and WinAppDriver.

SikuliX

SikuliX is an open-source tool that can automate everything that can be seen on the desktop screen running on Windows, Mac or Linux/Unix operating systems. SikuliX uses image recognition technology provided by OpenCV to identify GUI components.

This particular tool has a visual approach to GUI automation using screenshots. It allows you to take a screenshot of GUI elements—toolbar, icon, or dialog box—and ask the system/machine for help to automate the handling of elements and their actions using screenshots instead of element names. SikuliX also has an integrated visual scripting API that helps automate GUI iterations using image models for mouse and keyboard events/actions. On top of that, SikuliX has optical character recognition (OCR) features that can be used to search for text in images.

Having used SikuliX for testing purposes, I can say that all of the technology described above is convenient for automating both desktop and web applications when the internal elements of the GUI or the source code of its application or web page are not easily accessible.

From my personal experience I can say that even less experienced testers can easily and quickly learn how to work with SikuliX, as research shows that finding elements and writing code with screenshots is easier and faster than with keywords, for example.

SikuliX supports Python as the primary scripting language, but I have also used Ruby for my test scripts and it worked fine.

SikuliX user interface description and explanation. Source: Software Test Academy

Winium

Winium is an open-source automation tool built on the Selenium library to interact with Windows desktop applications. It works with all WebDriver compatible programming languages, including Java, Objective-C, JavaScript with Node.js, PHP, Python, Ruby, C# and so on.

This tool only supports and helps test different types of applications that have been developed in the following environments: WPF and WinForms.

Based on my experience, working with Winium is quite quick and easy if the tester has prior experience and knowledge of working with Selenium. For inspection purposes, I used Inspect.exe (available in Windows by default) to identify elements in a Windows application, although you can use UISpy.exe in Winium for that purpose. There are no built-in UI inspection tools, so third-party tools need to be used.

Winium can be used with any front-end test library. I used it with Cucumber and Gherkin, but it is also possible to use it with Gauge to read test automation steps.

Despite a number of benefits, active monitoring, maintenance, and debugging are key to open-source tools. It’s important to note, however, that the developers of Winium have not made any changes or updated it since 2016. So if you want to use this tool, you have to take into account that errors will not be fixed and the tool will always remain exactly as it is now.

WinAppDriver

WinAppDriver is an open-source testing tool developed by Microsoft as an open source project. It is based on the popular WebDriver protocol and Selenium. Therefore, WinAppDriver is a Selenium-like automation tool. In my opinion, WinAppDriver combines the best of two worlds. On the one hand, it incorporates most of the now obsolete CodedUI technology, while on the other, it combines this technology with the flexibility, ease of use, and variability of Selenium.

Like Selenium, WinAppDriver is a set of libraries that can be integrated into any Test Runner that supports it. For example, WinAppDriver scripts can be developed and executed with MSTest from Visual Studio.

The tool supports both 32-bit and 64-bit applications developed in one of the following environments: WinForms, WPF, UWP, and Microsoft Foundation Class (Win32).

WinAppDriver does not have its own scripting language, but it can write scripts for automation in the most popular programming languages, such as C#, Java, Python, and Ruby.

Like Selenium, WinAppDriver elements are found by identifying properties like class, ID, name, XPath, and so on. WinAppDriver also does not have a built-in element inspection tool, but you can use third-party tools such as Inspect.exe.

The WinAppDriver documentation is fairly easy to find, but from my experience it is very unstructured and non-detailed. It does not contain any video/audio tutorials and there is only one step-by-step tutorial explaining how to install WinAppDriver.

Evaluation criteria for open-source automation tools

Before we dive into evaluating the different open-source automation tools available, we need to discuss the evaluation criteria that we will be using. The list of evaluation criteria that you can see below is unique and can only be viewed within this work. Criteria were selected in a way that they could be evaluated as objectively as possible based on theoretical information and practical usage of the open-source automation tool by the author. The criteria should cover as many different aspects of the tool as possible: different types of support (programming language, applications, debugging, test type, database), built-in tools, common functionality and some built-in features, integrations, documentation, online support and so on.

Each of the listed criteria will be evaluated according to a 5-point system:

5 – Excellent (the tool fully meets the specified criteria)
4 – Good
3 – Average
2 – Poor
1 – Very poor (the tool does not meet the specified criteria at all)

Additionally, at the end of the evaluation of each tool, the average score (the total number of points divided by the number of criteria) will be calculated. This average will also be considered as the final score for that particular tool. All the criteria against which the tools will be evaluated and compared are outlined in the list below:

  • Programming language support
  • Built-in UI inspection tool
  • Required coding skills
  • Built-in ALM integrations
  • Available documentation
  • Ease of installation and use of the tool
  • Execution of test scripts
  • Record and playback function
  • User interface
  • Tool training process
  • Online support of the tool
  • Debugging support
  • Creating and storing reports, logs
  • Different types of testing support
  • Database application support
  • Data-driven testing
  • The evolution of the tool over the years
  • Code/script reusability

Rating the automation tools based on predefined criteria

Based on the information I read about each of the tools, as well as the practical application of the tools—which I specifically performed to be able to evaluate each tool more objectively by creating and running a few test scripts on each one—I reached some general conclusions and used the predefined criteria to evaluate each tool accordingly. The results can be seen in the table below.

Criteria/Automation toolSikuliXWiniumWinAppDriver
Programming language support455
Built-in UI inspection tool4.522
Required coding skills433
Built-in ALM integrations011
Available documentation2.522
Ease of installation and use524
Execution of test scripts3.544
Record & Playback function53.51
User Interface3.522
Tool training process3.52.52
Online support of the tool100
Debugging support52.53
Creating/storing reports/logs4.521.5
Different types of testing support332
Database application support2.540
Data-driven testing33.50
Evolution of the tool over the years2.501
Code/scripts reusability422
Final score3.42.52

Key takeaways

In this article, we looked at three different open-source automation tools for Windows desktop applications and put them to the test, evaluating them according to 18 different criteria.

The comparison and evaluation of each tool was carried out both on the basis of the available documentation about the tool, as well as the practical application of each tool for a specific test case that was created and performed by me.

Based on my findings, the best open-source automation tool for Windows desktop applications—out of the three we evaluated—is SikuliX, which has an average score of 3.4. This is a relatively high score, considering it is completely free. SikuliX came on top in terms of built-in UI inspection tool, ease of installation and use, and script reusability, among other criteria, of course.

So if you are developing a Windows desktop application and you currently do not have the opportunity to invest in paid test automation tools, then SikuliX is definitely your go-to open-source automation tool when looking for a tool that is easy to use and implement into your testing processes.

Are you interested in introducing automated testing into your current QA processes? Our experienced and highly skilled automation engineers can help boost your testing efforts and increase efficiency by implementing various automation tools and working together with your team. Whether you have a mobile, web, or desktop application—we can help! Drop us a line and let’s discuss your project.

Open-Source Test Automation Tools for Windows Desktop Apps

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut、QT)第三期

🍺三维数字地球系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(456:OpenGL、glfw、glut)第二期3【小沐…

【论文笔记】Editing Models with Task Arithmetic

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Editing Models with Task…

c++ [eigen库配置和使用]

实验环境 eigen 3.40 下载链接 https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip Visual Studio 2022配置 解压eigen后&#xff0c;在项目中配置包含目录 代码示例 加头文件 #include <Eigen/Dense> using namespace Eigen;矩阵运算 MatrixXd …

SpringBoot完整技术汇总

SpringBoot 注意&#xff1a;SpringBoot技术示例中的项目均已上传至Gitee&#xff0c;均可通过此处自行下载 SpringBoot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化Spring应用的初始搭建以及开发过程 Spring程序与SpringBoot程序对比如下 Spring程序配置…

windows 使用python共享网络给另外一个网卡

# -*- coding: utf-8 -*- import subprocessdef open_share(to_shared_adapter, from_shared_adapter):"""打开以太网的网络共享:return: None"""powershell_script f"""# Register the HNetCfg library (once)# regsvr32 hnetc…

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip

redis集群 服务器更换ip&#xff0c;怎么办&#xff0c;怎么更换redis集群的ip 1、安装redis三主三从集群2、正常状态的redis集群3、更改redis集群服务器的ip 重启服务器 集群会down4、更改redis集群服务器的ip 重启服务器 集群down的原因5、更改redis集群服务器的ip后&#xf…

Linux入门攻坚——42、Nginx及web站点架构模式

对于lvs集群&#xff0c;是一个四层路由的集群&#xff0c;Director无需启用对端口的监控&#xff0c;直接将报文转发给后端业务服务器RealServer。 使用Nginx也可以实现集群功能&#xff0c;Nginx实现反向代理&#xff0c;实现的是七层上的转发&#xff0c;要求Nginx本身就是…

Git merge 和 rebase的区别(附图)

在 Git 中&#xff0c;merge 和 rebase 是两种用于整合分支变化的方法。虽然它们都可以将一个分支的更改引入到另一个分支中&#xff0c;但它们的工作方式和结果是不同的。以下是对这两者的详细解释&#xff1a; Git Merge 功能&#xff1a;合并分支&#xff0c;将两个分支的…

密码编码学与网络安全(第五版)答案

通过如下代码分别统计一个字符的频率和三个字符的频率&#xff0c;"8"——"e"&#xff0c;“&#xff1b;48”——“the”&#xff0c;英文字母的相对使用频率&#xff0c;猜测频率比较高的依此为&#xff09;&#xff0c;t,*,5&#xff0c;分别对应s,o,n,…

我在广州学 Mysql 系列之 数据类型和运算符详解

ℹ️大家好&#xff0c;我是&#x1f606;练小杰&#xff0c;今天主要学习 Mysql的数据类型以及运算符操作~~ 上周五学习了“Mysql 系列之 数据“表”的基本操作”~ 想要了解更多&#x1f236;️MYSQL 数据库的命令行总结&#xff01;&#xff01;&#xff01; “我是你的敌人,…

SpringBoot中基于JWt的授权与续期方案

一、 SpringBoot中Token登录授权、续期和终止的方案RedisToken SpringBoot项目写登录注册之类的方案 使用Cookie或Session的话&#xff0c;它是有状态的&#xff0c;不符合分布式技术架构使用Security或者Shiro框架实现起来比较复杂&#xff0c;一般项目无需用那么复杂使用JW…

小程序快速实现大模型聊天机器人

需求分析&#xff1a; 基于大模型&#xff0c;打造一个聊天机器人&#xff1b;使用开放API快速搭建&#xff0c;例如&#xff1a;讯飞星火&#xff1b;先实现UI展示&#xff0c;在接入API。 最终实现效果如下&#xff1a; 一.聊天机器人UI部分 1. 创建微信小程序&#xff0c…

【OSS】php使用oss存储

阿里云oss官方文档&#xff1a;文档 1、前期工作 创建阿里云账号&#xff0c;登录创建bucket&#xff0c;注意修改权限&#xff0c;要不然可能读取不到 申请accessKeyId和accessKeySecret accessKey 2、项目中安装OSS扩展 composer require aliyuncs/oss-sdk-php3、基础使…

Elasticsearch02-安装7.x

零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch &#xff08;1&#xff09;JDK安装 Elasticsearch是基于java开发的&#xff0c;所以需要安装JDK。我们安装的Elasticsearch版本是7.15&#xff0c;对应JDK至少1.8版本以上。也可以不安装jdk&#xff0c;…

【Qt】drawText字体大小问题探究

背景 软件的一个功能是&#xff1a; 打开图片在图片上绘制序号&#xff0c;序号的样式是圆圈内包含数字将带有序号的图片打印出来 实现思路也很简单&#xff0c;在屏幕上显示时重写paintEvent函数&#xff0c;利用QPainter完成图片和序号的绘制。打印时只需要将QPainter对应…

redis 缓存使用

工具类 package org.springblade.questionnaire.redis;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factor…

C# OpenCvSharp DNN 实现百度网盘AI大赛-表格检测第2名方案第一部分-表格边界框检测

目录 说明 效果 模型 项目 代码 frmMain.cs YoloDet.cs 参考 下载 其他 说明 百度网盘AI大赛-表格检测的第2名方案。 该算法包含表格边界框检测、表格分割和表格方向识别三个部分&#xff0c;首先&#xff0c;ppyoloe-plus-x 对边界框进行预测&#xff0c;并对置信…

创建项目以及本地仓库和远程仓库并上传项目

创建项目以及本地仓库和远程仓库并上传项目 其详细流程如下&#xff1a; 1、本地创建项目 2、创建本地仓库&#xff08;若使用idea在创建项目时选择了创建.git本地仓库&#xff0c;则此步骤省略&#xff09; 进入到你需要上传的项目的目录下&#xff0c;右键找到Git Bah He…

鸿蒙操作系统简介

华为鸿蒙系统&#xff08;HUAWEI HarmonyOS&#xff09;&#xff0c;是华为公司于2019年8月9日在东莞举行的华为开发者大会&#xff08;HDC.2019&#xff09;上正式发布的面向全场景的分布式操作系统&#xff0c;可以创造一个超级虚拟终端互联的世界&#xff0c;将人、设备、场…

MySQL存储引擎-概述

存储引擎 存储引擎&#xff08;Storage Engine&#xff09;是数据库管理系统中负责数据存储和检索的部分。之前在MySQL的历史地位中曾经讲过&#xff0c;存储引擎是可插拔的。5.5之前默认采用MyISAM存储引擎&#xff0c;从5.5开始采用InnoDB存储引擎。 9大存储引擎 可以通过…