Posts in IWST
Scripting for Testers and Test Automation with Open Source Tools

This weekend we held the final IWST workshop for 2007. The topic of the five hour workshop was 'Scripting for Testers and Test Automation with Open Source Tools.' What a great workshop! We packed in seven experience reports (with open season questioning) and we talked a bit about IWST for 2008. Attendees for the workshop included:




  • Andrew Andrada

  • Charlie Audritsh

  • Michael Goempel

  • Michael Kelly

  • John McConda

  • Chad Molenda

  • Cathy Nguyen

  • Charles Penn

  • Mike Slattery

  • Gary Warren

  • Chris Wingate

  • Jeff Woodard


We opened the workshop with an experience report from Charles Penn on his experience learning Watir. Charles covered some of the resources he used to learn the tool and he shared the details of his experience trying to get popups to work. Charles currently uses Watir for some of his regression testing. He has a suite that he runs daily over lunch. The code Charles used for his popups can be found here: Pop Up Clicker and a Test Logging Example


Following Charles, Jeff Woodard shared an experience where he used AutoIT to automate the import and export of test cases with IBM Rational ManaulTest. Jeff worked at a client that required the use of Rational ManaulTest. He felt the tool restricted his productivity. So he created some simple scripts that allowed him to work in his tool of choice for test case design and documentation, then all he had to do was run the scripts to "check in" the tests. With about 2 days of scripting, he estimates he shaved over a week from his workload doing administrative testing tasks. He managed over 700 manual test cases using AutoIT. For those who might be interested in his solution, the AutoIT code can be found here: export and import


Next, Cathy Nguyen shared how she currently uses Selenium for her test automation. The application Cathy tests is very Ajax intensive, and Selenium was one of the tools that she could get to easily work with the application. She uses the FireFox recorder, then takes those tests and converts them to C# for integration and management in Visual Studio Team System. With a bit of help she was able to create an 'MS Unit Test' converter, allowing her to integrate her Selenium tests with the developer tests already in use. Results can be tracked in the team SharePoint site and the scripts can be stored in source control. One of her next steps is to get the scripts running as part of the continuous integration process. The code that Cathy used to convert the tests to MS unit tests can be found here: tbd


After Cathy, Chris Wingate and Chad Molenda shared a joint experience of using Watir for smoke testing multiple projects in multiple environments, with several builds a day. The testing load on the smoke test scripts required them to migrate the smoke tests from IBM Rational Robot to Watir (faster execution, parallel execution, and easier code maintenance). They experienced similar popup issues, but also had some threading issues and dealing with multiple concurrent browsers on the same machine. They are working on creating a new method that allows you to manage dialogs based on the parent window instead of the user32.dll. I believe they plan on sharing that code back with the Watir community when they are complete; so look for that code in a future Watir release.


John McConda then presented an experience of using RadView WebLOAD on a client project. WebLOAD has an open source model that allows for some features in the open source version with a commercial version for clients who need more features/users. John said that he was able to get it to work with some Ajax and did a quick demo against the Mobius Labs website.


