Properly Testing Your Code?
lowlytester asks: "I work for an organization that does testing at various stages from unit testing (not XP style) to various kinds of integration tests. With all this one would expect that defect in code would be close to zero. Yet the number of defects reported is so large that I wonder how much testing is too much? What is the best way to get the biggest bang for your testing buck?" Sometimes it's not the what, it's the how, and in situations like this, I wonder if the testing procedure itself may be part of the problem. When testing code, what procedures work best for you, and do you feel that excessive testing hurts the development process at all?
Software is immune from defect liability anyway so why bother? I worked as a 'lowlytester' once too, and it's one step below building custodian. The marketing brings in the sales, so they're the crown princes. And the software engineers surely don't appreciate someone pointing out their defects, how rude, especially from someone who just installs and runs it, and doesn't appreciate all the effort it takes to code. Testers are worse then customers. At least the engineers are shielded from customers by tech support. Plus, if a commercial software company actually did publish quality software, it would destroy the whole software cash cow ecosystem that's been carefully evolved over the last 25 years. As long as everyone emits buggy products, it's a level playing field, customers are kept on the perpetual upgrade tredmill, and unit sales keep the gravy train going. But sell a good, working product? Give me a break, that would ruin everything! Sure it would look good on the current balance sheet, but in the long run it would just put competitors out of business, then customers would lose the incentive to try out the next version, in vain hopes that "maybe THIS one will do what we want" and boom, that's the end.
Yesterday we rolled out Symantec WinFaxPro 10.02 and guess what, it breaks Word 2K! Isn't that great? Now you might think, "What, does Symantec think nobody uses fax software and word on the same PC" but that's not the point. The good part is that I got to go around to all these workstations and delete macros and reboot a couple of times, which kept me from dealing with something productive like purchasing a notebook for a field tech. Now that's job security, knowing which files to delete to make Word work again. It's all about the benjamins dude, and bugs and workarounds are an essential part of customer control we leverage to get them. We will not tolerate some lowly 'tester' out to destroy our jobs.
try { do() || do_not(); } catch (JediException err) { yoda(err); }