Desi McAdam

March 24, 2009

Ada Lovelace Day - Finding Ada

Filed under: Uncategorized — desi.mcadam @ 3:55 pm

I made the pledge to post for Finding Ada and here it is.

One of the hardest things I had to do in preparation for this post (Ada Lovelace Day) was to decide who I wanted to post about. I am lucky enough to know so many intelligent, skilled, motivated and inspiring women in technology (and specifically software development) that it was extraordinarily difficult to narrow it down to just a handful. It bothers me that I can’t call out all the women who have had a positive impact on my life and career. To each and every one of you: know that I appreciate you and everything you have done for me. Finally, I would like to say a special thanks to all the ladies in DevChix for their conversations, help, and encouragement to be the best at my job and in my life. As of today, DevChix has 167 members from all around the world. Our organization is comprised entirely of women devoted to software development. You are all my heros.

Okay, on to the few ladies I would like to call out specifically as role models for me:

Nola Stowe: Nola is a developer at Google and we have known each other for a few years now. She was one of the original cofounders of DevChix and deserves the majority of credit for getting us off the ground because she did all the hard work to make it a reality. She has the ability to be involved in so much, both inside work and out, that she simply amazes me. Nola reads and writes reviews for tech books, learns new languages (or picks up old ones), and manages commitments with a myriad of organizations and activities, including DevChix. She does all of this in addition to her full-time job. She is always caring and supportive of the ladies in our organization; always eager to help when someone has a question. Nola, thank you for all that you do.

Jacqui Maher: Jacqui is now a coworker of mine at Hashrocket and I throughly enjoy working with her. She is by far one of the best developers I have ever met and is very respected within Hashrocket, DevChix and the Ruby community. She is socially conscious and makes an effort to improve the world with every chance she gets. She is currently working on the OpenMRS gem for Ruby and recently traveled to Africa to work as a Rails Developer for Baobab Health. She is inspiring in just about every sense of the word. Jacqui, thanks for teaching me that we can make time to use our skills for the greater good of the world.

Liz Henry: I just recently met Liz at the SFO She’s Geeky Event and I have to say this woman is amazing. I know very little about her even though I have run into her at several events since then. Every encounter with her has been enjoyable and she has given me some wisdom each time I have seen her that I didn’t have before. In one of our last meetings, we actually discussed this post. We discussed how some women which we revere as heros would in fact rather not be publicly described as such. (For this reason, I am have asked permission from each of the ladies mentioned in this post before publishing this article.) In addition to being full of very useful information, Liz is also one of the best live bloggers I have ever seen. Liz is capable of capturing an entire session (through notes, tweets, etc.) while still maintaining full attention to the topic at hand; even participating in the actual conversation. She allows people to be present at events that for whatever reason they couldn’t be and for those of us who read her write ups I would just like to say; you rock that shit! Oh yeah and she works for BlogHer, a community for women bloggers. (They have a great conference too!)

Carmelyne Thompson: Carm… Carm is one of the happiest designers/developers I know. She has a positive outlook on everything, all the time. She is always able to see the good in a situation, often times when no one else can. She is an incredible designer, but don’t take my word for it! Go check Carmelyne’s work out for yourself. Carmelyne can implement her designs as well. She has a great depth of knowledge across a wide range of topics within the software development world. Carmelyne is oftentimes one of the first people to respond to ladies on the list asking Ruby and Rails questions and is often one of the first to respond to new member requests making her one of the most active admins at DevChix. I am continually happy to see Carm greeting people to the our group. She is friendly and quick in getting them setup and running with the DevChix organization. Carm, I look forward to working with you in the future!

Audrey Eschright: Audrey is highly involved with the OpenSource Community; doing everything she can to get more women involved with OpenSource initiatives. She is currently working on the Open Source Bridge Conference in Portland and she has been involved with several other events in the area, including: BarCamp Portland, Ignite Portland, and others. Audrey reminds me that it’s important to pick your passion and excel at it; that is exactly what she does. She is a very inspiring woman, encouraging others to get involved and speak at these events. Audrey, good job with the conference organizing and congrats on getting that off the ground!

