For instance, I spent the last twelve hours trying to track down a particularly stupid bug in my automaton scripts.
You don't know what I'm blathering about, right?
OK, here's the thing. When you have a particularly powerful, simple, and elegant user interface it generally means that inside, it's actually horribly complex, because there are so many different ways that the user will intuitively want to do things, and they all have to work right.
So, for every element you can modify with the interface, you have perhaps twenty different ways to perform it and you have to prove that eacj works, and then there are interactions between the elements which can sometimes result in the interface doing something wrong or unexpected, so by the end of things, you have a list of about five bazillion action-result-verify steps, many of them as sequences of sequences of sequences.
So, how can one person test all that?
He can't. She can't. I know I can't. The boredom is too intense, and it's exhausting and eats up time like anything to have to do it all over and over and over.
So instead, I create a test automaton that knows all the steps, and I put it through its paces, and as things change, are refined and corrected, the automaton either learns the correct way, or you have to tear its guts out and move things around and then get make it go through again, until it's working right. Of course you have to create these scripts with the sequences you want them to follow, but you have to go over it a couple times for even the smartest test automaton to catch on to the subtleties.
This is profoundly tiresome, because you have to watch, and the automaton has to watch you, and you can't sneeze, or stop to eat, or go off to the bathroom, or the automaton will try to do that too, and frankly nothing clogs a toilet like automaton gears and grease - I know I don't build my automatons with digestive tracts unless they're built to read documentation and review it, in which case they only crap out summaries.
Anyway. Of course I build the automaton so I don't have to completely gut it to deal with a change, because sometimes they look at me with those really big trusting eyes, and that expression of betrayal when you hook the claw into the navel and pull, it just makes me glad that I can reset their memory so they don't remember me doing it, because otherwise I'd probably not be able to do it. Especially since if they did remember I'd end up having to replace them completely, because they'd refuse to work for me.
So anyway. This particular interface is a webbage, of course, so I had to teach the automaton to open the Book to the draft temporary working model of the Web, which has to be a model rather than the real thing since we don't want it to really touch the Web - just imagine if I had made a mistake in the automation and it accidentally removed Life As We Know It from some part of the Web of Reality - and besides, we're testing the interfaces for a new component that can be used by the smaller Powers and Principalities to underlie a complex Instance that's just the size they need - not a galactic super-cluster, like the big rack-and-planc systems, way too much power and Cost for most small emplantments; and yet much larger than the simple home seventeen-dimension-Tower with an Eye and a Ring loosely connected to the Web by a Meddle Earth.
And it (our new component) is expandable and extensible; our Channel members will be able to pre-configure them, no more requirement for a busy Principality to have to rack its 'branes to get a Little Bang so it can condense enough of what Matters that it will be sticky enough to affix to the Web, since our Stochastic Creation Matriciser does all that work for them, using a standard set of prescriptions and algoreisms.
Sorry - bit of the marketing hype snuck in. Have to get the hypodermic and suck it out.
That's a pun, not a literal description of what I'm doing.
Anyway. Script bugs. See, while I write them out as Perls of Wisdom, and the automaton watches me execute the scripts using See Double-Plus (not Holy See Das Net, thank God) ... and the test automaton stores my actions as a collection of instincts and hive-directives, and since its brains are essentially a cooperative of fungus-slash-ant-farm (or termite farm to be more accurate), you can guess that it's especially annoying when one of the individual bugs doesn't work right. I mean, yeah, management requires it so I have to use the Mess Window Chi Pie as the substrate, and you KNOW what that thing is: an unnecessarily thick and turgid mass of bugs in which the higher abstractions are overlaid, but the bugs barely cooperate with one another, and they're susceptible to all sorts of diseases.
And part of script I created kept encoding as a "bad bug" that would signal that things were done before they really were - and I had to stop it every time and I know my test automaton was beginning to be frightened as the evidence piled up in the garbage bin, of its having been gutted and re-booted.
I finally found and squashed the rebel bug though. It was stupid in a new and special way - the strings in its Harp were too slack and its Halo was too tight, so it was actually insufficiently perverse.
Now I'm going to sleep for I hope a thousand years. I just set up an alarm rlyeh so I can check when I wake up whether or not the automaton has finished the ritual. Wish me good dreams.