Nelz's Blog

9 May 2007

Selenium ROCKS Even Harder! (And other notes from the session I went to…)

Filed under: General — nelz9999 @ 21:54

TS-4588 Advanced Enterprise Debugging

Yet another good presentation by Neal Ford.

But, more on that later… now onto this:

Selenium Mojo!*

Neal made a comment during his presentation as using Selenium IDE as a metaphor to an airplane’s "black box". This REALLY caught my imagination.

You could go draconic, and just have QA (or any end user) turn on Selenium IDE in the background, so that when they see an issue they can’t "lie" to you about their steps… You’d have an exact record of their steps…

For a slightly less draconic, but systemic approach you could use this other method. As long as an error is reproducible in FireFox, you could really do away with the inexact nature of language to convey where a problem is. QA can just fire up Selenium IDE, navigate to where the problem exists, save off the Selenium script, and shunt it through whatever (bug tracking) mechanism to the developers. They could even update the script to fail upon the problem, then this script just gets added into the whole suite of functional tests… This is a win/win/win situation.

This whole Selenium-centric concept gives me good goose bumps and chills! I really like this idea!

The Session

On to the other stuff in the session…

Look into using ChainSaw, which is a Swing GUI app (downloaded from the Log4J site) that lets you parse through log files easier. You can even use it real-time by adding another type of appender to your log4j configuration. This will help you prevent going "scroll blind".

Prefer changing your

CLASSPATH or using /lib, over putting libraries in the /ext directory.

Class.forName()

isn’t a good construct, because you are not guaranteed to be getting the class from the correct classloader. You should use a different construct: Thread.getCurrentThread().getContextClassLoader().

Fiddle is an open-source project you can deploy next to your running production apps to run queries against the environment, if you need to figure out run-time values of a whole bunch of stuff. (And then you don’t need to open up a debugging port…)

Also, to go along with the Selenium stuff mentioned above, use Selenium to have the browser step through however X-many steps of the UI when you are trying to reproduce a problem. (Neal made a joke about our computers getting together and laughing at us at night because we keep doing their (repetitive task) jobs for them…)

(*) – Not "mojo" as in Maven stuff, "mojo" as in the Austin Powers sense. (Can I help it? They are playing Austin Powers just behind me on a big screen…)

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Theme: Silver is the New Black. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.