Kathy Sierra: It would be impossible to write this post and omit Kathy. I don’t read many blogs on a day-to-day basis, mostly for lack of time; that is, except Kathy’s blog back when Kathy would post. Kathy was a role model for me and is partly responsible for the aggregated blog on DevChix, representing the entire DevChix community. Unfortunately, she was on the receiving end of some nasty comments and threats causing her to discontinue her blog.

Many women don’t desire the attention they receive for putting their personal opinions out into the blogosphere. Kathy received more than just attention. But DevChix is a community, first and foremost; if you attack one of us then you are attacking all of us.

We still get some pretty nasty comments from time to time but we are fortunate that it hasn’t been too bad; certainly not to the degree that Kathy had. Kathy brought a unique viewpoint to software development and possessed a great voice for presenting it. The community certainly lost something special when she stopped blogging. Kathy, I understand your reason for leaving the blogsphere, I thank you for the time you gave us there, and I hope that one day you will return.

Val Anita Aurora (formerly Val Henson): I have only had the opportunity to meet Val once (for a few hours) but in that brief span of time she helped me tremendously. She is a Linux Kernel developer and has been involved with the LinuxChix organization for many years.

Val offered sound advice to me early on in the organization of DevChix; advice that I cannot thank her enough for. She pointed me to a number of resources that would help me understand what I was getting into as well as things which would soon come my way. Additionally, she helped DevChix by promoting us within LinuxChix and giving us some space on the LinuxChix IRC server. I continually look to the LinuxChix organization for guidance and can’t thank them enough for their support. Val, plain and simple, you are a personal hero to me and LinuxChix is an organizational hero to DevChix.

NOTE: I was not able to get permission from Kathy Sierra but I am hoping since she is already in the public eye she doesn’t mind me calling her out as a role model.

Cheers and Thanks for reading my Ada Lovelace Day Post.

October 16, 2008

Rails Summit Latin America

Filed under: Uncategorized — desi.mcadam @ 9:02 pm

I am currently in Sao Paulo, Brazil at Rails Summit Latin America and the experience has been great thus far.

Ladies at the conference there is information at the end of this writeup about how to join. If you don’t feel like reading everything in this writeup that is fine but please do read about joining.

In contrast to many conferences I have been to recently I have been to just about every talk at this conference and I have thoroughly enjoyed them all. I say just about because there is a second track that is going on in another room but I haven’t been to those sessions.

The Organizers:
Fabio Akita and Gilberto Mautner Founder of locaweb have done a great job with the conference and I would like to give them a special thanks. The lineup, venue and everything has been great. Obrigado!

Theme:
I think most conferences, through the keynotes, some how seem to create a theme. The theme that I am picking up on at this conference is this: “Have No Fear” and “Just Do It”. No one actually said either of those two things but thats basically what I am taking away from most of the keynotes. They have all been especially encouraging for people to become involved. Contribute, create, and code. Give back to the community and get involved. Don’t be afraid .. put yourself out there and learn from the feedback you get.. learn from the experiences of creating.. do side projects.. basically be PASSIONATE.

The Talks:
All the talks I have seen have been excellent. I give them an excellent rating because they have all had the qualities I look for in a talk.
1. The content is good and interesting.
2. The delivery of that content is entertaining or at least engaging.

Chad Fowler - I really enjoyed Chad’s talk and as I sit here I am struggling to figure out a way to describe his talk and actually do it justice. He spoke about his background in music and how that has translated to his life as a developer. In addition, he spoke about being remarkable. He talked about many ways in which people are remarkable and many ways in which we ourselves can become remarkable people. He touched on many things and did so in such a way that I was able to stay engaged with him. There were pictures and video’s and graphs and fake numbers and.. anyway about the best I can say is that I personally really enjoyed his talk.

Dr. Nic Williams - Dr. Nic’s presentation is a little easier to sum up but at the same time I can’t really do it justice. Dr. Nic is one of those speakers that if you ever have a chance to see him speak you should definitely take the opportunity. He is hilarious and has a good message. His talk was all about how to contribute back.. how to get involved.. how to participate. Make the future you proud of the you now. Dr. Nic also talked about newgem

