Wednesday, August 26, 2009

Starting in a New Place can be Fun

After starting at my new position I needed to come up with some new test strategies, it was a new product that had not yet had an experienced tester on it, and it was still under development with changes coming.  Spending a couple of days on the web application I got to learn all about how Sharepoint seems to work, and how Silverlight is delivering content, so having to jump back up to GUI level testing from back-end system testing I decided to take a close look at the future.  To me UI testing gets repetitive fast, while you are new you can find a lot, and that's originally what my bosses wanted, someone new to the project with a testers ability to see and plan things out.  So I decided to look around and see what could I eventually use to script this, and it had to be something to script things fast, I ended up trying and looking at one or two tools but ended up with Selenium.

It gave me what I wanted in quick scripting, allowed me to deal with IE and FireFox, which were the browsers we were using and while there is no official decree on support they are the ones the VP has on his box, and as has been said "we support what WE use."  WE being the Engineering team.  So I was covered there, and since the Build work is being done with C# and PowerShell the ability to export Selenium scripts as C# code that I could combine into a test library was a boon, I've built some simple scripts and made a small library that I run daily now.  This was exciting to our build master, who does some checking now but its all manual and right now he sees the ability to script it all with PowerShell, so I took that on and I run my test library with PowerShell.  How you ask?

Well I looked at .NET frameworks, because it would be nice to run tests with the builds and do some continual integration, but the build system is VSS and is going to be upgraded to Subversion soon, but no one knows when soon is but I was told not to worry about integration yet.  After all, they've gotten along fine without it so far.  So what was left?  PowerShell, but there is no reporting in PowerShell, so I went out and found something called Gallio which has a command line runner that can take my test library and run it.  So I can run my Selenium tests, through PowerShell and from Gallio I get a report of my test, including timings on how long the site takes to respond; useful information for a product we can all say acts slow but no one can quantify it or wants to look at that yet.  I am gathering timings as I run my tests and recording them for the future, at some point we will want to look at this and how the site has responded over time, but not yet.  So I'm planning for it.

In a few short weeks I've been able to capture a lot of material in a test plan, review major portions of the site and come up with some nice test cases, generate User Scenarios, talk to Support and some of the Content people to come up with additional cases based on what exists now.  After all, this will be a transition to a new site, and Users will need to migrate too, so why not make sure they are covered?  Plus I've been able to play around with PowerShell, C#, Selenium and Gallio all stuff that's new for me, and who says learning can't be fun?  I love being in spots like this, and its nice to see people excited about testing, frameworks and tools so that we can all do our jobs better.

I'll be adding more material here as I go along, so if you've been in a similar situation you might get some ideas.

Some useful links:

Selenium Home Page
Selenium Help Forums
Gallio Automation Platform

Microsoft's PowerShell Script Center