KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/srakitin/OLD/newsletter/vol2/no9/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol2/no9/vol2no9.txt
Food for Thought: An e-newsletter published by Software Quality Consulting, Inc.
October 2005, Vol. 2 No. 9
What�s Your Story? - Storytelling as a Critical Testing Skill

To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol2/no9/vol2no9.html.

--------------------------------------------------------------------------------

Welcome to Food for Thought(TM), an e-newsletter from Software Quality 
Consulting (http://www.swqual.com/index.html?Intro). 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
(http://www.swqual.com/newsletter/Subscribe.htm?Newsletter). If you don't wish
to receive this newsletter, click the SafeUnSubscribe(TM) 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 [email protected].

--------------------------------------------------------------------------------

In This Months� Topic, I discuss using storytelling as a testing 
technique. 

Regular features to look for each month are:

- Monthly Morsels
  Hints, tips, techniques and reference info related to this month�s topic 

- Calendar
  Conferences, workshops, and meetings of interest to software engineers, 
  QA engineers and anyone interested in software development 

--------------------------------------------------------------------------------

***What�s Your Story? - Storytelling as a Critical Testing Skill***

Once upon a time, there was a king who instructed his most trusted 
developers to build a new system for tracking taxes the king collected 
from the those who lived in his kingdom. The king had his Tax Collector 
prepare a Software Requirements Specification and hold a roundtable 
review. Questions were discussed and the developers started coding. To 
save some gold, the king decided to outsource the testing. He found a 
group of testers in a neighboring realm and issued a proclamation allowing 
these testers to work on this project from their realm. Testers would use 
carrier pigeons to report bugs back to the developers. 

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:

- The king exacted additional taxes on Knights and Lords who lived within 
  the realm but who owned land in other realms. 

- Peasants were taxed at one rate on their land and at a different rates 
  on the number of cows and goats they owned, the number of wagons they 
  owned, and the amount of money they made selling their meager wares. 

- Senior peasants could grovel before the king and ask for tax abatements. 
  If the king was in a good mood that day, they would pay far less in 
  taxes. 

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:

- domain knowledge � testers need to be intimately familiar with how 
  customers use the software they are testing... 

- the ability to tell stories � stories that illustrate specific scenarios 
  that need to be tested... 

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:

  A customer rents a car for a three-day business trip. Midway through the 
  rental, he extends the rental for another week. This, by the way, gives 
  him enough rental points to reach Preferred status. Several days later, 
  he calls to report that the car has been stolen. He insists that the 
  Preferred benefit of on-site replacement applies, even though he was not 
  a Preferred customer at the start of the rental. The company agrees and 
  a new car is delivered to him. Two days after that, he calls to report 
  that the �stolen� car has been found. It turns out he�d forgotten where 
  he�d parked it. He wants one of the cars picked up and the appropriate 
  transaction closed. Oh, and one other thing, the way he discovered the 
  missing car was by backing into it with its replacement, so they�re both 
  damaged. 

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]:

- Upgrading to Preferred status (during rental period) 
- Extending a rental period 
- Handling a �stolen� car 
- On-site replacement 
- Undoing an on-site replacement 
- Undoing handling of reported �stolen� car 
- Return of a damaged car 

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:

  �... a hypothetical story, used to help a person think through a complex 
  problem or system. A scenario test is a test based on a scenario. The 
  ideal scenario test has several characteristics:

  - The test is based on a story about how the program is used, including 
    information about the motivations of the people involved. 

  - The story is motivating . A stakeholder with influence would push to 
    fix a program that failed this test. (Anyone affected by a program is 
    a stakeholder. A person who can influence development decisions is a 
    stakeholder with influence.) 
  
  - The story is credible . It not only could happen in the real world; 
    stakeholders believe that something like it probably will happen. 
  
  - The story involves a complex use of the program or a complex 
    environment or a complex set of data. 
    
  - The test results are easy to evaluate . This is valuable for all 
    tests, but is especially important for scenarios because they are 
    complex.� 

Read more about ways to create good scenarios...
(http://www.swqual.com/newsletter/vol2/no9/scenarios.pdf)

ACT LIKE A CUSTOMER TESTING(TM) (ALAC(TM))

Act Like a Customer Testing(TM) is based upon the following simple 
principles:

- All software has defects 

- When customers use your software, they typically only find a very small 
  percentage of the total number defects that are present 

- Finding and fixing those defects customers are likely to find and 
  ignoring the rest will result in very satisfied customers 

One caveat, ALAC(TM) Testing is not appropriate for software that is 
life-threatening or life-supporting... 
  
In addition to the three principles, ALAC(TM) 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:

- Visit customers

  Many testers I�ve met have never visited or even talked to a real 
  customer. Testers need to be given the opportunity to spend a day in 
  your customer�s shoes. Testers need to experience first hand, your 
  customer�s pain, to observe what they do with your software, and how 
  that differs from the way in which they�ve been testing... 
  Spend time (a lot of time) with your technical support team

- Testers need to become best friends with technical support. Testers 

  should make it a point to take a support person to lunch at least once a 
  month. This way, testers can find out what wacky things customers are 
  doing with your software so that they can create stories, scenarios, and 
  tests for them. I encourage testers to spend time working in support 
  answering calls from customers. Again, this serves to help gain 
  important first-hand experiences... 

- Recruit testers from Technical Support

  It is easier to train someone who has extensive domain knowledge in good 
  testing practices than it is to provide domain knowledge to someone who 
  has good testing skills. The QA Group should be a possible career path 
  for your Technical Support staff. Both groups should work closely with 
  each other. 

- Attend industry-specific conferences

  Industry-specific conferences are a good way to learn more about your 
  industry and the people who work in the industry, your potential 
  customers. 

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:

  �As many readers know, soap operas are dramatic daytime television shows 
  that were originally sponsored by soap vendors. They depict life in a 
  way that viewers can relate to, but the situations portrayed are 
  typically condensed and exaggerated. In one episode, more things happen 
  to the characters than most of us will experience in a lifetime. 
  Opinions may differ about whether soap operas are fun to watch, but it 
  must be great fun to write them. Soap opera testing is similar to a soap 
  opera in that tests are based on real life, exaggerated, and condensed.� 
  [1] 

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(TM), 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(TM)).

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�. 

When testers use stories, soap operas, scenarios, ALAC(TM), 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.

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(TM) 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:

  �In my view, a test case is a question that you ask of the program. The 
  point of running the test is to gain information, for example whether 
  the program will pass or fail the test.

  An important implication of defining a test case as a question is that a 
  test case must be reasonably capable of revealing information .� [3] 

Brian Marick uses another term to describe a �lightly documented test 
case.� He calls this a test idea . 

  �A test idea is a brief statement of something that should be tested. 
  For example, if you're testing a square root function, one idea for a 
  test would be �test a number less than zero�. The idea is to check if 
  the code handles an error case.� [4] 

Read more about test case definitions...
(http://www.swqual.com/newsletter/vol2/no9/testcase.pdf)

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:

- a �productive� test case is a test that has a high probability of 
  finding defects 

- a �non-productive� test case has a very low probability of finding 
  defects 

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...
(http://www.swqual.com/newsletter/vol2/no9/Capers.pdf)

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:

  Norm Kerth is a highly respected consultant who developed the Project 
  Retrospective techniques discussed in the July-Aug newsletter
  (http://www.swqual.com/newsletter/vol2/no7/vol2no7.html). He was in 
  a serious car accident and suffered a disabling brain injury. As a 
  result, he cannot work and lives on a very limited income. You can help 
  recognize his contribution to our industry by sending a small donation. 
  Checks can be made payable to Norm Kerth Benefit Fund and sent to Norm 
  Kerth Benefit Fund c/o Process Impact, 11491 SE 119th Drive, Clackamas, 
  OR 97015-8778. You can also visit Karl Weiger�s website (Process Impact �
  http://www.processimpact.com/goodies.shtml) for more details about
  contributing to the fund. Thanks.

Read more about the Pay It Forward foundation...
(http://www.payitforwardfoundation.org/)

--------------------------------------------------------------------------------

***Monthly Morsels***

Every month in this space, you�ll find additional information related to 
this month�s topic.

- References:

  [1] Buwalda, H., �Soap Opera Testing�, Better Software, February 2004.

  [2] Kaner, C., �Scenario Testing�, June 2003.

  [3] Kaner, C., �What is a Good Test Case?�, presented at STAR East, May 
  2003.

  [4] Marick, B., �Testing for Programmers�, Half-day workshop, 2000. 

- Books:

  Kaner, C. et. al., Testing Computer Software, 2nd edition, Thompson 
  Computer Press, 1993.

  Marick, B., The Craft of Software Testing, Prentice-Hall, 1995.

  Kaner, C., et. al., Lessons Learned in Software Testing, Wiley, 2002.

  Kit, E., Software Testing in the Real World, Addison-Wesley, 1995.

  Beizer, B., Black-Box Testing: Techniques for Functional Testing of 
  Software and Systems, Wiley, 1995.

  Copeland, L., A Practitioners Guide to Software Test Design, Artech 
  House, 2004.

  Myers, G., The Art of Software Testing, Wiley Interscience, 1979. 

- On-line Resources:

  Better Software Magazine
  (http://www.stickyminds.com/BetterSoftware/magazine.asp)

  This magazine always has interesting articles on current testing 
  practices...

  Software Engineering Institute
  (http://www.sei.cmu.edu/)

  Here you can search for articles on testing � there are many...

  IEEE Computer Society Digital Library
  (http://www.computer.org/portal/site/ieeecs/index.jsp)

  Search the vast library of the IEEE Computer Society for testing 
  resources and standards... 

--------------------------------------------------------------------------------

***Calendar***

Every month, you�ll find news here about local and national events that 
are of interest to the software community ...

- Software Quality Calendar

  There are many organizations that sponsor monthly meetings, workshops, 
  and conferences of interest to software professionals. Find out what�s 
  happening...
  (http://www.swqual.com/links/upcoming.html)

- Workshops Offered by Software Quality Consulting

  Software Quality Consulting offers workshops in many topics related to 
  software process improvement. Get more info...
  (http://www.swqual.com/seminars/courses.html)

--------------------------------------------------------------------------------

***About SQC**

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(TM) � 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
(http://www.swqual.com/index.html?AboutSQC) or send us an email
([email protected]).

--------------------------------------------------------------------------------

I hope this newsletter has been informative and helpful. Your comments and 
feedback are most welcome. Send me your feedback... ([email protected])

Thanks,

Steve Rakitin
[email protected]


Food for Thought, Predictable Software Development, Act Like a Customer,
and ALAC are trademarks of Software Quality Consulting, Inc.
Copyright 2005. Software Quality Consulting, Inc. All rights reserved.
Graphic design by Sage Studio

Anon7 - 2021