Chris Wanstrath - Chris’s keynote started off being about the future of Ruby and RoR but in the end he took it back to the past and where we have come from. He went through a great deal of history on how we got here which I personally enjoyed especially when he pointed out the first ENAIC programmers were all women, unfortunately he was speaking quite fast so I think a lot of his talk was lost in translation. I think the primary thing Chris was trying to get across is to not be afraid. If you have an idea.. make time to get to it you never know where thats going to go. In the very least you gain experience and you gain knowledge. Chris has had many projects in the past but his current claim to fame is all about github.

Jay Fields - Jay’s talk was about the immaturity of testing as a whole. While I agree with some of the things he said I also disagree with some of the things he said. I have had the luxury of getting to pair with Jay on projects before and its always interesting for me to see him speak because I have first hand experience with a lot of things he talks about. He described the problem of immaturity in testing as a whole first with the fact that we can’t even agree on common terminology. He then proceeded to talk about various tools and the pros and cons of each. He covered Selenium, Test:Unit, Rspec, Syntasis, and Expectations. The last two being the most immature of them all and bleeding edge. i.e. use at your own risk. He also answered a few questions about how to make your test suite fun faster and his response was basically that if you are willing to deal with the pain that goes along with it there are tools you can look into using such as null_db, unit_record, and ARBS. You can read about them on the null_db page on Agile Web Development site. That page links out to the other plugins. Jay also pointed out that all the things he was talking about are from his point of view. In other words its the context in which he works that causes him to have some of the testing beliefs he has.

David Chemlisky - David’s first talk was about doing TDD and in my opinion he did an excellent job of demonstrating TDD. I have seen him give a talk similar in the past and of all the people I have heard try to describe TDD, David is one of the most skilled at it. He gave the talk from the point of view of a teacher which in my opinion is really the only way you can truly explain TDD. He went through the process step by step with us all to show us the way. :)

His second talk was more about Acceptance testing and story runner and the newest version of story runner which is being called cucumber. He demonstrated how it worked and made sure to give context around all the terminology such as user stories etc. Hopefully there will be some way of seeing this talk again maybe through a screen cast or something of that nature. I’ll be sure to ask him if he would be willing to do that. Or maybe there is one with cucumber? Not sure haven’t had a chance to look yet.
Couple of links to stuff he talked about.
Cucumber
webrat on github and a blog post on it here

On that last note I am actually interested to know if these talks are being recorded and if they will be available somewhere? Anyone know the answer to that?

Obie Fernandez - I haven’t actually seen Obie give his talk yet but I have seen the talk (insider information) so I am going to go ahead and give a recap.. I asked him to plug DevChix and wanted to have this write up already done before he did so.. ;-) So Obie’s talk will be about the “Hashrocket Way”. He is basically giving up our secrets.. Like Dr. Nic said no secrets! His main focus will be around how we work, the fact that we follow Agile Tenants and that we value fun, collaboration, and effectiveness. We achieve those things through certain practices such as pair programming, TDD, Story Carding, launch parties etc. Again you should check out his blog.

Ninh Bui and Hongli Lai a.k.a The Phusion Guys - I woke up late so I didn’t catch all of the talk from the Phusion guys but the part that I did catch was hilariously funny and explained things like caching and database sharding. Additionally, they gave a demo of yuumis_comments.. and here is also a link to their blog

I call out all of these guys because they are some of the best speakers I have ever seen and I actually saw them speak at this particular event.

Phillippe Hanrigou - Phillippe is going to be giving a talk on how to effectively do acceptance testing which I am looking forward to but I won’t be able to cover that here because I haven’t seen it and since I don’t have insider info on that one I’ll just have to wait like everyone else. I do know that he will be talking about one tool I hadn’t heard of before called Deep Test. You should check Phillippe’s blog as well

Luis Lavena - Luis will also be giving a talk about surviving with RoR and Ruby as a windows user.. again I think the talk is going to be awesome but its in the future so I can’t really talk about that yet. You should check out his blog!

