Hudson http://hudson-ci.org/ is a continuous integration server - it runs and monitors ‘jobs’ in a way that is useful to regularly build software and report on any errors.
Selenium http://seleniumhq.org/ is a suite of tools specifically for testing web
applications - it tests the full website by automating the running of one or more browsers (so you can test all that pointy clicky ajaxy stuff)
As well as following standards such as those laid down by www.w3.org I always try and test websites I develop across a range of browsers. Despite improvements in compatibility in recent years, browsers do still vary in implementation and even relatively minor browsers are still used by large numbers of people.
However all this testing can be hard to keep on top of and sometimes I just have to push out what seems like a small code change with only limited testing.
I’m aiming to automate as much testing as possible, this is a little more work up front - but makes re-running tests trivial and so more likely to happen.
I recently finished work on a project that really suffered from a lack of build tools.
It was a large project, and while many of us were keen on writing tests we weren’t able to get management sign of to spend some time automating the test process. So even though we did some of the work we didn’t get all the benefits.
It was really frustrating to come back to a piece of work that was well covered by unit tests, only to find those tests broken