---
title: "Avalon automated UI Testing framework"
url: "https://osherove.com/blog/2003/10/30/avalon-automated-ui-testing-framework.md"
canonical: "https://osherove.com/blog/2003/10/30/avalon-automated-ui-testing-framework.html"
published: "2003-10-30T07:14:00"
updated: "2003-10-30T07:14:00"
tags: [".Net Quotations"]
author: "Roy Osherove"
description: "This is great news! The Avalon UI Testing Framework appears to expose the UI components as an Object Model, that they are calling “Control Patterns” that expose the behavior of the controls. He's brought a Command…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Avalon automated UI Testing framework

By Roy Osherove October 30, 2003 In [.Net Quotations](https://osherove.com/blog/category/net-quotations)

**Historical article** · Originally published October 30, 2003; technical details may be outdated.

[This](http://www.hanselman.com/blog/PermaLink.aspx?guid=00a3f364-41d8-43ea-aae7-0bb56b89d6f3) is great news!

_The Avalon UI Testing Framework appears to expose the UI components as an Object Model, that they are calling “Control Patterns” that expose the behavior of the controls._

_He's brought a Command Prompt up.  He brought up the Windows Device Manager and clicked on it._

_The Command Prompt then displays:_

_\[Tree View\] \[Has Children\]
Patterns = I:Selection_

_then he types “children” and the Device Manager tree expands._

_The Command Prompt says:_

_Patterns - I:Invoke, IHierarchyItem. I:ExpandCollapse. I:SelectionItem_

_he also checks out a Combo Box and it says_

_Patterns - I:ExpandCollapse._

_This means that rather than exposing the controls directly to the UI Testing code, it exposes the BEHAVIOR.  So, in OOP terms, a ComboBox and a Tree Control both implement “ExpandCollapse.”  But it's not that simplistic.  It's really about behavior._

_Think about this:  If you were using a 3rd party control, you'd have to use that library's proprietary APIs to manipulate it.  With the Windows UI Automation framework the publisher of that control will expose behaviors.  If it's a funky Outlook Bar, perhaps it exposes ExpandCollapse also._ 

## More in .Net Quotations

[All posts in .Net Quotations](https://osherove.com/blog/category/net-quotations)

- Nov 2, 2003

    ### [PDC eye for the cynical guy](https://osherove.com/blog/2003/11/2/pdc-eye-for-the-cynical-guy.html)

- Oct 30, 2003

    ### [Funny and informative "Lap Around Longhorn" video from MSDN TV](https://osherove.com/blog/2003/10/30/funny-and-informative-quotlap-around-longhornquot-video-from.html)

- Oct 29, 2003

    ### [New VB.Net features from the trenches, and the PDCBloggers feed is your friend](https://osherove.com/blog/2003/10/29/new-vbnet-features-from-the-trenches-and-the-pdcbloggers-fee.html)

- Oct 27, 2003

    ### [Nice GC tip](https://osherove.com/blog/2003/10/27/nice-gc-tip.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