The Venue:
The venue is quite nice. The main auditorium is very well arranged and has plenty of room despite the fact that there are a lot of people here. There is a very large screen making it easy for everyone to see the slides as well as the speakers. The lighting on the actual speakers is a little weird but other than that the actual conference room is great. The audio is fantastic and the actual hang out area is quite nice as well (other than the lack of air conditioning but thats just me being a little whiny its not really that hot). One other really important point that I want to bring up is the translators. You can get a headset at the checkin area that will translate the talks from English to Spanish and Portuguese and from what I understand the translators have been doing a kick ass job so a special thanks to all those ladies in the booths translating for us.

The Community:
I was very encouraged by the number of people at the conference, the number of people using github (vast majority) and the number of people doing Ruby and RoR development on a day to day basis. It is always an exciting moment for me when I realize it is gaining in support because how much I love the language. In addition, everyone has been extremely helpful and friendly. We meet Tim Case the first day and he was more than willing to take us under his wing and show us around.

One thing that was both encouraging and discouraging is the number of women at the conference. There were women, thats the good news, the bad news is that I think from a ratio point of view the number of women at the conference is on par with what I have experienced at Ruby and RoR conferences in the US. That is to say its pretty small. Usually at conferences since there are so few women I can manage to talk to most of them and but here I have been some what intimidated by the language barrier. One other thing to point out is that there were no women speakers but hey that isn’t really that uncommon. I am hoping that when Obie does his talk and plugs DevChix for us that many of those women who were at the conference that I didn’t get to meet will come to the site and join.

Ladies Please Read
For those women who do happen to come to the site from Brazil and other countries. I would like to say that we have members world wide who can speak a number of different languages so please don’t let that discourage you from joining and participating. We would LOVE to have you all as part of the group. Also encourage other female developers you know.

If you are a women, a developer, interested in joining and/or contributing to DevChix, please contact Desi McAdam at info(-at-)devchix.com with your:

1. Name
2. Email
3. Do you know any one from DevChix?
4. A short 2 sentence bio describing your development background/experience (or what you hope to learn) and a link to your blog if you happen to have one.

Obrigado! :)

September 30, 2007

RubyEast Recap, Slides, and Other Thoughts

Filed under: Uncategorized — desi.mcadam @ 10:31 pm

I spoke at RubyEast this past Friday and I think the presentation went pretty well. It was my first presentation in a speaker/audience type setting so I was very nervous. I have presented at Agile 2006 but it was a game (interactive) and was co-presented by several other people. This presentation was the first time I stood in front of a room full of people and spoke and everything went very well. Like I said I was really nervous but as soon as I got started the nervousness went away. I think I am very lucky because I was able to present to a room full of very nice/cool people and that made the experience a great one. I want to actually thank the people who came to hear me present and who gave me great feedback and encouragement afterwards it really made my day. If you are interested here are the slides for the presentation. A Tour Of Rails Testing using RSpec

I didn’t get to see many of the sessions because I was busy preparing for my talk but I was able to catch Obie’s presentation - Advanced ActiveRecord which was really good (and I am not just saying that because he is my boyfriend). I also caught the ending Keynote where Nap (I actually don’t know his real name) announced the Rails Rumble winners. There were several screencasts and it made me wish that Obie, Clay, Nick and I would have had time to get the video that was shot of us over the weekend edited and ready for prime time. We had a blast doing the competition and while we didn’t win (we got honorable mention) we learned a lot and I think we all grew closer in those 48 hours. The teams that did win did a tremendous job on their apps and well deserved the loot. Take a look at the winners there really are some great apps. Rails Rumble Winners

Friday evening a bunch of people got together after the conference and played several games of Werewolf which is a really fun game to play. I got to know a lot of people during that game and it was a great way to wind down.

Couple of other thoughts before I end the post. ShesGeeky (un)Conference sounds like it is going to kick major ass so any of you ladies out there who can attend make sure you get registered. Additionally, ladies if you want to talk during the conference please contact the organizers.

