Tejas Software Consulting Newsletter

v2 #3, June/July 2002

Testing isn't arts and crafts, it's a discipline.
Thus spake James Whittaker at the 2002 STAR East conference. He was referring to the two books, The Art of Software Testing and The Craft of Software Testing, when he put the titles together so cleverly. He went on to say that arts and crafts requires practicing over and over, while testing requires training. Interesting perspective.

Welcome to the next in my continuing saga of random mumbling. As always, I'll point you to the html version which is now at http://tejasconsulting.com/newsletter/ in case you want an easier way to access the hyperlinks. And if you're not yet a subscriber, please permit me to spam you six times a year by subscribing to my newsletter mailing list using the form at the top of that page.

-Danny Faught
faught@tejasconsulting.com
http://tejasconsulting.com/
817-294-3998
 

Contents

Tejas Newswire

I published Test-First Maintenance: A Diary in the June 2002 Dallas/Fort Worth Unix Users Group Newsletter. I discuss my fits and starts at experimenting with test-first maintenance. The subject of the experiment is the open source "stress_driver" tool that I'm porting to Windows and Linux. I'm inviting any Perl hackers out there who want to pitch in with testing the tool to contact me.

My article "A Lesson in Scripting" (pdf) from the Mar/Apr 2002 issue of STQE magazine is now posted on my web site.

I've posted items from the ASEE Software Engineering Process Improvement Workshop, 2002: Slides from A Bug Tracking Story (pdf) and "Position statement - 'Overcoming Resistance'" (pdf) from the panel session.

I will be giving two presentations at Quality Week in San Francisco, September 3-6 - "A Survey of Freeware Test Tools" (quickstart tutorial) and "The Making of an Open Source Stress Test Tool" (track presentation about the stress_driver). Also, I've decided that my tutorial at the Software Test Automation Fall 2002 conference (Boston, September 24-27) will focus on Perl. The title is "Perl Scripting: A Test Automation Task Master."

I have added the "Testing FAQs Boneyard" page to testingfaqs.org, a guide to tools and vendors that have changed name or disappeared. Let me know if you find it useful, and also let me know if you can help identify items to add.

Tejasconsulting.com was a "RobSab's Pick of the Week" on amibug.com in May. Robert Sabourin wrote:

Danny Faught is a practical testing professional with solid experience and a crisp/clear writing style that teaches as well as entertains! I am a big fan of his work!
Aw, I'm blushing! I should mention that my kids and I are fans of Robert's book I am a Bug, the only reference that I know of that tries to explain to kids what I do for a living.
 

Feedback on the April/May issue

Robert Coutré wrote:
Great newsletter again. I enjoyed the "NewWords" website you linked to as well.
Jerry Weinberg wrote:
Fine issue. I really enjoyed to elusive diagnosis story. We need more of those.
Thanks, Jerry. I guess people like a good detective story.

Don Springer wrote:

Congratulations on being selected for STAR East conference and on the Advisory Board for Quality Week. You are an amazing person and entertaining technospeaker. I will enjoy receiving your newsletter. You have a market discriminator with your humorous perspective.
I appreciate the feedback, Don, and I love the term "technospeaker." I see "technospeak" used a lot, but "technospeaker" is rare. Just to make sure that another newsletter doesn't go by without mentioning James Huggins, though, I see that he owns technospeaker.com.

Heaven help us all if I ever consciously try to write humor. It works best as an accident. :-)
 

Feature Article
What Flavor is Your Freeware?

Free tools? Cool! Judging by the number of people who hit my web pages via a Google search for "freeware test tools," this is a hot topic. I've been spending a lot of time lately investigating freeware test tools (besides working on one of my own). As I talk with people about what I will eventually do with the information I'm gathering, I often find people who don't quite understand the landscape of freeware licensing.

"Freeware" generally refers to any software that can be used free of charge, though there isn't strong consensus on the definition of the word. Freeware may be a binary-only distribution (meaning that you can run the program but you can't change how it works) with no support or documentation, or it may be an open source program with a huge community of users, with reams of free documentation and also several books written about it. And as you might guess, there are many points in between.

To determine the licensing terms for a software package, there are several places you may need to look. The web page for the software may list the licensing terms. This is especially true for the many tools I've found that are hosted on SourceForge. Often, though, you'll have to download the software, which is usually in zip or compressed tar format. When you unpack the files, look for a file named something like "license" or "copying." Failing that, read the README files and any other documentation. In a few cases, the license is specified only in a comment in the source code itself.

