VisualUIAVerify

UIA Verify is a Microsoft® product.

It's a test automation framework that features the User Interface Automation Test Library (UIA Test Library) and Visual UI Automation Verify (Visual UIA Verify), the graphical user interface tool - Details.

Its source code is available at this Link.

It populates all the UI Controls in a tree form and provides their in-depth details including the supported patterns. Its tree and inspection technique is the inspiration behind this idea. The difficulty I see in automating any application is getting its UI Controls' information. VisualUIAVerify already has this feature enabled in that it unwraps detailed information for any accessible UI Control. A few changes have been made which simply records some key information regarding UI Control, and additionally, coordinates (x and y points) and image technique (image processing) is added to access the UI Controls which do not share the standard (or any) Action patterns.

In 2-step Automation Idea, this altered Tool generates KB file. (KB stands for Keyword Book, and it holds Keywords which represent UI Controls.)

 

QAthing Library

(Nothing Special) - It simply provides an interface to imitate user actions.

In 2-step Automation Idea, with the help of KB file, this libraries, QAthing.dll, sends commands to UI Controls.

 


In Pipeline

There are some features that will boost the automation process. They are in pipeline, and as follows:

  1. Form-Level Operations - A designer (in VisualUIAVerify) to perform form-level or combined operations/actions.
    Currently, there is no way to perform combined or grouped operations (e.g. form fill)  that includes multiple controls (except calling them individually). To provide such feature a designer is required so that generic/form-level operations can be defined using the available Keywords. However, as demonstrated in the videos, Groups can be defined in KB file, and group or combined operations can be achieved via a Custom DLL.
  2. Python shell integration (to VisualUIAVerify) to execute/verify Form-level operations.