GrrrlCamp seems to be getting a good footing. I was lucky enough to meet THE Gloria this past Friday and I look forward to being a part of GrrlCamp.

I have taken on an apprentice and she will soon be posting to the blog about her experiences. I am in the process of trying to see if creating an apprenticeship type program run by DevChix is possible because after speaking with Sonia (one of the women on DevChix) she helped me figure out that I would really like to have a program that fits the apprenticeship model rather than a mentoring program. Look for more to come on this in the future.

July 24, 2007

will_paginate array?

Filed under: Uncategorized — desi.mcadam @ 5:11 am

Today I started putting pagination in the app that I have been working on. Based on recommendations from Obie I decided to use “will_paginate”, a rails plugin for pagination put out by the err the blog guys. It worked amazingly and the view helper was great! I really like the fact that I can apply the same look and feel to all page pagination throughout the app… well umm.. until I wanted to add pagination to a collection not generated from a finder or association. Since I really wanted everything to look the same and behave the same I did the following little trick so that you can call paginate on a plain old array.

class Array
  def paginate(page=1, per_page=15)
    pagination_array = WillPaginate::Collection.new(page, per_page, self.size)
    start_index = pagination_array.offset
    end_index = start_index + (per_page - 1)
    array_to_concat = self[start_index..end_index]
    array_to_concat.nil? ? [] : pagination_array.concat(array_to_concat)
  end
end

Before folks say anything about the above code.. yes I know it could be more concise if I didn’t use all the local variables but I wanted it to be really clear what I was doing here so.. leave it alone.

Now basically you can say

myarray.paginate(params[:page], per_page)

If you want to see it work yourself feel free to run this spec.


require File.dirname(__FILE__) + ‘/../spec_helper’

describe ‘Given we call paginate on an array’ do
  it ’should return an array containing the first 3 elements of the org array when page = 1 and per_page_count = 3′ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 1
    show_per_page = 3
    expected_array = [”a”, “b”, “c”]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an array containing the last 2 elements of the org array when page = 2 and per_page_count = 3′ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 2
    show_per_page = 3
    expected_array = [”d”, “e”]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an array containing all the elements of the org array when page = 1 and per_page_count = 5′ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 1
    show_per_page = 5
    expected_array = [”a”,”b”,”c”,”d”,”e”]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an array containing all the elements of the org array when page = 1 and per_page_count greater than org number of elements i.e = 6′ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 1
    show_per_page = 6
    expected_array = [”a”,”b”,”c”,”d”,”e”]
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an empty array if you ask for a page that does not exist’ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 3
    show_per_page = 5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an empty array if you ask for a negative page number’ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = -1
    show_per_page = 5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end

  it ’should return an empty array if you ask for a negative per_page number’ do
    array = [”a”,”b”,”c”,”d”,”e”]
    current_page = 1
    show_per_page = -5
    expected_array = []
    (array.paginate(current_page, show_per_page)).should == expected_array
  end
end

March 28, 2007

About Kathy

Filed under: Uncategorized — desi.mcadam @ 2:54 am

Last night I read Kathy Sierra’s blog about the threats and comments that she has been receiving and I have to tell you that it infuriated me. My immediate thought was, “And people wonder why we have so few women in the industry and even less who are willing to be a part of the blogsphere”. It is incidents like these that make it so difficult to choose IT and Development as a career. These guys may live behind anonymous names while on the internet but I can almost bet that they have at least some behavior that comes out in their day to day work life that causes women around them grief. Now I have made some assumptions here.. I am assuming these are men but I could be wrong.. I doubt it but I could be. Regardless, this sort of thing should not be tolerated. I would like to know how many men receive threats like these? I am speaking of threats against your life or comments as humiliating as the ones left on her blog?

I hate to make it a “women” issue but until some men come forward and say that these sort of things happen to them as well then I have no other choice than to believe these things were said because she is a woman. I was having a discussion with someone I respect a great deal about this last night and his response was that when you put yourself in such a celebrity position you have to expect this sort of thing. He also stated that you should simply ignore it because by not ignoring it we are giving them the attention they are looking for. I completely disagree. By ignoring the situation we indicate to the people who do this sort of thing that it is okay to behave this way. That is not the message that I want to send nor is it the message that I think our community should send. As for the celebrity comment, even celebrities take death threats seriously. My friends response to that was that celebrities only concern themselves with substantiated threats. So what then makes a substantiated threat on the internet? Does someone have to finally show up at your door with a gun to make it legit?

