The Visual Studio team maintains a web page (http://msdn.microsoft.com/en-us/library/dd380742.aspx) titled Supported Configurations and Platforms for Coded UI Tests and Action Recordings. The Platforms table on the page lists UI technologies (MFC, WPF, Silverlight, etc) and applications (browsers, Office clients, etc) and indicates a status of Fully Supports, Partially Supports, or Not Supported for each platform in the table. Microsoft Dynamics AX is in this table and this blog post will explain more about the support status for the application.
First, I will provide a little background on the relevance of coded UI and action recordings to AX. Over the past couple of years, I have been talking to a variety of people in the AX ecosystem about test tooling for AX 2012. I’ve also written posts for this blog on the topic (here, here, and here), and this topic will be a primary focus of this blog going forward. The test tooling in VS 10 is a prominent component in the tooling story as it is a very good fit for the type of testers and testing in typical AX development efforts. One component of the VS 10 test tooling capabilities is the ability to programmatically interact with the application under test (AUT) to enable fast forwarding through manual tests and to build fully automated UI tests. Action recordings and coded UI are the VS 10 capabilities that enable this.
The primary mechanism that coded UI / action recordings use to programmatically interact with the AUT is the accessibility interfaces in the application. A couple of the most common interface standards are Microsoft Active Accessibility (MSAA) and User Interface Automation (UIA). AX versions before 2012 had a very limited implementation of accessibility interfaces. We significantly improved the accessibility interfaces in AX 2012 to enable both assistive technology products and UI automation for test purposes. One key example is the grid in the AX rich client that is used all over the application. In AX 2009, the grid was essentially a black box to third party programs – there was no indication of what was happening other than the user clicked in the parent window. In AX 2012, an MSAA interface was layered onto the grid so that external products like VS 10 could both record grid activities and control the grid.
So what’s the status for Microsoft Dynamics AX on the VS 10 support web page? It currently states Not Supported, but that’s the status for AX 2009. Please keep in mind that it doesn’t mean that test capabilities in VS 10 other than coded UI / action recording won’t work or are not applicable… they do work and are applicable! It just means that action recordings and coded UI won’t work – at least not for the Windows application. Enterprise Portal should work fine, although we haven’t tested that internally.
My recommendation to the VS team for AX 2012 is to state that we have Partial Support. Given the accessibility improvement that I described in the previous section, why not Fully Supported? It mostly has to do with a lack of experience with using the tooling in significant development efforts. Over time, I expect we will build up a knowledge base and guidance such that we can state Fully Supported, possibly with a list of scenarios that users should work around. We are actively working with partners and testing internally to gain this experience and knowledge.
In the interests of full transparency, here’s what I wrote in the internal e-mail thread with the VS team regarding support (MTM refers to the Microsoft Test Manager):
Here’s what I’m currently expecting for AX 2012: Action Recording will work sufficiently well using MTM and will be a valuable tool. Playback will ‘partially’ work using MTM. With some guidance from MS plus the interactive failure dialogue in MTM, I believe this will have value for Dynamics AX customers. Creating reliable automation with Coded UI will be possible, but challenging. With some capable developers and some guidance, I believe it will be possible… but this has yet to be proven.
Here’s what I’m currently expecting for AX 2012:
Visual Studio 10 provides a suite of Application Lifecycle Management (ALM) tools that can be very valuable in Microsoft Dynamics AX 2012 development projects. Particularly valuable features include the AX integration for source code control and work items, the interoperability of AX with the test tooling, and the ability to link all of the various ALM artifacts to provide traceability in your development cycle. And there’s more… but I’ve digressed.
Coded UI and action recordings are important parts of the test tooling capabilities and I’m pleased that AX 2012 is in a much better place to work with these capabilities than previous AX versions. Managing test plans, creating test cases and shared steps, creating “no repro” bugs, and other features are also important capabilities that you should check out if you haven’t done so!