Changes to Coded UI Test in Visual Studio 2019

Prachi Bora (MSFT)

Prachi

With the release of Visual Studio 2019, we announced that it will be the last version of Visual Studio that contains the Coded UI test functionality. I wanted to give a little bit more context on the decision and answer some of the common questions we’ve been getting on this.

Why we are deprecating Coded UI Test

Coded UI tests are used for UI-driven functional automation of web apps and desktop apps. Open source UI testing tools such as Selenium and Appium have gained momentum in recent years, have a strong community backing and are now pretty much industry standards. Our Coded UI’s cross-browser testing solution was itself based on Selenium. Additionally, both Selenium and Appium work cross-platform and support multiple programming languages.

Over the last few years as development teams have become more agile and a faster release cadence has become the norm, testing practices have evolved as well. Test automation focus is shifting from predominantly UI driven testing to more unit testing and API testing. We had blogged about our own test journey here. We see similar experience repeated in our customers using Selenium or Appium instead of Coded UI. As part of that, customers have found it useful to evaluate their test bed and only carry forward only a subset of tests with the new tools – this has helped them migrate efficiently by reducing redundancy and eliminate any tests that were no longer needed/useful.

Recommendation for alternatives to Coded UI Test

We’ve been recommending for a while that customers use the open source tools Selenium and Appium tools, therefore the Visual Studio 2019 release marks their final deprecation.

We recommend using Selenium for testing web-applications and Appium with WinAppDriver for testing desktop (WPF, WinForms, Win32) and UWP apps. For testing Dynamics 365 Customer engagement products, we recommend using the EasyRepro framework that is built on top of Selenium. For Dynamics 365 Finance and Operations, Selenium based Regression Suite Automation Tool is recommended.

Support

Coded UI test in Visual Studio 2019 will continue to be supported for any issues that may arise during the support lifecycle of the product. As outlined in the product lifecycle and servicing documentation, you can continue to use Coded UI and will be fully supported for the next 5 years and an additional 5 years of extended support is also available should you need it. But this is limited to specific bug fixes, no new features will be added.

Different Visual Studio versions can be installed side by side. This means that developers will be able to continue to use Visual Studio 2019 to maintain any existing Coded UI test assets, while being able to use any new Visual Studio versions when they becomes available in the future for other development needs.

The same side-by-side installation mechanism allows for CI/CD pipelines to keep running smoothly without any interruptions while you migrate. This is because when Coded UI tests run as part of a CI/CD pipeline in Azure DevOps, tests are run against a particular Visual Studio version installed on the agent or a particular version of test platform. We will continue to support running tests against Visual Studio 2019 or its associated test platform in newer versions of Azure DevOps Server (formerly, TFS) until the support life cycle of Visual Studio 2019 ends. This means that you will not need to maintain two different Azure DevOps Server versions to be able to keep your existing Coded UI tests running while you migrate.

Migration

There are no automated migration tools available to move from Coded UI test to Selenium or Appium at this time. We recommend that any new test collateral being built should use the alternatives and plan your replacement of older Coded UI tests so that it is completed before the end of the Visual Studio support lifecycle. As part of this process we recommend that customer re-evaluate their test portfolio to remove tests that are no-longer useful.

Premier support for Enterprise can be engaged for help with migrating tests to alternatives – they can be reached via email on premdevinfo@microsoft.com

I hope that this post is helpful in answering any questions you may have. If you have any further queries, please reach out to the team at devops_tools@microsoft.com.

Prachi Bora (MSFT)
Prachi Bora

Senior Program Manager, Azure DevOps

Follow Prachi   

7 comments

  • Avatar
    Ian Ceicys

    I really wish Appium with WinAppDriver was a viable solution. It is not. (period)
    The latest release was from back in September 2018 and it’s not open source. @Prachi – Is there any update on open sourcing WinAppDriver?
    What case studies or references are there for large scale test solutions actually using Appium with WinAppDriver? I can’t seem to find any sizeable production-grade implementations, but maybe someone has better github searching skills. Here’s to looking forward to support for more test authoring tools in Visual Studio 2020 and beyond. Would love to see webdriver.io authoring support. http://try.webdriver.io/ 

  • Avatar
    André Ziegler

    my codedui tests no longer work in2017/2019. I get this exeption: UITestControlNotFoundException: The playback failed to find the control with the given search properties.
    The old compiled tests from VS2012 work, so it has nothing to do with .net 4.8 install and retarget to 4.8 in VS2017/2019, which I first thought as cause. 
    Any ideas how to troubleshoot this?

    • Avatar
      André Ziegler

      ok, I found a fix. For what ever reason, the Recorder in VS2012 set the ControlType=”Pane” for buttons and this worked in VS2012, but when I compile it in 2017/2019 the test fails to find the button. So in the UIMap.uitest I changed all ControlType=”Pane” entries to ControlType=”Button” and now the tests work again. Totally wired that the old way worked in 2012.

  • Avatar
    Roman Bäriswyl

    Hello
    As maintainer of White and author of its rewrite FlaUI, I wonder if the underlying UIA Framework will still continue to evolve and be supported or will that be shut down and replaced by something else in the future?

Leave a comment