Our industry is one of the few industries that I know of where your career can be made or broken by your blogging behaviors. Blogging is one of the ways in which we share our ideas and thoughts… its part of what we do. I have always had a problem with it being okay to treat someone with disrespect regardless of the forum. Rudeness should not be tolerated but I have heard time and time again from people in this community comments such as “Oh it is just part of it” or “It is just our way”. It should not be tolerated no matter what the physical makeup of the individual being treated rudely is.

I know very few men who would look a women in the eye and call her a “cunt”. They know the level of insult that word carries and most don’t want to be the deliverer of it. Why should it be any less insulting when some coward does it over the internet? I also know very few men who would stand around and let that be said to women in their presence. I doubt my friend would hear that and say “Just ignore him .. he’s an asshole and if you let it bother you then you are just giving in to his need for attention”. If he did then he isn’t a very good friend.

I am hoping that one day women won’t have to worry about these sorts of things because I actually do love my job and I want more women to see that our industry IS a place where they can exist in peace and actually be successful through hard work.

One last thing that my friend said to me that really got me: “The only reason this is a big deal is because she is a woman… if it were a man no one would give a fuck.” If that is really how men (my friend is male) feel in our community then we have a lot further to go than I thought. I want to believe that people value each other a little more than that. I value PEOPLE more than that. I do and will “give a fuck” no matter who the person is.

I hope that this does not stop Kathy or others from continuing to post. It is like any other threat, if we let it push us down then it will never go away. Her situation may make it such that she feels she must stop posting or speaking and that is her decision but I hope that we are able to fight this sort of thing and stand up to this type of behavior. MLK once said “When you are right you cannot be too radical; when you are wrong, you cannot be too conservative.” I am starting to really get that statement.

This is also posted to Devchix

February 19, 2007

An Introduction to Selenium IDE

Filed under: Agile, Selenium — desi.mcadam @ 11:51 pm

On my current project we are building a web based application that allows the user to sign up for a service. The signup process is a series of pages for gathering a variety of information (about 8 or so pages). Now… I am a bit on the lazy side so a while back I started using the Selenium IDE to record scripts for moving me to the location in the app that I was interested in. The other day one of the non-techinical folk on the team asked me how to use the Selenium IDE and so I decided to write up a blog post about it. There are a couple of posts out there already in addition to the information on OpenQA but I figure one more post won’t hurt. It really is a very good tool for all types of people from sys admins, PM’s, Business Analysts, developers, to end users doing beta testing. I decided to break up the information based on questions I was asked when showing a couple of folks how to use the app.

What is Selenium?
OpenQA says: Selenium is a UI test tool for web applications. Selenium tests run directly in a browser, just as real users do. Those tests can run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.

What is Selenium IDE?
OpenQA says: Selenium IDE is an integrated development environment (thats what IDE stands for for those who don’t know) for Selenium tests. It is implemented as a Firefox extension, and allows you to record, edit, and debug tests. Selenium IDE includes the entire Selenium Core, allowing you to easily and quickly record and play back tests in the actual environment that they will run. Selenium IDE is not only a recording tool: it is a complete IDE. You can choose to use its recording capability, or you may edit your scripts by hand. With autocomplete support and the ability to move commands around quickly, Selenium IDE is the ideal environment for creating Selenium tests no matter what style of tests you prefer.

Installation:
A firefox extension is an installable enhancement to the browser’s functionality and add features to the application or allows existing features to be modified. Since Selenium IDE is a Firefox extension you get it by downloading and installing the firefox extension. Oh and installing extensions does require you to restart firefox so just keep that in mind before you go any further.
1. Go to OpenQA
2. Click the firefox extensions link under the download bullet of the latest version. This will pop up a box and a button should appear briefly that says “Install Now”. Click on that.
3. This will pop up a box and install the extension. Once its finished click the button on the bottom right corner that says “Restart Firefox”.

