March 2007 $9.95 www.StickyMinds.com

ACCEPTING EXCEPTIONS . . . and putting them to good use

ESCAPING THE DEATH SPIRAL Take time now, save time later

The Print Companion to

Still gambling on project scheduling? Learn how you can Test Connection

The Proof of the Pudding… by Michael Bolton

The first job in which I was called a software tester was at Quarterdeck, but I was a tester there long before I had the official title. I worked in the technical support department. The company produced two interrelated products, DESQview and the Quarterdeck Manager (QEMM-386). They were marketed separately, as well as together under the name DESQview 386. The age of DOS on the 386 processor family was as unruly as the Wild West. Applications could write directly to the display hardware, grab control of the

mouse and the keyboard by using BIOS GETTY IMAGES calls instead of going through the oper- ating system, and allocate all of the especially considering all the applica- problems with a program, we could install memory on the system without so much tions, hardware, and (non-)standards and run that program under DESQview as saying, “Excuse me.” There were a that it had to support—plus it sold like while we were on the phone, even with dozen software interfaces for accessing hotcakes, suggesting that customers all of our other programs open. Some the physical memory of the machine, clearly valued it. So, how did we test these tasks were complex, and the order in but because of DOS’s heritage on earlier products effectively and achieve such a which we did them wasn’t regular or processors, the most important kind of high level of quality? The answer is that predictable. As a result, we sometimes memory was in short supply. we had a valuable and powerful stand-in encountered problems that we wouldn’t QEMM-386 was a memory manager for more formal testing approaches: We have seen had we always been doing things for the 386 family. Its original purpose used the products, every day, all the in the same order. A diversity of workflows was to supply memory to DESQview and time, just like our users did. tends to expose sequence-related bugs. to all the applications running under it. DESQview and QEMM were highly Another key advantage, from a testing DESQview was a multitasking environ- interdependent. Because DESQview perspective, was that it was early enough ment that supported regular, off-the-shelf exercised QEMM’s memory management in the age of the PC that employees had DOS applications, of which there were features extensively and QEMM provided come to the company from a wide range hundreds. The applications didn’t have so many important services to of backgrounds. Most of us had been to be written for DESQview or even DESQview, each product served as a computer users of one kind or another, be aware of it. The 386 processor intro- useful oracle—a principle or mechanism but we had diversity going for us in other duced a number of hardware features by which we identify problems—for the dimensions. There were database designers that QEMM and DESQview together other. A problem in QEMM had a good and programmers, film critics, musicians, could exploit and manage, such as the chance of exposing itself through a retail salespeople, bulletin-board system ability to supply a virtual display that problem with DESQview, and vice versa. operators, artists, network administrators, fooled applications into thinking Excellent testing depends on powerful and programmers. We found and fixed that they were writing to the real display. oracles. many of problems because we were set These features expanded DESQview’s DESQview had a big head start on up to see them. Diversity of the test team power enormously. QEMM also gained Windows in terms of multitasking. In and its ways of using the product makes a life of its own, supplying memory to the technical support department—as testing more powerful. DOS programs even when they weren’t anyone who has worked in one will tell All of us at Quarterdeck used running under DESQview. you—we needed a multitasker to do our DESQview 386 as it was meant to be For the longest time, there was no work effectively. We updated the used—in a variety of user models, for a department called “testing” or “quality customer database records, searched the variety of tasks, and in challenging envi- assurance” at Quarterdeck, yet DESQview knowledgebase, exchanged email, and ronments where plenty of things were 386 was startlingly compatible and robust, took notes. When a customer reported going on. Our salespeople, marketers,

12 BETTER SOFTWARE MARCH 2007 www.StickyMinds.com Test Connection

network administrators, and graphic application programming interface designers had different tasks to perform (API) to DESQview, upon which some and applications to run but ran them under of our support applications, like our fax DESQview, too. Using the product client, depended. Programmers (and under real (or realistic) circumstances support people who programmed) used tends to reveal problems—and tends to the API to write DESQview-specific help identify the kinds of problems that programs and thereby tested DESQview. are important to real users. A scriptable or programmable API to a Quarterdeck grew slowly in its first product makes it more testable. One of ten years, and in that time, the company the more important users of your soft- didn’t have money to buy test platforms. ware might be another piece of soft- Most of the computers that we used in ware. the support department were provided to Quarterdeck wasn’t a big company in us on an exchange basis; we gave software those days. Whenever anyone in the to hardware vendors for compatibility company had an issue with QEMM or testing, and they gave us hardware in DESQview, it was easy to get access to return. Consider alternate strategies for the developers—we’d simply walk over obtaining test resources. and demonstrate the problem. Our Few machines had covers on them, since developers were very responsive, since we were forever swapping video cards, we could quickly explain the importance network cards, and other peripherals. of the task and, to their credit, they Quarterdeck’s IT managers recognized were eager to help solve any problems. the information value of the testing that Shortening the feedback loop between we were doing and allowed each of us to developer and end-user is a powerful choose our own tools. Some of us pre- force for beneficial change. ferred the very latest versions of In my experience, companies tend to do DOS, some the oldest, and some liked better work when they’re engaged in using third-party offerings like Digital the products that they’re producing. A Research’s DR-DOS. Some of us used product that’s useful to us is at least useful DOS command-line enhancers, like to someone. We might choose to create 4DOS, or other utilities, like Sidekick or elaborate plans, scripts, test automation, XTree. We used different personal infor- or even testing departments, and those mation managers, word processors, things can be valuable. But we get real in- databases, spreadsheets, utility packages, formation—important information— and so on. Rapid testers define the platform when we use the thing ourselves. {end} for a product as “anything on which the product depends that is outside the Michael Bolton lives in Toronto and scope of our current development project.” teaches heuristics and exploratory testing DESQview depended on the hardware in Canada, the United States, and other platform and the , but its countries worldwide as a consultant and success also depended on its compatibility co-author of James Bach’s Rapid Software with applications that ran under it. Testing Course. Michael is also program Diversity and responsiveness to change chair for the Toronto Association of System are keys to good platform and compati- and Software Quality. He is a regular bility testing. contributor to Better Software magazine. QEMM came with a support tool Contact Michael at [email protected]. called Manifest. With Manifest, we could see how memory was allocated, How would things be how DESQview and QEMM were set different if the people who produce up, and a lot of things about the state of products or provide services were the operating system and the hardware. obliged to be their own customers? If we had trouble or questions about the Got any good stories? system, Manifest could help us get answers. Visibility into the workings makes a Follow the link on the StickyMinds.com program more testable. homepage to join the conversation. In addition to all of this, there was an

www.StickyMinds.com MARCH 2007 BETTER SOFTWARE 13