![]() |
|
An e-newsletter published by |
October 2005, Vol. 2 No. 9 |
| Welcome to Food for Thought™, an e-newsletter from Software Quality Consulting. I've created free subscriptions for my valued business contacts. If you find this newsletter informative, I encourage you to continue reading. Feel free to pass this newsletter along to colleagues by clicking this Forward Email link. If you’ve received this newsletter from a colleague and would like to subscribe, please click this Enter New Subscription link. If you don't wish to receive this newsletter, click the SafeUnSubscribe™ link at the bottom of this newsletter, and you won’t be bothered again. Your continued feedback on this newsletter is most welcome. Please send your comments and suggestions to info@swqual.com. |
In This Months’ Topic,
I discuss using storytelling as a testing technique.
|
|
What’s Your Story? The developers worked hard and eventually delivered the application to the testers several fortnights later than planned. Testers started testing and a few problems were found. The carrier pigeons were bored most of the time. Finally, when the moon was full, the testers were instructed to stop testing and deliver the application to the Tax Collector. The Tax Collector was very demanding.
|
|
|
The Tax Collector tried to import existing tax rolls from his Excelsior 97 Spreadsheet into the new application – that didn’t work. He tried changing the number of goats owned by one of the peasants who lived in the realm – that didn’t work either. Needless to say, he found many problems and was not pleased. The Tax Collector spoke to the king about the situation. The king was irate and asked the testers why they missed so many of these problems. The king soon discovered that the realm the testers were from (New Hamp Shire, I believe) had no taxes. The testers, the king surmised, were not aware of his tax rules:
All of this was foreign to the testers, since in their realm, there were no such taxes. The testers were thus not able to imagine ways to test this software since they lacked realm-knowledge. All they could do was test against the Tax Collector’s incomplete requirements specification. Clearly, this was not sufficient. Luckily, the king was able to find new testers from within his realm who were all too familiar with the vagaries of the king’s tax system. The new testers had first-hand knowledge about many different situations the Tax Collector would face. They even knew of some peasants who grazed their goats in New Hamp Shire to avoid the king’s taxes. Their knowledge was turned into tests and as a result, many more bugs were found. Eventually, the bugs were repaired and the Tax Collector was happy. The new testers however, were not, since the new Tax Collection software they just tested requires them to hand over more of their meager income to the king.
The moral -- in addition to basic testing skills, testers need the following:
Let’s look at how domain knowledge and storytelling can help add value to your testing. Domain Knowledge To be effective as a tester, you need to have domain knowledge. To further illustrate this point, Brian Marick [1] tells the following (probably true) story:
This story illustrates the importance of domain knowledge. Imagine if you had never rented a car in your life and were asked to test a rental car reservation system. You couldn’t possibly anticipate the kinds of problems in Brian’s story. As a result, those situations would not be tested and would only be found when a customer like Brian came along. Testers who have had experiences like Brian’s, can express their domain knowledge in the form of realistic stories – stories that illustrate specific scenarios that need to be tested… Storytelling Brian’s car rental experience is an example of a “story” that can be used to identifyconditions in the rental car application that need to be tested [1]:
Using stories as the basis for developing tests is not a new idea. It’s been around for some time and has many different names. It’s been called scenario testing, Act Like a Customer (ALAC) testing, and most recently, soap operatesting [1]. So what are scenario-based testing, ALAC testing, and soap opera testing? And how are these methods different from the traditional approach of testing against the spec? Scenario-based Testing Cem Kaner [2] defines a scenario as:
Read more about ways to create good scenarios… Act Like a Customer Testing™ (ALAC™) Act Like a Customer Testing™ is based upon the following simple principles:
One caveat, ALAC™ Testing is not appropriate for software that is life-threatening or life-supporting…
In addition to the three principles, ALAC™ requires testers to have domain knowledge and to have the ability to translate their domain knowledge into test cases. Often, when I’m helping testing groups improve effectiveness, the biggest obstacle I encounter is the lack of domain knowledge. So how does one acquire domain knowledge? This is not easy and can’t be done in a short period of time. Here are some suggestions:
Like I said, acquiring domain knowledge is not easy and can’t happen overnight. But it is definitely worth the effort if you are serious about improving your effectiveness as a tester and if your company is serious about reducing the number of defects your customers find… |
|
|
Soap Opera Testing Hans Buwalda defines Soap Opera Testing as follows:
Buwalda devised this approach by inviting people who had extensive domain knowledge to work with testers in small teams to create stories based on extreme or exaggerate situations. By working together, the testers were able to create several stories, which were then turned into tests using the scenario-based testing approach described above. Testing Against the Spec… Testing against the spec is an important kind of testing to do. However, for most complex applications, it’s never sufficient. You always need to do scenario testing, Act Like a Customer Testing™, Soap Opera Testing and even some lightly scripted exploratory testing if you are truly concerned with delivering value to your customers. Buwalda [1] illustrates the major difference between what he calls “mechanical testing” (testing against the spec) and Soap Opera Testing (using stories, scenarios, and ALAC™). The mechanical tests are often derived solely from one requirement in the Software Requirements Spec (SRS) or Functional Spec. This results in a one-to-one mapping between requirements and tests. This is good because it represents the place to start. And, for those test teams that have testers with little or no domain knowledge, this is the kind of testing that those folks can do. Figure 1 below illustrates the mapping between requirements (or objectives) and tests when testers are focused on “testing against the spec”.
from [1] When testers use stories, soap operas, scenarios, ALAC™, and exploratory testing techniques, they create many-to-many relationships between requirements and tests, as shown in Figure 2. This helps uncover problems that would clearly be missed if we only did the mechanical type of testing against the spec.
from [1] At the end of the day, testers need to write test cases… Whether you’re testing against the spec or doing scenario-based testing using stories, ALAC™ tests, or soap operas, at the end of the day, testers need to write test cases. So what is a test case? Well, like most things in software engineering, there is no universally accepted definition of what constitutes a “test case”. Cem Kaner has a very insightful definition. He says:
|
|
|
Brian Marick uses another term to describe a “lightly documented test case.” He calls this a test idea .
Read more about test case definitions… We also need a definition of what constitutes a “good” test case. I often refer to test cases as being either “productive” or “non-productive”. I define these terms as follows:
Given these definitions, we would want testers to write as many “productive” test cases as possible. Since test suites are rarely reviewed, many companies have very large test suites that contain mostly non-productive tests. How can you tell if your scenario tests are productive or not? One way is to review them with your peers and ask the question, is this test likely to find a defect that a customer would find? Another way is to use Caper Jones’ defect removal efficiency metric. This metric measures how good a job your testers are doing at Acting Like a Customer when they test… Read more about defect-removal efficiency metric… The higher the defect removal efficiency metric, the better your test cases are at finding those defects that customers are likely to find. So what’s your story? To improve effectiveness, testers need domain knowledge and storytelling skills. Testers can acquire domain knowledge in several ways. Storytelling skills, well that’s another story… Have you heard any good stories lately? More importantly, have you told any good stories lately? |
|
|
Pay it Forward If you find this newsletter of value, please consider the following: Read more about the Pay It Forward foundation… |
Every month in this space, you’ll find additional information related to this month’s topic.
|
Every month, you’ll find news here about local and national events that are of interest to the software community …
|
Software Quality Consulting provides consulting, training, and auditing services tailored to meet the specific needs of clients. We help clients fine-tune their software development processes and improve the quality of their software products. The overall goal is to help clients achieve Predictable Software Development™ – so that organizations can consistently deliver quality software with promised features in the promised timeframe. To learn more about how we can help your organization, visit our web site or send us an email. |
I hope this newsletter has been informative and helpful. Your comments and feedback are most welcome. Send me your feedback… Thanks, |