How do I run/use the Selenium IDE?
The folks over at OpenQA already did a nice movie so you can go watch that to get the basics.

How do I run a script that I recorded in Firefox against Internet Explorer?
You would need to install Selenium Core or Selenium RC in order to be able to do this. Selenium Core has to be run on the same webserver as the application you are trying to test. So this probably won’t work for non-developer types who don’t have access to what is put on the webserver. If that is the case then you might want to look into using Selenium RC.For information on using and setting up Selenium Core take a look Here and for using Selenium RC look Here.

What is the difference between run, walk, and step?
The only difference between run and walk is that run is faster. They behave exactly the same way. Step on the other requires you to actually push the blue downward right angle arrow key to continue to the next step. When you use Run and Walk with breakpoints the pause button will turn into a pause/resume button. In order to keep going to the next breakpoint just hit the pause/resume button. If you hit play again from a breakpoint or from any command it will start the script over from the beginning.

How do I use breakpoints?
Sometimes when you are running your scripts something breaks and you might want to see the state of the application just before that break or maybe the script exits before you get a chance to see the error on the screen in these cases breakpoints are awesome. Simply chose the line in your script where you want it to stop and put a break point. You do this by right clicking and selecting “Toggle Breakpoint”. Now when you hit the play button it will stop at that command. Additionally you can set a break point and then step through the application from that point on using the step feature.

Can you give an example of when you would want to save the scripts in a different language.
Sometimes QA people or Buisness Analysts or even end users may want to submit the test they used to create the error back to the developers, in this case the developers may like to have the test in the language which they are writing the application in. It may also be the case that the developers themselves change the language based on what they were given or who they may be giving the tests to. In order to change the language the test is output in go to the Selenium IDE tool bar select Options -> Format and then select the language you want the test in.

What is the difference between deleteCookie and deleteCookieAndWait?
In a nut shell don’t use the “andWait” commands. The “andWait” commands should be gone as of the latest version (they are still there but they all do the same things as their couterpart commands i.e deleteCookieAndWait does exactly what deleteCookie does) but for those still on the old version here is the explanation. Typically anytime you see the “andWait” or “withWait” piece tacked on to the end of a command it simply means that you want your script to stop executing any additional commands until it gets back a response saying the command has finished.

How would you handle situations where you would need to change a piece of data entered each time you run the script?
To be honest I haven’t quite figured out how to do this. I am going to try to play around with it a bit and see if I can figure something out. As soon as I do I’ll post an answer to this.

What does the log at the bottom tell me and how do I interpret what it is saying?
From the point of view of a non-technical person the log basically just tells you information about what has happened. Maybe you clicked the back button and the ide didn’t recognize that click and you then clicked some image. In this case you would get an error stating it could not find the element you told it to find. As it turns out the script isn’t on the right page so of course it wouldn’t find it. There are lots of reasons why you might get an error and usually if you step through your script you will find that you are not on the page you expect to be when the command was trying to be executed or some other trivial thing has happened. The log also has general information in the info tag that tells you which commands have been executed etc. All this maybe helpful when trying to figure out what has gone wrong.

Gotchas?
The most common gotchas are around timing and caching/session issues. There are a few commands that you can insert into your scripts in order to help you get around this. For instance if you have a page which has some ajax calls then you might have an issue where your script trys to do something before the call has actually finished. In this case you can insert the command “pause” into the script.
In another situation you may want to make sure that you are starting with a fresh session i.e. no cookies. The command “deleteCookie” can be used in order to make sure this happens.
A full list of Selenium commands can be found Here

So now you guys and girls go play around with it and post back your questions here. I’ll do my best to answer them or at least point you in the right direction.

Next post: Selenium On Rails!

Also check out these posts for information on Selenium IDE:

http://dynamitemap.com/selenium/ - very good introduction

http://ajaxian.com/archives/selenium-ide-07-released - some good questions and answers in the comments section

Powered by WordPress