I have worked with a multitude of automation frameworks* in the past 5 or so years and Ill try to condense my knowledge into a few recommendations...
* I have mostly worked in windows testing and in most cases, the windows OS is better supported for automation compared to Linux. If you are looking at Linux, only the role your own applies. Also, many of my answers are based upon .net solutions but many have reasonable ports (Example: WatiN [.NET] was made from WatiR [Ruby] and WatiJ [Java] is another port).
Im going to steal a little from a presentation I gave to code camp earlier this year
Before investing too must time in the development of automation, I would consider the following:
How stable is the system or component (UI, DB, etc.)?
- What are managements expectations?
- How long do you expect the product to last? What is the budget in time and money?
- Who is writing the automation? Is it a full time job? How experienced in QA and in writing code is the automation developer?
- How easy is it to create the automation? Are test hooks created (Unique IDs or names)? How many custom controls exist in the app (Treecontrols in HTML, for example)?
- How stable is the test tool?
See:
http://www.kaner.com/testarch.html [Link appears broken, here it the google cache of it:
http://webcache.googleusercontent.c...tarch.html+http://www.kaner.com/testarch.html ] for more good advice. Also see
http://www.io.com/~wazmo/papers/seven_steps.html. If you would like to see my slideshow, go to
www.sisqa.com/Training/201002_Automation-1000_Tests.ppt. I dont know where they have hidden my example source code, but Id be glad to email it to you if you are interested.
Now to try to answer your question
Paid frameworks:
Visual Studio Test Prof. [2010], QTP, SilkTest: While both of these tools can be helpful I don't think the automated web testing by itself is enough to be worth the cost. Both have entire systems built around them to run tests, associate to requirements/stories, associate to manual tests, and a whole lot more. If you are willing to spend the money (Ive heard rumors of rather large #s, but I simply dont know) but are unwilling to spend the time to write a custom solution for some of the problems you face. I do want to note that VS test tools before 2010 were a joke and should not be used for anything but load testing. Of the three solutions, I think VS is probably the best, newest and most reasonable long term.
Free Non-Test Frameworks:
AutoIt, AutoHotKey: IMHO these can be useful tools in your tool belt, but should never be your primary tool.
Role Your Own:
Nunit, MSTest, FitNesse, etc: Personally I would suggest you hijack a unit testing framework to run your tests and not use FitNesse which I think is a bit heavy to start with and for my current company did not make sense. That being said, I dont have much experience with the system.
Some Test Runner, Reporting Agent:
I have yet to see a really good test runner except possibly the one built into selenium which is enough to get you started, but not the ideal solution. We ended up writing our own runner. I have considered writing my own open source system, but have not had the time.
Framework:
- WatiN: This is what I use at work, and it is the best system I have ever worked with, if you design it right. The biggest issue I have with WatiN is handling dialog popups (alerts, document uploads, etc). One of only a few tools that will work with other tools without any problems. It has very active support. While firefox is mostly supported, there are no dialog handlers and I have found with fat pages it doesnt work so well. [4.5 / 5 for IE, 3 / 5 for firefox]
- Selenium: Not a bad system, but from our evaluation it did not handle regular expressions for IDs (or name or any other way you might need to find an element) nearly as well as WatiN. In an ASP site, having the while _ID001_Blah_Blah_RealID can be a bit painful. Selenium is by no means a bad tool. I should note my last major evaluation was about 2 years ago, so they may have fixed some of the pain points. [4 / 5 from my previous evaluation, no opinion for firefox as that was not evaluated]
- Art Of Test: I did only a little work with them after having a significant framework in WatiN. I found Art of Test to be controlling (not willing to share with WatiN) and there were several times when I wanted to see the source, but couldnt since they dont provide it
[3 / 5]
- Slick Test Developer: Written by me 🙂. Currently there is only beta support for IE and no support for Firefox. You would have to create your own build at this point as web support doesnt exist in the released version. I refuse to give comment on its functionality other than to say it includes many ideas of things I felt were good ideas from other systems and attempts to provide reasonable functionality. If you do use this system, I would be willing to give some support as good beta testers are hard to find 🙂.
IDE:
I really do feel a proper IDE with autocomplete cant be overlooked . I suggest Visual Studios or even Sharp Develop if you want a free solution. If you can get the money, invest in resharper*.
* I received a free license from them for working on open source projects.
I hope this helps. I probably could write a book on the subject, so I'm sure I've skipped over some important points in just a page and half
🙂. Feel free to ask more questions in detail.