Tuesday, April 7, 2009

The 'Testing Tours' List

Read more about the idea behind Testing Tours.


Tours
1.The Intellectual's Tour
2.The Landmark Tour
3.Preschooler's Tour

Thursday, April 2, 2009

Preschooler's Tour - A Testing Tour

Taking a cue from James Whittaker's recent webinar on '5 Ways to Revolutionize Your QA' I'm posting one of my testing tours. Before watching the screen cast, and reading the original blog posts about Testing Tours, I never thought about good ways to explain how I go about testing. I found the Testing Tours concept rather interesting so I figured I would create some tours from things I use to do when I was in QA (and sometimes still use as a developer).

The Preschooler's Tour (maybe I should rename it to the MC Hammer Tour) is when you look at the screen you are testing and think of all the things you can touch that would cause the developer to say "don't touch that" or "wait, you can't touch this yet." For example, pressing the Login button before entering any credentials or the Save button on a blank form. Maybe clicking the Spell Check button for an empty text area or navigating to the Order History page before creating any orders.

I've noticed developers (including myself still) tend to create their pages, and write their code, linearly so the further down a page you go the more likely the code assumes the required items above it have been taken care of by the user. The same thing happens when displaying a page for a specific set of data. The code assumes you have the data you need because why else would someone be viewing the page.

I've found this tour to be a good starting point when you're not sure where to begin. Often times the bugs you find will lead you to ask other what if? questions causing you to dig deeper into the application.

Monday, March 30, 2009

The 'Meet And Code' Experiment

This weekend I had the opportunity to participate in a 'Meet and Code' event with some co-workers. The idea behind the event is to spend the weekend (5pm Friday - 5pm Sunday) working on a coding project with the goal to learn new technologies and work on best-practices we might not get to use while at a client's site. Completing the project takes a back seat to learning so there is no pressure to hurry up and finish anything. Participates are free to come and go as they please and work on whatever aspects of the project appeals to them. There were a lot of parallels between the Meet and Code event and the Give Camp event I participated in last year. One big difference is the Meet and Code project isn't for anyone which removes the pressure to complete the project and allows for learning to take the lead. The event was organized by a small group of people where I work and open to anyone in the company. I learned new things and had a lot of fun hanging out and coding with my co-workers.

The event was very successful.

Ramping up took a while but the team organizing the event had spent time before hand planning out the project and getting some things ready so we all knew what the project's goals were. This was first time I've had the chance to attempt to practice TDD as well as the first time I've used a mocking framework so it took me through Saturday before I started to get it. Even though it took me about 2.5 days to accomplish something I can do in five minutes without TDD and mocking it was an enjoyable experience because I didn't feel rushed to complete anything and could take time to learn. There is talk of doing a second phase so I'll be ready to hit the ground running next time.

This event was more of an experiment so it was only open to people within the company but there's no reason this couldn't be something you do with friends and community members. Getting your hands dirty with something new is the best way to learn and having a group of people available to work through and discuss problems is very helpful and a lot of fun.

read some more comments from Jeremiah Peschka
read some more comments from Rick Kierner

Thursday, March 5, 2009

JavaScript: Beyond the DOM

This afternoon I had the opportunity to do another lunch-and-learn presentation where I work. The goals for my presentation were to try and clear up a few areas in JavaScript found to be a bit confusing, show aspects of JavaScript people may be unaware of and to encourage people to give as much consideration to their JavaScript code as they do to their other application code. Finally, I wanted to do the presentation focusing on the language itself with as little use of the DOM and HTML as possible. If you are interested you can watch the javascript lunch and learn screencast. Any feedback you have on the presentation is more than welcome.


The inspiration for this presentation started to develop after I finished reading Pro JavaScript Design Patterns by Ross Harmes and Dustin Diaz. This book was an eye opener for me for a number of different reasons. After reading the book I realized there were a lot of different aspects of JavaScript I didn’t realize I didn’t know. I have been using JavaScript with the DOM for a number of years and thought I was proficient but I learned there was a lot more to JavaScript than I was aware of.


After finishing the Design Patterns book I looked for another book with a focus on the language itself (instead of involving the DOM) and found JavaScript: The Good Parts by Douglas Crockford. This book was exactly what I was looking for and helped clear up a lot of things I found confusing. After reading this book I realized other co-workers might be in the same boat as me and might be interested in finding out some of these things so I signed up for the lunch-and-learn.


