Coded UI Test
In the previous post, you saw how the Manual Testing has been made really easy with Camano. As I had mentioned, when you run through a manual test case for the first time, the Microsoft Test Runner (MTR) captures your UI actions as an “action log”. You have seen how this allows the tester to “fast forward” through her testing in subsequent runs, where MTR simply plays back the “action log”. This “action log” is also useful when it is time to turn a manual test into an automated test, which, for example, can be used as part of a build verification suite.
Let’s consider the case where you are testing the Windows Calculator and have a test case that checks some basic functionality of the application. You now want to automate the test, add validations, and run this regularly as part of a build cycle. Your goal is to ensure that there are no regressions in this part of the application. This is where the “Coded UI Test” feature of the VSTS 2010’s Test Edition comes into play.
Coded UI Test allows you to generate an automated test from a published test case in Team Foundation Server. You just point to the test case on a Team Foundation Server and code will be generated for the test. Magic!!! Not really. Visual Studio simply takes the action log stored for the manual test and converts it into code. (Coded UI Test is a new test type in Visual Studio). I really like this simplicity in converting any manual test into an automated test!
As an example, the “action log” for the manual test case noted above may look like:
When you convert this into a Coded UI Test, the actions noted above are translated into the following snippet of code.
Now, in the manual testing case, the tester of course was able to verify in person that the above test case generates the result 9. Coded UI Tests allow to simply add such validations directly into the code. This is as simple as right-clicking the position in the code where you want to add the validation, bringing up the “UI Control Locator”, selecting the control and it’s property in the application that you want to add validation for, and letting the tool add the assertion. Here are some screen shots for the “UI Control Locator”, and the screen to select the control property to validate.
You drag the crosshair of the control locator onto the result box of the application. Click on Add Control and Show Properties. Select the “DisplayText” property and hit OK. The following code gets generated for you.
Presto! You have successfully created a Coded UI Test and you can now run it.
By the way, while in this case we have generated the automation code from an existing manual test, you can also start from scratch and use a action recorder to record the actions you want translate into code. Here’s a screen shot of the action recorder
Of course, you may not want to use any of the tools, but want to create Coded UI Test right at the API level. For this, you can use the new Microsoft.VisualStudio.TestTools.UITesting API set to directly reference UI controls, perform actions, and validate properties.
It is also important to point out that code can be generated into any of the .Net languages. In the first version we will support code generation into C# and VB.Net. We hope this further helps break down the walls between developers and testers, where the automation engineers or developers can use the standard .Net languages for test automation code generation and there is no new scripting language to learn.
You will also be happy to know that, continuing with our theme of full integration of features across the life cycle, Coded UI Tests are fully integrated with Team Foundation Server (if you are using one).
- You can publish the results of a Coded UI test run to Team Foundation Server. A bug may be created in Team Foundation Server from the results of a Coded UI Test run.
- You can attach the Coded UI Test to a Test Case (see screenshot below). You can then run this automated test from Camano.
- You can create a data driven test case sourcing its data from a test case on Team Foundation Server.
This then completes a quick overview of the “Coded UI Test” feature. To reiterate again, you will use this feature when:
- You want to add validations to your test
- You want to create an automated test and run it as part of the build cycle
- You want to customize your automated tests to improve its resilience
I am also including a link here for a step-by-step tutorial that walks you through the creation of a Coded UI Test - Tutorial on creating a Coded UI Test
Most of you are familiar with test automation and use it in some form or other in your projects. What you think of this new feature? Are there specific details you’d like me to elaborate in future posts? I am very interested in hearing from you – do leave a comment.
Comments
- Anonymous
March 14, 2009
PingBack from http://www.clickandsolve.com/?p=23142 - Anonymous
March 14, 2009
ブログ記事の紹介です。Visual Studio Team System 2010 の新機能である Coded UI Test についてわかりやすく紹介されている記事があります。 Amit Chatterjee's - Anonymous
March 14, 2009
Thank you for submitting this cool story - Trackback from DotNetShoutout - Anonymous
March 16, 2009
Thanks for providing this information Amit. We worked with this in the CTP and it shows great promise :) Can you please go through the running of tests against a selected data source. It is not functional in the CTP so we are curious to see where this is planned to go :)Bob Hanson - Anonymous
March 18, 2009
Hi Bob - we do support the running of a Coded UI test against a data source. Mathew Aniyan, talks about this in his blog post - http://blogs.msdn.com/mathew_aniyan/archive/2009/03/17/data-driving-coded-ui-tests.aspx. This post shows an example of data driving through a CSV file, but we support database sources as well. - Anonymous
March 19, 2009
Steve Lange on I told you it was coming!  "Team System Big event" The Public Sector DPE - Anonymous
March 20, 2009
Hello, 1) Can the Team Test system be used to test legacy(already existing) VB6 code? 2) Does Team Test have a way to simulate manipulating a legacy VB6 GUI, e.g. filling in dialog boxes, push GUI buttons, etc?Regards, Vasili - Anonymous
March 24, 2009
Hello Vasili - thank you for your question. For the VS 2010 release we will validate the GUI testing feature (record and playback) for Web, WinForms, and WPF platforms. However, the technology should work fine for VB6 as well - do give it a shot with our CTP bits. Likewise you will be able to generate a CodedUI test for VB6 applications as well - the generated code though will be in VB.Net or C# languages. - Anonymous
March 24, 2009
Hi Amit, Thanks for your generous answer. What is CTP bits? Is it possible to get a pre-release of 2010 to try out the Team Test UI functionality?Very kind regards, Vasili - Anonymous
March 24, 2009
Hi Vasili - CTP stands for "Community Technology Preview". You can down load the last CTP bits for VS 2010 at - https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790 - Anonymous
March 24, 2009
Thank you, Amit!Regards, Vasili - Anonymous
April 25, 2009
Hi Amit,Thanks for the intresting article.I'm working for a few years on automation of web based application with HP (former Mercury) QTP.I was wondering how well the "UI Control Locator" know to identify a dynamically generated UI element in HTML?Thanks,Eran - Anonymous
May 18, 2009
Hi Amit, How are you? When will Team Test 2010 be available for alpha? for beta? for release?Kind regards,Vasili - Anonymous
May 19, 2009
I am very excited proud and proud to introduce the new testing features you’ll find in dev10. In addition - Anonymous
June 09, 2009
Hello Amit,Does to CodedUI test work for infragistics controls?ThanksTom - Anonymous
August 07, 2009
Can I generate a load test using the Coded UI Test ? - Anonymous
October 12, 2009
Is it possible to customize the error messages that display in the Test Results? Is it possible to add log messages that indicate test steps? - Anonymous
October 16, 2009
The comment has been removed - Anonymous
October 26, 2009
coded ui testing not capturing the popup and the sub menus of the ui - Anonymous
October 30, 2009
In Working with Coded UI Tests, how would you manipulate the values of cookies? We can do this with the current API we leverage for functional testing but haven't found a way to do so with the Coded UI framework. Similarly, the current api we use exposes and http proxy such that in a test method, we can run blended tests at the UI or protocol (http) levels. Is this possible with coded UI tests? - Anonymous
November 15, 2009
I like this post very much. Very informative and easy hands on for newbies like me. In addition I have seen significant changes in Beta 1 and Beta 2 code, do you have any plans to republish this post with Beta 2 changes? - Anonymous
January 28, 2010
how to use multiple CSV files for a single TESTMETHOD - Anonymous
April 15, 2010
Can any one explain the pros and cons of Coded UI and QTP - Anonymous
June 01, 2010
The comment has been removed - Anonymous
June 01, 2010
The comment has been removed - Anonymous
September 02, 2010
hi Amit, This is keshav .as i am new to coded ui testing i am not aware of how to start with could u please give some linksregarding the features o CUI .earlier i worked with QTP will it help in coded ui test.expecting reply soon. - Anonymous
September 06, 2010
Hi,I had a list of issues could you please aresolve it.Please find the link Belowspreadsheets.google.com/ccc - Anonymous
September 06, 2010
Does CUI supports Descriptive programming ? can any one please give some links in simple examples.please have a glanca on below linkspreadsheets.google.com/ccc - Anonymous
September 23, 2010
Hi All,I have visual studio 2010 installed but i am not able to see the coded UI automation in that.Please help.Thanks,Vaidy - Anonymous
October 12, 2010
Nop. Infragistics controls doesn't allow to acces to their field - Anonymous
April 04, 2011
Hi Amit,really good page on codedUI. Do you know if I can use this tool for automation test related with word/excel addins? Word does not expose the ID's of the control in the addin windows? So is there any work around to achieve this through codedUI? - Anonymous
December 25, 2013
hi amithow do I add a column inside the excel file to the textbox ?. - Anonymous
April 04, 2014
I am blogging about hand-coded CUIT over at burdettelamar.wordpress.com. My post on DRY page objects is here: burdettelamar.wordpress.com/.../keep-your-page-objects-dry