Following John, Charlie Audritsh presented some scripting tips for performance testers. First he showed a trick he uses to script usage model paths using case statement with a random number generator. This simple technique allowed him to reduce the number of scripts required to implement his workload model, and also allowed him to implement fractional percentages for user groups/activities within the model. After that, Charlie showed a store procedure he wrote to help with performance test logging. He uses it for debugging and for detailed logging when he needs it (turns it off when he doesn't). An example of both techniques Charlie shared can be found here: dec_iwst_audritsh.wri


Finally, Mike Slattery shared a number of tools he has tried for his testing, including Jacobie, webunitproj, jwebunit, htmlunit, httpunit, and Selenium. He found he had some common problems he had to work through, regardless of the tool. Those included popups, difficulty in having the same tests do double duty as functional and performance tests, difficulty in testing stylistic aspects of the application, and general test code fragility. Mike did say something about the ability to build your own recorders in Selenium, something I wasn't aware of. I know I need to check that out.


On the topic of future IWST workshops, I'm sure we will do something for 2008. I don't think they will be every month, but we'll see what we can do. I plan on starting some discussions on the IWST mailing list and we'll see what the community has energy for. I will also get all this info (code and such - when I get it) up on the IWST site at some point. I think I need to upgrade and redesign a bit in the coming months.


 



Thanks to all who participated in the 2007 Indianapolis Workshops on Software Testing. The full list of attendees for 2007 include:




  • Andrew Andrada

  • Charlie Audritsh

  • Dave Christiansen

  • Howard Clark

  • Lisa Etherington

  • Michael Goempel

  • Jason Horn

  • Karen Johnson

  • Michael Kelly

  • Steve Lannon

  • Kelvin Lim

  • Baher Malek

  • John McConda

  • Scott McDevitt

  • Rick Moffatt

  • Chad Molenda

  • John Montano

  • Cathy Nguyen

  • Charles Penn

  • Kenn Petty

  • Vishal Pujary

  • Mike Slattery

  • Michael Vance

  • David Warren

  • Gary Warren

  • Chris Wingate

  • Jeff Woodard

Some questions to think about as you plan your workshop…
I've recently been helping plan the facilitation for a workshop. As I've been writing up notes around the details, I thought I might share some of the questions I'm asking the organizers.

Who will be attending?
As you think about your attendees ask yourself what they will contribute to the workshop. Not everyone needs to be an expert. Sometimes novices to a topic add energy to a room. They ask good questions. They take good notes (and don't underestimate the value of a good note-taker). You'll need some people who contribute content, some people who contribute questions, and some people who contribute different amounts of energy at different points in the workshop.

Where will this workshop be held?
As you think about your location, think about price (especially if you're paying out of pocket), but also about:
• How accessible it is: If people are flying in, can they get a cab there, are directions difficult, or is there road construction they will need to deal with?
• What options do you have to arrange the room: Some rooms only have large rectangle conference tables. Those make it hard to create a u-shape, a circle, or classroom style seating.
• Can they accommodate a projection screen? Will you even need one (you won't if they have clear and open wall space)?
• Will they have wireless internet access? And is that good or bad for the type of workshop you want to run? (Sometimes you may not want wireless; it can be a distraction.)

What equipment will you need?
I now have a small "workshop kit" I've built. It's a couple of Kinko's boxes filled with the following:
• a projector
• flipcharts and markers (technically, the flipcharts don't fit in the boxes, but they sit right next to them in my closet)
• note paper
• colored index cards
• post-it notes
• pens
• name tags
• stickers
• power chords / extension chords
• a small clock
• chimes
• collapsible easels
• paper towels, paper plates, forks and knives
• rubber bands and paper clips
• aspirin/Advil
• extra business cards

There may be more in there, but that's what I can remember. Think about what else you'll need based on any special activities you plan on running.

What will your schedule look like?
Try to plan out your timeline at a high level. Will people eat breakfast, lunch, or diner while at the workshop? When will that take place? Will time be needed to setup or teardown? Will you need time to transition between activities? Are there one off events that need to be accommodated in the schedule somewhere (like a group photo)? When will people get restroom or networking breaks and for how long?

What will people eat and drink?
The question is not if there will be food and drink, but where it will come from. If your workshop is over an hour (and I'm assuming it is if you're calling it a workshop), you at least need pitchers or bottles of water. If it's longer, you may need coffee, soda, juice, tea, etc…. At some point, you'll need to start thinking of snacks. Sitting and remaining engaged with your brain is hard work. It takes energy to focus and participate. Make sure people have calories to feed that energy if it's needed. If you plan on providing breakfast or lunch, make sure you plan in advance where it's coming from and how it will be paid for. Catering can be a difficult topic with some venues, and you don’t want to surprise your attendees with a food bill if they weren't expecting one. If they will need cash, let them know in advance of the workshop.

What's your housekeeping list look like?
As you plan the first few minutes of the workshop, you're going to need to run down a list of "housekeeping" items. Things like how often breaks will be taken, where the restrooms are located, appropriate use of cell phones, where and when will food come into play, coordinating evening activities, and an overview of the format and content of the workshop. It can be helpful to script some of that out in advance so you don't forget anything.

Those first few minutes are where you tell your audience how put together you are and whether or not you're going to be able to take care of their needs throughout the workshop. If they feel like you're forgetting about their basic needs, they won't respect your timelines as much. In a poorly run workshop, you'll see three or four people take a restroom break five minutes before one is "scheduled". That's because they have little confidence the break will happen on time.

What information do you need from your audience to be effective?
At many of the workshops I attend, there's a check-in and check-out at the start and end of each day. That's done for a couple of reasons. One reason is so everyone knows who everyone else is. Another reason is for the workshop coordinators to better understand the needs of the attendees. It's at these checkpoints that the coordinators get feedback around expectations and likes and dislikes. At check-in, make sure you have questions that help capture what people are hoping to get out of the workshop. Write those answers down. At check-out, make sure you get feedback around what's working and what's not. Write that down as well. During breaks and at the end of the day, go back and review that information to make sure you're fulfilling the needs of the attendees. If you have more then one person coordinating the workshop, do it as a group.
IWSTMichael KellyComment