As I was preparing for the presentation I came across a recommendation for Object-Oriented JavaScript by Stoyan Stefanov and found this to be an outstanding book (I actually wish I had started with this book). If you are looking to learn the fundamentals of JavaScript and want to get a strong understanding of the language I would recommend starting here. Even if you are confident with JavaScript I would recommend all three of these books because they contain a lot of good information.



JavaScript lunch-and-learn project files

Friday, December 19, 2008

How do you find child elements when using WatiN?

A few months ago I played around with WatiN for a few hours and I liked it a lot. We wanted to create some automated web tests for the project I'm currently working on so I figured I would use WatiN for the job.

While creating the tests it took me a bit of time to figure out how to get access to an element's child elements. I finally found the solution on the WatiN mailing list.

The trick is to cast an Element to an ElementsContainer

The code below demonstrates how to use Filters and ElementsContainer to find a child element in cases where you don't have an ID to use. For this sample assume you have multiple divs on your page with no ID and a common class called message. You want to be able to click a link in one of these divs but the links have no ID or class to select them by. However, you know the particular div you are looking for is the only one with links that have "yes" and "no" text inside a div with the message class.


Regex regexNo = new Regex("no.*", RegexOptions.IgnoreCase));
Regex regexYes = new Regex("yes.*", RegexOptions.IgnoreCase));

foreach (Div div in ActiveBrowser.Divs.Filter(Find.ByClass("message")))
{
    ElementsContainer ec = (ElementsContainer)div;
    if (cancel && ec.Link(Find.ByText(regexNo).Exists)
    {
        ec.Link(Find.ByText(regexNo).Click();
        return;
    }
    else if (!(cancel) && (ec.Link(Find.ByText(regexYes).Exists))
    {
        ec.Link(Find.ByText(regexYes).Click();
        return;

    }
}

Wednesday, August 13, 2008

Hockey Update

It has been a while since I've posted a hockey update so I figured I would put something up to allow people to catch up with the action.

This summer I’ve been playing in The Chiller’s Adult league in the D South division with the Blue Dragoons. I played with the Blue Dragoons last summer and had a great time so I was glad when they let me join them again. We did very well during the summer session ending the regular season in third place. We’ve managed to win both the first and second round playoff games and will be playing for the championship this Sunday (8/17/2008) at 7:40pm at the Chiller North rink. We will be facing the Brr, a team we lost to during the regular season, in the finals. This should prove to be a tough game because the Brr’s defense is outstanding.

Two weekends ago my wife and I participated in our second "OV" Hockey School session and had great time once again. In fact both of us enjoyed it even more this year because we’ve both learned a lot over the past year and are more comfortable and confident on our skates. I’ve blogged a few times about the Donskov’s and the “OV" Hockey School so I won’t repeat too much about how great these guys are. This year my wife and I were on different teams so we knew one of us would win the “OV" Cup. This year the black team won, once again, so my wife was able to skate the cup while team white watched. I’m looking forward to next year and hopefully being able to win for once.

The Lou and Gib Reese Ice Arena will be starting a 3 on 3 adult session August 17th, 2008 which will run for four weeks. The 3 on 3 games will be Tuesday and Wednesday nights beginning at 9 PM. The games will be full ice games with a 30 minute running clock and a referee. No icing or offside is called and all penalties result in a penalty shot. There will be 12 games total (that averages 3 games each week). Each game will have lots of skating, shots and plenty of open ice. There’s still some time to sign-up if you’re interested. I’ve tossed my hat into the ring to be a potential captain for one of the teams so we’ll see how things go.

CodeStock Report

This past weekend I had the opportunity to attend CodeStock in Knoxville, TN and had an outstanding time. I hitched a ride with Luc and James and had a blast during the 6 hour ride to the hotel on Friday and back home Saturday evening.

CodeStock offered a number of great sessions to choose from and the ones I picked were: James Avery’s Open source tools, Luc and James’ Simplicity in Visualizing Numbers, Todd Anglin’s First Look ASP.NET MVC, Brian Prince’s Soft Skillz: They aren’t just for humans anymore, and for the last session Jeff McWherter’s Much ado about Testing.

They were all great sessions and, as always, the presenters did an outstanding job. Out of the sessions I attended I enjoyed Brian Prince’s the most. His presentation contained a lot of helpful information in areas I need to work on.

Michael Neel and his team did a superb job with the event and I had a great time. I could tell they put a lot of effort and hard work into the event and it showed.

I’ve mentioned this in other post but these regional events are great opportunities for developers. I encourage everyone to take any opportunity they have to attend these events and get involved