Applying non-MS skills in TFS environment
I have to automate functional testing of an application with GUI, written in some .net.
My background experience in GUI apps testing has nothing about Visual Studio and other MS systems -- I used scripting in Ruby/Python with OS-specific accesibility APIs, such things as Jenkins hosted on POSIX servers and REST APIs to connect all these and other things together.
But here I have some Microsoft thing called TFS, which is already being used for building binaries and even manual testers do keep here test cases. And I suspect that I have to somehow record UI activity instead of full scripting, like I used to do previously.
So what is a possible application of my previous experience here, or do I have to forget about deploying new servers and inventing own ways to view and aggregate results and just fully dive into TFS, Visual Studio, learn C#, etc.? Which resources can help me to look around here?
Laycee last edited by user
The Microsoft stack is surprisingly still very popular, regardless of other cheaper alternatives.
TFS is basically the central repository. Call it git and Jenkins rolled into one. It manages version control as well as builds.
MTM is just Microsoft's test management tool. This is very useful for linking a manual test that has been created within MTM (its intended purpose) with an automated test that is part of a build on the TFS server. You can then specify test agents (basically jenkins slaves with a microsoft twist) to run your automated tests.
Automated Testing You basically have three main options for automated testing within the Microsoft domain with TFS: CodedUI, Selenium C#, and Telerik Test Studio (Art of Test).
CodedUI is Microsoft's integrated automation tool. Out of all of the three main options, it is undoubtedly the most expensive. That being said, it does VERY well at automating thick client applications that are not based on a web server, which the other two tools do not manage very well. Multi-browser support is hard to make work with anything other than Internet Explorer.
Selenium C# A free open source tool used for automating web applications through the use of WebDriver (Selenium 2.0). There are multiple language bindings for Selenium, which is why I specified C# -- but if you are using TFS, you will either be stuck with C# or Python (Python only if you take the time to set up TFS and Visual Studio to build Python projects...you may be able to use IronPython out of the box -- not sure). It is most definitely the most popular of the three main options within the Microsoft stack, due mostly to cost, but also due in part to the fact that Selenium has a very large online community with literally entire libraries of information. Built-in mutli-browser support for all common browsers, including Firefox, Chrome, IE, Safari, and even PhantomJS.
Telerik Test Studio A low-cost automation tool. Really, the only good reason to use this tool is if your application is built with Silverlight, as it is the one tool out of the three main options that handles this the best. It also boasts multi-browser support. There is also a free version of the tool, but there is very little documentation around it, causing most issues to turn into headaches very quickly unless you are okay with talking to the Telerik support team.
Shameless Plug I'm going to go ahead and put in a shameless plug for another free tool as well, which you may find to be useful as you start out automating within the .NET world: Sikuli4Net. Basically, it is a .NET implementation of the popular Java/Python image-based open source automation tool called Sikuli (www.sikuli.org).
Hope this helps you make your decision!