My question can be split into two parts
Does anyone have any existing techniques or suggestions for automatically testing CSS or HTML, particularly with regard cross-browser compatibility?
As CSS can be roughly divided into properties that control layout and those that control design, is automated testing only viable for layout (it can't be possible to automatically and valuably test that a colour is correct, for example)? If so, what sort of CSS values might be suitable for boolean acceptance tests?
Here are my initial examples of boolean layout values that could be tested - there must be others?
- Does a pop-up appear above other content (z-index)
- Does a footer clear all other content (float)
Thanks for your help. Part three of the question is of course "Am I wasting my time going down this route?".
***** edit *****
I have found this article that asks the same questions I've asked, but more in depth and perhaps a little more eloquently.
***** edit 2 *****
I've since blogged about how I set about solving this problem, available here:
Have a look into Selenium - it's a browser-based automated testing tool. I think it's what you're looking for.
It works with all browsers (it has an IDE in Firefox for creating your test scripts, but the scripts themselves can be run in any browser)
It allows you to test the contents of the DOM, etc against the expected output at any point during the script.
If you're looking for a tool that's built for regression testing check out:
It basically takes screenshots of the parts you select (check their example) and compares them. If they're too different from each other, the test will fail. It's using Selenium, so you might as well check for other assertions, like z-indizes, font-sizes, etc.
w3 validation and Adobe Browser Labs are the best solution I can provide to this problem. Back when I was doing UI layout and design (read=cutup monkey) those were my two best friends.
There's really no way to automate testing how something looks. So, you're back to either visually inspecting everything yourself or crowdsourcing (or insourcing) a tester to do the same thing for you. It ain't fun, but it keeps us Front-end guys in business.
The good news is, many browsers share rendering engines. So, if you test correctly on Chrome, you can bet you're going to be fine in Safari. Check in Firefox and IE and you've got 90% of your problems solved. Then, determine how picky you (or your boss) wants to be and test accordingly.