Windows Application Automated Testing
Looking for a tool to UI testing of a Windows (.NET WinForms) application. The idea is that the analysts will record the tests via some UI and it will be able to be played back over and over again.
Commercial tools are fine but bonus points for free ones.
closed as off-topic by Martijn Pieters♦Mar 22 at 22:06
This question appears to be off-topic. The users who voted to close gave this specific reason:
- 'Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.' – Martijn Pieters
12 Answers
Some others:
I believe they're both free, and Quail looks really nice!
(I was going to just comment on an answer above, but ran out of room.)We bought Ranorex, and I wouldn't do it again. Their licensing for 1.5 (what we're using) was unclear. Their written license was per user, their marketing said per machine. Still, enforcement was key-based, and not a big deal when a machine got wiped or a replacement tester came in.
For the 2.0 product, their licensing is now tied to the machine. Reimage a machine and you get to relicense it. I'm just not going to support that kind of hassle with my company's thousands of dollars, and we didn't upgrade.
For what they want for the product, a lot of the functionality could be easily written using the UI Automation Framework. Ranorex is a decent product, but I question its value for the money. We're moving a lot of our new tests to just coding to the UI Automation Framework, as we often end up modifying Ranorex-generated code anyway.
TestComplete.
You can definitely use capture-replay to capture and run the test script. But I would suggest that you must at least manually edit your scripts to make them
- more readable
- easier to maintain.
The good thing about TestComplete is that it is able to look into your form's properties, capture those properties so that you can refer to those properties by their name, not by just screen coordinates.
Like Tom E stated, do take caution while considering going down the record/playback path for test automation.
See Uncle Bob's article on Ruining your Test Automation Strategy.
The main problem is that the record/playback tools couple the tests to the GUI which makes them very fragile.
Uncle Bob's article does point out that some testing needs to occur on the GUI..but that he recommends stubbing out the business rule code.
Sorry I can't provide you with a specific UI test automation tool..but hopefully this caveat will help you make the best decision on how to employ the tool that you eventually use.
So far I have found:
- Ranorex which looks really good.
- Test Automation FX, also looks good and seems very well priced.
- Microsoft's UI Automation Framework, which does not have the recorder but if I had to I could code one using this.
- white which looks similar to the UI Automation Framework, but has an alpha quality recorder.
Comments please if you have used any of these.
At my company, we decided to go with http://www.sikuli.org/. We felt it was the perfect mix of cost (free), ease-of-use, functionality and extend-ability.
Sikuli is Python based (Jython, really) which is great and its open-source. There's a tiny bit of coding required, but it can be as easy as just calling functions. Their IDE makes it really easy to get started. It is not a record and playback tool. It functions based on computer vision algorithms - you give it screenshots of what to look for and it finds it on the screen and then performs the requested action (click, type, etc) on what it found. This is true independent testing since Sikuli knows nothing about the software its testing. It does not know about underlying APIs - it just does what a real human would do.
We have integrated Sikuli with Robot Framework, http://robotframework.org/, and have created lots of custom python code to build a robust testing platform. This may not be as easy as licensing a tool from a vendor but the time and talent investment in these two open source tools has been well worth it.
Network marketing programs feature a low upfront investment--usually only a few hundred dollars for the purchase of a product sample kit--and the opportunity to sell a product line directly to friend, family and other personal contacts. Network marketing is a type of business opportunity that is very popular with people looking for part-time, flexible businesses. Most network marketing programs also ask participants to recruit other sales representatives. Some of the best-known companies in America, including Avon, Mary Kay Cosmetics and Tupperware, fall under the network marketing umbrella.
There are a bunch of similar questions on SO:
- automate-interaction-with-a-gui-interface (Edit: no longer available)
- automated-testing-of-windows-forms (Edit: no longer available)
In my experience, there are a lot of good open source tools for the web, but not so much selection for open source thick client test automation tools. If you want good support with robust functionality, especially recording, you will need to look at the commercial tools (QTP, RFT, TestPartner, etc..)
You should have a look at http://opensourcetesting.org/functional.php A lot of tools are listed here and you should find something that meet your needs.
Visual Studio Team Test 2010 is coming with a tool for recording and playing back UI tests. You'll find some pointers at:
Checkout Ranorex, commercial, quite expensive but powerful (not affiliated).
We were using Mercury TestDirector a few years ago and quite happy with it. (All the caveats as mentioned by others apply.)
Mercury was aquired by HP and the tools have been rebranded as HP QuickTest. Not sure how much has changed, but certainly worth a look.
I tried to include a link to the HP website, but the URL doesn't look too 'stable'. Not exactly a confidence builder ..
My proposal is QA Agent(http://qaagent.com/). It is free web based IDE for development of web automated tests. Basically you are using jQuery to develop your tests. You can run tests in your browser. It looks like a new projects, but I really like the idea to develop tests in the browser. You know how long it takes to set up your testing environment. With QA Agent it takes 10 seconds.