Testing
A correspondent wrote to suggest that testing user interfaces isn't really as hard as it's cracked up to be.
Let's take something very simple and self-contained. There's a widget on the screen -- a Tinderbox note, maybe -- and we've given it a name. We ask the widget, "What's your name?" and make sure the answer is right. What can go wrong?
A lot.
Here's my quick list of some ways the widget can know its name, and yet fail to draw draw it:
- the name isn't drawn, because someone forgot to call DrawString
- the name isn't drawn right now, because nobody flushed the window buffers. It'll be drawn when the screen is updated, but now the user is looking at the emptiness where the name will someday be.
- the name isn't drawn anymore; it was drawn, and then somebody else erased that part of the window.
- the name is much too small (did you know that Windows text is scaled in tenths of a point?)
- the name is much too big (did you know that Macintosh text isn't?)
- the name is drawn correctly, but it's not drawn where you're looking.
- the name is drawn in the wrong language
- the name is drawn in a font which has no glyphs for its characters
- the name is drawn in a spectacularly wrong font (e.g. a symbol or dingbat font)
- the pane in which the name should appear is hidden, because someone forgot to make it visible
- something else is always drawn on top of the name
- the name is drawn in the background color
- the name is drawn properly, but is transparent (is "opaque text" represented by 0, or 100, or 255 on this platform?)
- the name is drawn in a pen mode that renders it invisible or illegible (e.g. it's reversed-out from 50% gray)
I'm pretty sure I've seen all of these at some point.