Saturday, June 22, 2019

WinApp Driver vs Coded UI - Windows Test Automation Tools Comparison

Serial
Coded UI
WinAppDriver
1
Coded UI is a Closed source project
Windows Application Driver is a partially Open source project
2
Coded UI is Not hosted on GitHub
WinAppDriver has a repository on GitHub
3
Coded UI is very expensive, it has a hefty license fee, licensed product
[Appium based] WinAppDriver is free software, there's no licensing fee at all
4
Microsoft Coded UI does not follow an industry standard
WinAppDriver is based on WebDriver industry standard(https://www.w3.org/TR/webdriver/)
5
Coded UI is Based on Microsoft’s closed source technologies
WinAppDriver is Based on Appium, WebDriver, and Selenium industry standard open source technologies.
6
Limited to only Microsoft’s chosen programming languages
WinAppDriver Can be extended to support any programming language(C#, Python, Java, C++, you name it). Many APIs already available. If you learn it with one programming language, you can easily take the same cocepts to another language.
7
Coded UI uses a proprietary protocol for communicating with the machines running automation. Remote machines are not supported.
Being based on Appium, WinAppDriver uses JSON wire protocol for communication between an instance of WinAppDriver and test automation scripts. You can also create a grid if need be.
8
Knowing CodedUI won’t land you many jobs in future
Knowing Appium based WinAppDriver makes you suitable for Selenium & Appium mobile automation job. You can switch over to mobile testing with little effort.
9
Supports older versions of Windows OS i.e. Windows 7
Does not support older versions of Windows(works on Windows 10, Windows Server 2016 and above)
10
Almost dead community, not much going on with Coded UI
The community of WinAppDriver is very active online on GitHub.
11
Deprecated, no further enhancements in Coded UI
WinAppDriver is actively in development, continuously improving. Microsoft is pouring resources into it.
12
Coded UI script (C#, VB.Net) runs on a machine directly
A script based on WinAppDriver can control multiple machines using driver instances without even going to the machines under control.
What was CodedUI: CodedUI was a licensed software test automation technology by Microsoft. It was discontinued in 2019.
What is WinAppDriver: WinAppDriver is a free Windows application automation API. It is based on the open-source automation technology Appium. WinAppDriver itself is not open-source.




I've launched a course about Automated UI Testing using WinAppDriver with C# .Net; here's a link:

https://www.udemy.com/course/appium-winappdriver-automation-testing/?referralCode=ED22C3A4CE5BB5E22E53

Azure DevOps Build Pipelines: Run Windows UI Automation & CI


This course is a beginner's tutorial about software test automation. It is also a WinAppDriver tutorial and a learning resource. Coded UI is deprecated, and WinAppDriver is the way to go forward.
You're wrong if you think WinAppDriver is only suitable for Windows 10 and want to stay on Windows 7. The support for Microsoft Windows 7 is has ended in 2020.

FYI, the list of essential differences between Coded UI and WinAppDriver(Windows Application Driver) is given above.

Additionally, one Coded UI test could run on one machine only. But a single WinAppDriver script can automate more than one machine. This is very helpful for client-server testing applications.

Appium WinAppDriver Console Window Showing JSON Commands
Appium WinAppDriver Console Window Showing JSON Commands

Please note that my course serves as an excellent WinAppDriver tutorial. You can use it to learn WinAppDriver Windows Desktop automation and use the same concepts with Java or Python languages too.

Almost nobody is focusing on desktop automation and testing because everybody thinks the desktop is dead. But, desktop systems are still the mainstay of many enterprise systems. One such example is ResWare Desktop.
How to test ResWare Desktop?
Automated testing of ResWare is possible using the WinAppDriver. Please see the link to the best WinAppDriver tutorial.