?

Log in

No account? Create an account

Previous Entry | Next Entry

ON TESTING

I suppose I should stop bringing my work home with me, even though I can telecommute to some extend by permission, just because, well, it blurs the edges between work and life.


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.

Comments

( 4 comments — Leave a comment )
iceraver
Jan. 27th, 2008 02:56 pm (UTC)
Actually, sweets, it's Windows Chi Rho, not Chi Pie. *snickers* And I sent that addy to your yahoo messages, since I couldn't get your gmail to work.
foomf
Jan. 28th, 2008 01:52 am (UTC)
Re: speaking of debugs
No, it's not rho, dear boy, it's definitely Pie. They wanted it to seem attractive, y'see, and everyone likes pie, while Rho just reminds them of Rho Dents.
drath
Jan. 27th, 2008 04:25 pm (UTC)
Paragraphs of prose
You are Douglas Adams and I claim my forty-two galactic dollars.
drath
Jan. 27th, 2008 04:30 pm (UTC)
speaking of debugs
This reminds me of a time in college when we had to deal with Borland Turbo Pascal on some Intel DOS 386 PC clones. The program that worked on the instructor's machine did not do so on the lab machines. For some reason, one of the commands that declared a new pointer to an empty node would point right at something that already existed. The instructor re-coded the procedures in a way that would work consistantly on both the office and student lab machines. To this day I have no idea what could have caused it, since I didn't write or debug it, all I remember is stepping and tracing one command line at a time until I noticed, hey, why is this "new" empty pointer showing me something that's already there?

This was about the point I decided to transfer out of software development and into SQL.
( 4 comments — Leave a comment )