SQC Technology

Home

The EasiCompare Challenge

A family of mutants EasiCompare compares files. However EasiCompare isn't just one file compare program. It is a family where each member is derived from an original implementation by the insertion of a bug. When you run EasiCompare one variant, that is one member of the family, is picked and executes your command. It is possible to specify which variant to run but if you don't then one is picked at random. There are no known, and the emphasis is on known, technical bugs in the original implementation but each of the variants you can run contains at least one bug.

An overview of how it works The download provides EasiCompare as a command line program. You run it and tell it about the two files you want to compare and it tells you what it is comparing and whether they are identical or different. Alternatively EasiCompare may inform you that there are problems with the parameters you have specified or in the execution of the compare task you have requested. EasiCompare also provides a return code that can be used by a script or other invoking mechanism to determine what happens and it has the ability to operate in a silent mode.

The other aspect of how it works relates to the variant that is used. EasiCompare will tell you how many variants it has and which variant has executed. The variants are numbered 1 to N where N is the number of variants in the family. You can instruct EasiCompare to use a particular variant. You do this by setting an Environment Variable - ECVARIANT - to the number of tbe variant to be run. So the command set ECVARIANT=3 would mean that subsequent runs use variant 3.

What you get The Zip file provides the EasiCompare executable and a DLL that should be placed in the same directory as the executable. There are two other assets. Firstly a requirements statement which is far from perfect being incomplete, providing far more details for some aspects than others and which is no doubt ambiguous in places. We believe it is very representative of the real world requirement statements we work with. The same can be said of the second asset, a functional specification, which outlines the intended characteristics of the EasiCompare soluton to the requirements statement. These two documents are the inputs, admittedly partial, that can help guide the hunt for the bugs.

What next For the time being EasiCompare is a solo intellectual challenge; we hope you enjoy it. In the future the program will be updated to add more bugs. Eventually we hope to publish worked examples of parts of, possibly even a comprehensive solution to, the testing of EasiCompare. In the meantime we will be interested to see which bugs are found and which one are not. Please feel free to let us know what is found and to share what is found with others.

  1. Professional Discourse
  2. A Challenge...

Our Thoughts The articles in this collection represent our views and opinions on issues in professional IT delivery. Naturally the bias is towards testing and management; however some articles range further afield. Shaped by our own experiences, both successes and failures, they aim to stimulate thought, debate and maybe change amongst readers. See the examples on the sidebar to the right

COPYRIGHT (c) 2009 SQC Technology Limited. All rights reserved.