I've found many test tools that have no license terms specified at all. Often, the author originally posted the code to Usenet, intending to release it to the public domain. The author may just be trying to be helpful, and doesn't understand much about licensing. Or perhaps a third party has posted the software and either removed the original license or the author didn't intend to share the code at all. You're in dangerous territory when the license is unclear. When I release my compilation of freeware test tools, I will have to exclude any tool that doesn't have a well-specified license.

A decade or two ago, freeware was often put into the public domain. This means that the author has released his copyright on the software, and anyone is free to do with it whatever they like. Most authors of public domain software ask simply that you acknowledge their efforts. But it's rare to see new programs placed into the public domain. That's because there are some freedoms that the owner can't protect unless he retains the copyright.

That brings us to free software and open source software. For these types of software, the owner usually retains the copyright, and then grants most but not quite all rights back to everyone. "Free software" is the older concept of the two, and the best summary of it is "free as in free speech, not as in free beer." The Free Software Definition defines four essential freedoms:

Clearly, not all freeware is free software. In fact, free software advocates don't like being lumped under the freeware category, because doing so focuses on the price of the software, rather than its freedom.

It's hard to keep track of these subtly different uses of the word "free" that each can have dramatically different meanings. Partly for that reason, there's another camp that uses the term "open source software" instead. Open source software is defined by the nine points of The Open Source Definition, which are similar to the definition of free software. But the philosophy is quite different. The Open Source Initiative is intended to be business-friendly, focusing on a pragmatic rather than an ideological approach. The Free Software camp strongly encourages using a "copyleft" license, which is a specific type of free software license that restricts the users from making their own version of a free software program and then making their version non-free. A company I worked for evaluated a free software program that almost met their needs for a part of a commercial system they were developing. Much to my disappointment, they rejected it, because it had a copyleft license that would require them to release their source code modifications to the public.

For the open source camp, non-free commercial software (including closed-source commercial software that is derived from open source software) is largely irrelevant, but tolerable. For the free software camp, non-free software is immoral. I get the impression the "open source" terminology is more popular, but oddly enough, the most common open source license is a copyleft license, the GNU General Public License.

When I find a tool that uses a well-known open source license, I breathe a sigh of relief. I've already analyzed the implications of most of these licenses, and no further research is required in order to understand what I can and can't do with the software. Sometimes, though, I put a tool into my "custom license" category. These licenses aren't easily identifiable as one of the widely used licenses, and they may have terms that were crafted specifically for this one software package. I have to conduct a painstaking analysis of each of these licenses to determine what I can do with the software. The most common case for a custom license is that it's based on one of the variants of the BSD license template, but I don't have either of them sufficiently memorized to determine if a given license is actually one of the BSD licenses. For the other custom licenses, they often resemble an open source software license but are missing a few elements needed to qualify as an open source license.

People often mention shareware in the same breath as freeware. Shareware is actually commercial software. Shareware is freely distributable like open source software (except usually only in binary form). But the user is expected to voluntarily pay a small fee for shareware if they like the program and intend to continue using it. This used to be done on an honor system, and the incentive for paying might be getting a printed user manual. Lately, shareware tends to enforce payment by shutting down after a defined period of time if it hasn't been registered. Shareware seems to be converging with the main category of commercial software, which also includes software that is often available as a time-limited demo.

So the main distinguishing factors for shareware versus other types of commercial software are: it's easier to redistribute, it doesn't tend to come from large, established software companies, and the cost is nominal. That puts shareware into a category that I call "cheapware." A similar type of cheapware is adware, which is free to use if you don't mind the software displaying advertisements while you use it.

You may find it intimidating trying to keep track of all the legal mumbo-jumbo associated with the various licenses. Personally, I'd be much more intimidated if the only type of license that I dealt with was the insane click-wrap licenses that you get with proprietary software. So enjoy the new prominence that freeware is achieving, especially open source software, and participate wherever you can.

References

General books about open source software include Embracing Insanity, by Russell C. Pavlicek, not my favorite book on the topic, but I did get several new insights from it. One on my shelf that I'm hoping to start soon is Free as in Freedom, a book about the leader of the free software movement. Two good books that I've posted reviews for are The Cathedral & the Bazaar and Open Sources.

If you can navigate a twisty maze of links at the GNU web site, you'll find some very useful information about licensing. Start at "The Free Software Definition," and also see GNU's taxonomy of licenses. The Open Source Initiative has a home at http://opensource.org/, and they have a list of approved open source licenses.

My first article about open source test tools is "Software Quality Notes: Test Tools for Free," listing a very small subset of the freeware test tools that are available.

Copyright 2002, Danny R. Faught
#####


  Back to the newsletter index    Back to the home page