Features of the Tool


Jester modifies Java source code in very simple ways, which do not require parsing or changes to more than one source file at a time.

The modifications are as follows:

  • Modifying literal numbers (for example, changing 0 to 1)

  • Changing true to false and vice versa

  • Changing if( to if(true ||

  • Changing if( to if(false &&

The last two have the effect of making the condition of the if statement always true or always false, respectively. The reason for these replacements, rather than the apparently simpler if(true) and if(false), respectively, is to avoid needing to find the end of the condition, which would require some parsing and thus would not be as simple to implement. There is no possibility of making two changes that cancel each other out, because the changes are applied one at a time, being undone before the next change.

These simple modifications have been found to be quite effective, as shown later. Other modifications can be made by specifying them in a configuration file.

For any change that Jester was able to make without the tests failing, it prints the name of the file changed, the position in the file of the change, and some of the original source file from roughly 30 characters before to 30 characters after so that the change can be easily identified within the source file.

For each source file that Jester modifies, it prints a "score" indicating the number of changes that Jester made that did not cause the tests to fail.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net