Testing Scripts for SenseTools-0.1
----------------------------------

Satanjeev Banerjee
bane0025@d.umn.edu

1st December, 2001


1. Introduction: 
----------------

We have created test scripts that can be run against the programs in
the SenseTools package. These scripts run the various programs against
input provided in the directories, and then compare the output against
"model" output created by hand. 


2. How to Use These Test Scripts:
---------------------------------

These scripts may be used to check if our programs are
working. Further, these scripts and the input/output files in the
directories can be used to see examples of the programs' behaviour in
"borderline" cases, that is situations that we believe may cause the
programs to break down! Finally, these scripts may be used to do a
backward compatibility check agaisnt future versions of
SenseTools-0.1.


3. Directory Structure: 
-----------------------

There are nine sub-directories within this SenseTools-0.1/Testing
directory. Eight of these sub-directories are named after the program
they test. The ninth one, ./end-to-end, contains scripts that take a
set of train/test files in the SENSEVAL-2 format and then go through
(almost) all the programs to finally land up with answers for the test
instances.


4. Adding to These Tests:
-------------------------

The user may extend the tests contained in this directories in a very
simple way. We describe below the steps that one may wish to follow
while testing a program.

a. First identify whether you want to test the program without any
   switches (that is test the default switches) or if you want to test
   a certain switch. Usually its easiest to test a single switch in a
   given test.

b. Consider how the default values (if not testing a switch) or how
   the chosen switch would affect given input. Then create input files
   consisting of data that you expect to be affected by the switch
   chosen. 

c. Next hand-create the output you expect to see when you run the
   program (with the switches chosen if any) on the input you created
   in step b. That is create the output in any way except by running
   the program itself! 

d. Next write a shell script that would take the input file, run the
   program on the input and then compare the output against the hand
   created output you obtained in step c above. This comparison may be
   done using the "diff" program on unix. 

e. If on running the script created in step d above you observe
   differences between the actual output and the expected output,
   carefully observe the differences. They may arise from either a
   misunderstanding on your part of how the program should run, or
   from a bug! If you are convinced that your output is correct and
   the actual output of the program is wrong, email the authors at
   {tpederse, bane0025}@d.umn.edu.

f. If on the other hand the outputs match, you are done testing! Save
   the scripts and the files in the testing directory, and you have
   successfully extended the test scripts that lie therein.

