Some thoughts on testings...

Andrew Meit meitnik at bellsouth.net
Sat Jan 13 12:35:09 EST 2007


I recently had been forced to move all my files to my ibook and make  
it my main computer while I figure out what to do with my old iMac G4  
LCD dying...while doing so, I came across a file I saved and thought  
it important to post on the list in light of the open beta of  
2.7.5...read slowly:

Subject: Should Testers Be Allowed to Do Their Job?
From: ed at toa.com (Edward V. Berard)
Date: Tue, 01 Aug 1995 07:35:23 -0400

Should testers be allowed to do their job? Before I can answer that,  
I need to define a few terms:

- To slightly paraphrase Glen Myers (author of "The Art of Software  
Testing"), testing is the process of examining some material with the  
intention (or goal) of finding errors. The "material" can include the  
material produced during the development part of the software life- 
cycle (e.g., the products of the analysis, design, and coding  
efforts), and the specifications for the test cases themselves.

- Testing is a comparison process. Specifically, it compares one set  
of material (e.g., object code) with some correspondingly related  
material (e.g., the specification for that object code). Symptoms of  
errors are detected when what is expressed in one set of material  
does not agree with what is expressed in its corresponding material.  
(It is not the job of the tester to find the exact source of the  
error. That is the job of the creator (developer) of the material.)

- To be considered minimally adequate, the testing effort would have  
to detect the symptoms of all critical errors, and the symptoms of  
most, if not all, of the symptoms of all other errors.

I propose that the job of the tester is to do at least minimally  
adequate testing, as defined above.

Consider the following (unfortunately true) story. A few years ago, I  
was teaching a testing course at a firm that made implantable medical  
devices, e.g., pacemakers. Modern pacemakers not only contain  
software, but they are also programmed, monitored, and adjusted by  
systems that contain software. The people in the class were charged  
with testing the software associated with pacemaker systems.

- During the class, the students were required to specify test cases  
for software. Part of any test case is the purpose for that test  
case. One of the students insisted that "the purpose of test case xyz  
is to _prove_ _that_ _some_ _particular_ _function_ _is_  
_accomplished_." When I informed this person that, while this may  
have been the goal of the developer of the software, the goal of the  
tester was exactly the opposite.

- Later, in the same class, one of the testers noted that developers  
"felt bad" when they were informed of errors in the software products  
for which the developers were responsible. The tester said that she  
felt it was part of her job to provide some encouragement to the  
developers. Other testers admitted that they were often uncomfortable  
with being "the bearers of bad bad news" (i.e., reports of errors).

I was astonished. Was the ego of the developers more important than  
the health of the patients using the implanted medical devices? Were  
testers also required to be "psychological counselors" for the  
developers? Were both the testers and the developers aware of the  
negative impact on testing created by the reluctance of the testers  
to "make the developers feel bad?"

Should testers be allowed to do their job? Based on my experience  
over the past 15 years, the answer to that question in most shops is"  
"up to a point."

- Managers, developers, and testers often cannot distinguish between  
a _social_ situation and a _business_ situation. In a _social_  
context, I would agree that people must seriously consider whether it  
is worthwhile to point out "problems." Specifically, one must weigh  
the feelings of the individuals involved against any "improvements"  
that might result from bringing a problem to light. In a business  
situation the rules change. The parties to a business arrangement are  
supposed to be aware of the terms and conditions of the business  
arrangement, and are required to act accordingly.

One should _expect_ testers to find symptoms of errors. That is their  
job. Further, testers that routinely do not uncover symptoms of  
serious errors are not performing their jobs successfully.

When a tester informs a developer of the symptoms of the errors he or  
she has uncovered, the tester is _not_ making a statement about the  
basic goodness or badness of the developer as a human being. The  
tester _is_ making a statement about some material for which the  
developer is responsible.

- The time, staff, and other resources that are allocated to  
developers are often woefully inadequate. However, the time, staff,  
and resources that are allocated to the testing effort are, by in  
large, a joke. In all my years of training and consulting, I have run  
across fewer than 3 organizations that had anything even approaching  
an adequate assignment of resources to the testing effort.

It is almost as if the managers know this. When testers point out  
errors, that "slows down" the development effort. Inadequate testing  
resources result in fewer errors being reported, and, consequently,  
faster development.

- Many organizations make no secret of the fact that they consider  
developers to be more important than testers (or, for that matter,  
software quality assurance personnel, maintenance programmers, and  
others). I have had more than one manager inform me that "development  
requires true creativity, whereas testing does not require any  
special brilliance." The developers are often required to have  
university degrees, while many testers are non-degreed. Developers  
routinely receive more training, case tools, and other resources than  
do the testers. (At one of the public testing courses that I recently  
taught, one tester had a hard time believing that case tools for  
testers even existed.)

- There is also a prevailing attitude that a separate testing group  
is "a luxury." Many managers (and developers) reason that, in  
addition to creating the software product, developers can also  
adequately test that product. This line of reasoning is very wrong.  
Consider:

- Developers seldom have enough time to design and implement the  
product, much less to test the product. (In fact, one of the most  
common reasons for the creation of a separate testing group is "to  
relieve the pressure on the developers.")

- Developers are seldom trained in software testing techniques. This  
often results in largely unfocused, hit or miss testing efforts.  
(When developers attend a software testing course, they are often  
astonished by the amount of work required for even minimal testing.)

- Of course, developers suffer from all the problems of human beings  
who are asked to evaluate their own efforts, e.g., lack of  
objectivity, psychological blindness (to their own errors), and lack  
of perspective.

Given the attitude that a separate testing group is a luxury, it is  
quite normal to deny resources to this group, or to cut it out  
entirely when budget constraints loom large.

It is very sad to see a group of people who are given an assignment,  
and are then prevented from carrying out that assignment to the  
fullest of their abilities.

-- Ed

---------------------------------------------------------------------
Edward V. Berard | Voice: (301) 548-9090 The Object Agency, Inc. |  
Fax: (301) 548-9094 101 Lakeforest Blvd., Suite 380 | E-Mail:  
ed at toa.com Gaithersburg, Maryland 20877

Shalom, Andrew
{Choose Life, Create Hope, Nurture Love...}






More information about the use-livecode mailing list