Friday, September 11, 2009

Automation in its many forms

So in order to get things working smoother I have spent a couple weeks researching some automation tools so that once we really start getting into coding we have something in place to make testing easier, not only for me but anyone else who wants to check out their code.  I've gone through a number of demos on my machine, yes there has been much installing and uninstalling the past couple weeks, in order to assure that I have chosen the right tools.  Not just GUI test tools, since the project is an update to an existing web site, but test case tools and frameworks that will help with automation, also being able to do load and performance testing at some point would be nice.  This is what I have come up with:

Seleniun is the GUI tester of choice, why was because it was easy to generate tests and although the Ajax and Rad Editors on the site don't work as well with Selenium as I'd like I am ok with the manual checking of a couple parts of the site.  Better than all of it, plus being able to export the scripts into C# has allowed me to take the tests we have, import them into a test library and then run those through the PowerShell build scripts with Gallio to give us test reports.

I wanted a Test Case Management Tool so went through some research and the only ones I came up with as possibilities were:
  • Test Link was my first choice, since I had heard good things about it from people in my last company, though I didn't like having to install Apache, PHP and MySQL on my machine I figured it's worth a shot.  Basically I wanted something simple, and I got around the MySQL option by utilizing my local MSSQL install, with some work, and then I got to work.  While it was interesting I thought the interface was a little unwieldy, not that intuitive, and even with the help files and forums I had a hard time getting my fields to show up on Test Cases at the times I wanted them.  My simple case was to show Bugs added to a Test Case, so they could be seen on early reviews, and modified when they were worked on, I couldn't get it to work right even after a struggle.  Some of the optioins were right but with some other comments about large numbers of test cases causing issues, I decided it was not worth it, considering half my Users were going to be non-Engineering folks it was not going to work for me.
  • Fitnesse was my next choice, as a wiki with some human readable language would be a good way to generate some Acceptance Tests, and Test Cases, for the project.  I figured at least some of the Business Users could get used to a wiki, after all most are writers for the sites content, although I was later told that no it would not happen I knew the wiki idea would be more acceptable in some form.  Besides, with Selenium, if I could get the scripts exported into a wiki format then I could easily script tests then put them on the wiki, so we'd have them as smoke tests for the build and as automated tests on the wiki.  All I needed was something simpler for the Business folks.
  • Web Test is an add-on developed by Gojko Adzic that works with Fitnesse, he does a lot with Fit and Fitnesse with training, seminars and books (one of which is being delivered to my home today [Sept 11, 2009] as I write this).  This add-on makes writing the tests in the wiki simpler, and works in Java and .Net forms, but I had a lot of trouble getting this to work properly with the tests when I was trying to write my Suites, and really get some power out of Fitnesse.  Not sure this is being actively developed since the last comments on the site were from 2008, so I had to let this go and see if there was another way.  Note: Gojko has noted in the Fitnesse Yahoo Group that he is no longer maintaining this, so I'd skip it as an option. 
  • Fitnium looked to be that other way, right now I am implementing my tests in it, the install is easy and it did not take much for me to get the libraries in place, WebTest was tougher for me to use since the libraries I could get did not work with the 1.2 version of Selenium I wanted to use and I was not sure how to compile new ones, yet Fitnium worked right away.  It's language is even simpler, and I had all I needed right out of the box, so its the one I am going with because of that ease of use, and hopefully understandable code for Users who can then write their own tests in the future.  It's very nice, and I like it alot, once I get my Fitnesse and Fit books I can expand my use of it.
Now that I have Selenium and Fitnium going I am starting to look at some Load and Performance tools, so far I have the following to check out:
  • JMeter, which I think I used in the past but it was almost 10 years ago.
  • Pylot, a python based tool developed by Corey Goldberg, a fellow forum member
  • DieselTest, never heard of this but its Windows based and matches out environment
  • OpenSTA, which I used many years ago and had a hard time with, maybe this time will be different.
It's nice starting up a group from scratch, even when you are really the only official QA person on the project and in the group, but its also nice when you can share tools with people who also take a look and they all agree, "that one is cool!".

No comments: