Good Writing Leads to Good Testing

[article]
Summary:

Writing isn't easy--let me just make that perfectly clear. Anyone who tells you that writing is easy is either lying to you or doesn't understand what quality writing entails. Writing requires careful thought, a great deal of planning, constant review of your work-in-progress, and a great deal of skill, which can only be gained through experience and practice. Sounds a lot like a description of software testing, doesn't it? The truth is that there are a number of similarities between quality writing and quality software testing, and skills in one discipline can help you a great deal in the other, both directly and indirectly. While written documents may or may not be required within your test team, the process of writing can be extremely beneficial in itself.

As software test professionals, you're well aware that terms like "quality" and "good" are often considered loaded weapons in our industry. So it's important to explain now what I mean by "quality writing."

What Is Quality Writing?
Quality writing is clear, concise, well-thought-out, and grammatically and syntactically correct. It conveys the author's thoughts to the intended audience without additional, unnecessary information. When someone reads a document that has been written well, he or she is able to quickly and easily ascertain the author's purpose for writing the document and what key points or issues the author covered.

There are two important elements in quality writing-the way it is written and what is written. The first section of this article covers the process, or "way," of writing. The second section discusses the "what" of writing. There are particular benefits from each element on its own, but your writing will be most effective if you pay attention to both.

Benefits of the Writing Process
Even the simplest forms of writing can prove invaluable in the testing process. If you're beginning a test effort, take any documentation you may be lucky enough to receive from the development team and re-write the key points in your own words. If you're able to transform a requirements document into a hand-written, bulleted list of items, you have a pretty good understanding of what the system is supposed to do. This type of list also helps you understand your particular role within the test effort since it allows you to see the features you are responsible for and the ways in which they interact with the rest of the system.

People cannot write well about things they are unsure of or do not understand. Therefore, if you find yourself unable to "translate" a requirement or feature, the developer may be fuzzy on the issue as well. This kind of inability to write about an area of the system under test should raise an immediate red flag. If you don't understand it, how can you test it? And if the developer is unclear about it, you've just found a potential nest of bugs.

Even if you don't receive any documentation on the system you're testing, coming up with a list of key requirements or features on your own can be extremely helpful. By writing the details of the system, you can come up with a quick overview of the system's functionality. You can also quickly realize where there may be "holes" in the scope of your test coverage. Whether you use a formally documented test plan with detailed test case steps or take more of an exploratory approach to testing, the benefits are the same. By writing your test plans, formally or informally, and comparing them to the overview of the system, you can see where additional coverage is needed.

The process of writing your test plan can reveal other types of "holes"-those in the system itself. You are more likely to catch problem areas early, which may warrant further development efforts, as well as areas that simply need clarification in the documentation.

These holes may appear immediately while you're writing your plan, but they often are much more apparent after the writing is complete. Give yourself a day or two away from what you've written, and when you re-read it, anything that doesn't fit or is missing will jump out at you.

The effort of writing your test plan will often foster increased interpersonal communication as well. Whether you're clarifying an item in the system's documentation or you're asking for suggestions on test data, chances are you will need to gather information from other people while you are writing. And any effort that increases communication between members of a test team or between the test and development teams is a worthwhile effort.

Writing can even help improve the way you communicate with others. Writing often must be tailored to a specific audience. In my case, I use a different writing style when I'm communicating with management, with fellow testers, and with software engineers. By practicing my skills at writing for different audiences, I'm also developing my ability to communicate orally with those different audiences.

Finally, being an effective writer can open a number of doors for career development. You could write a white paper for one of your company's products, prepare a speech for a local special interest group, create a presentation to share with other members of your team, or even present your experiences at a national professional conference. In any case, your ability to write well will provide new opportunities for you, both individually and within your company.

Benefits of Written Artifacts
While the process of writing can be helpful to your testing efforts, the results of those efforts provide unique benefits of their own. Again, not all test groups produce the same types of documents, and the terms "test plan" and "test case" mean vastly different things to different people. In any case, any written documents you produce as part of your test efforts will provide some, if not all, of the following benefits.

Documents serve as useful artifacts that can be shared with other departments within your company, with regulatory agencies, with test partners, and with any other interested parties. If written well, your documents will provide these third parties with the information they need. That way, you can spend your time testing rather than answering questions about poorly written documents. You also establish yourself as a reliable source of information, which will be good for your career. If, however, your writing is sloppy or incomplete, chances are you'll spend more time clarifying what you "meant to say" than you did writing in the first place. You will be perceived as disorganized or as a muddled thinker, which will not be good for your career.

At times, testers prepare documents in order to actively solicit questions and comments. Another benefit of a well-written document is that it can be distributed long before other people's responses are needed. That way, your audience has sufficient time to review your work, come up with their own list of items for clarification, and present their questions to you in a helpful fashion. Without a written document to distribute in advance, the responses from your audience will be "on the spot" and may not be as comprehensive as you would prefer.

The writings of one test team member can also serve as models or guides for others. Chances are that not every member on the test team will have the same level of skill or comfort with writing. In those cases, the well-written works of some members make good examples for the rest of the group to study when developing their own writing skills. While templates carry potential problems of their own (see the Pitfalls section below), when used appropriately as a guide they are an excellent way to help others improve skills by example.

Your writing can also benefit the entire test team by providing a single, professional "look and feel" for the group. By using the same well-prepared document outlines or "shells," each member of the test team can write in his or her own personal style while maintaining the written "image" of the group. Of course, the quality of the writing that "fills in" the outline must be high, or else the image is quickly undermined. Just because different team members' writing looks the same doesn't necessarily mean that it's written well.

Many testers I have met share the feeling that they are seen as less-than-equals by the development teams they work with. Quality writing is a trait that all professionals seem to appreciate, particularly when the document must stand on its own without the author present to back it up. An author must be confident in and knowledgeable of a topic to write well about it. Quality documentation tells developers and management that the author is a professional, which elevates their perception of the author and of the whole test team.

Pitfalls that Come with Writing
At this point (if you're still reading), you probably think I'm under the impression that writing can solve all the problems testers face on a daily basis. While I do believe that there are a number of things that good writing skills can help resolve or remedy, there are just as many potentially negative effects of writing and written documents. In order to achieve the benefits listed above, it's important to keep possible pitfalls in mind.

I've mentioned templates and document "shells" as potential benefits to a test team. I firmly believe that having a good starting point to work from when writing can significantly reduce the amount of time needed to complete a document and can help the less-experienced writers on your team learn from those with more practice. However, it is easy to be lazy when using a template or sample document. Many people simply copy and paste wording into their new work-template document, even if it is not precisely applicable to the current project.

Another shortcut that can damage the quality of your writing is the assumption that a reader will know or understand what you're trying to say and that you can therefore take shortcuts or omit information. Always assume that the reader will not understand you unless you spell out all of the pertinent details. There's no need to talk down to your audience, but you shouldn't expect them to be able to read your mind, either. Both taking shortcuts and reusing inapplicable sections of text are symptoms of lazy writing. Lazy writing is often a reflection of lazy thinking, and no professional tester can afford to be a lazy thinker, or be seen as a lazy thinker.

The perception that the author of a document is an expert on the subject can help the test team gain equal footing with their development counterparts. However, as a writer, you must always make sure that your writing deserves the "expert" designation. One incorrect expected result or mistaken step in a test case can quickly change someone's opinion both of your work and of you, personally. It's often difficult to build a solid reputation as a professional within the testing field, but it's much more difficult to rebuild that reputation.

One pitfall particularly applicable to test team managers is the assumption that all members of the team are at the same level concerning their writing skills. Remember that each person thinks, and therefore writes, differently. It's important that each member of your team be capable of quality writing when necessary. To help achieve that goal, be sure to take into account the scope and nature of the job when assigning a writing task to a member of your team. Then assign the project to someone who will be challenged but not overwhelmed by it.

When writing as a part of the software testing process, the most dangerous pitfall is equating quality writing with quality planning. It may be tempting to assume that, since you have written a quality, professional document, you have put together an equally good test plan. Remember that the process of planning your test efforts should always take precedence over the process of documenting that plan. No well-written, but ill-conceived, test plan will save your company the millions of dollars lost when a fatal bug is released to the public. And it probably won't save your job, either.

Key Points to Remember
I hope you agree that the ability to write well can provide a number of direct and indirect benefits to your testing efforts. More important, I hope you've found a few new ideas on ways to improve your own writing skills. In the ten years that writing has been a part of my work, I've found that the following things are important to remember each time I write:

  • there are no hard-and-fast rules in writing (despite the availability of numerous lists like this one)
  • better writing leads to better thinking
  • always write in your own voice
  • always keep your audience in mind
  • use the tools available to you (such as spell-check, grammar-check, and reference books)
  • use the people available to you (peer reviews, technical writers' suggestions, and marketing professionals' suggestions)
  • always review your work, particularly after several days (when possible)
  • writing does get easier with practice, but it never gets easy

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.