Forum OpenACS Development: Automated User Interface and Acceptance Testing with Selenium

The OpenACS automated testing package has always been great as far as white box testing goes. We identify tcl procedures and run tests to determine if they return the expected results.

However, I don't think the automated test package helps us when it comes to black box testing. This is where we hire QA engineers to go thru the site looking for bugs and errors that our web application users and visitors will normally be the ones to experience.

Enter Selenium, I started dabbing into selenium early last year when it was still version 0.2. It is now version 0.6 and a lot of web development projects are taking an interest for various reasons.

Selenium is a testing framework created from a series of html pages and javascript. This means you can extract a copy of selenium , write tests , save it in a folder inside the selenium directory and put it on a web server where a person can get to it thru a url. See a demo here http://www.openqa.org/selenium/demos.html

I've put together a Wiki page with some information about selenium http://www.openacs.org/wiki/Selenium. I hope to later expand that and add a quick start tutorial on how I've used selenium to test some of the OpenACS packages

The 2 most compelling reasons, I think, on using selenium for automated tests are

1 - End User Participation. The potential to get end users involved in writing tests for a web application developed with the toolkit is high, specially with tools like the Selenium Recorder http://seleniumrecorder.mozdev.org/

2 - More Coverage. We're not only testing the individual tcl procedures and the api but the whole user experience with the web site/web application.

This leads me to my proposal to integrate selenium into our testing framework.

I know a TIP would be more appropriate but I would like to get the pulse of the community and how something like selenium can help increase the quality of the applications we deveolpe using the toolkit.

Just to crosspost here, I just found out today about this extension.

The general feeling I got from various conversations is just go for it - get something done and lets see how it works out.

Dave seems to agree its a good idea overall, perhaps others want to chime in.

I say, let us first finish off a quick master list of pass/fails for non core packages, then lets try a couple of run throughs for FEATURE testing even before we finish INSTALL/UNINSTALL testing.

Thoughts?

A video that shows how to use the recently released selenium ide

http://wiki.openqa.org/display/SIDE/Recording+a+Test