Cross-Checking Oracles

Cross-Checking Oracles is a technique to generate and execute oracles for testing. The technique exploits the redundancy of the program under test. This redundancy must be expressed in terms of an equivalence between two sequence of method calls. Cross-Checking Oracles works by comparing the results of the executions of two supposedly equivalent sequences.

Evaluation Replication

This section explains how to replicate our experimental evaluation of the Cross-Checking Oracles technique.


In order to replicate our experiments, you need a Unix-like operating system (Linux or Mac OS X). You also need:

Step by step Experiments Replication

Please note that the replication of the entire evaluation process requires several hours. This step by step tutorial allows you to replicate the evaluation of the Cross-Checking Oracles technique. This tutorial focuses on the evaluation of our technique on Guava's ArrayListMultimap class. Note that each make command can be parallelized using the -j option (see Make documentation).
  1. Download the package: CrossCheckingOraclesExperiments.tar.gz. Extract the archive and go to the proper directory.
    tar -xzf CrossCheckingOraclesExperiments.tar.gz
    cd ICSE-2014-Experiments/experiments/ArrayListMultimap
  2. Execute the while set of experiments for the Guava's ArrayListMultimap case study.
    make all
Now you can check the results. Please note that your results could slightly differ from results published in the paper. This is due to the random nature of Randoop (the tool we use to generate the test suites).

Complete Experiment Replication

Download the package: CrossCheckingOraclesExperiments.tar.gz. Extract the package with the command tar -xzf CrossCheckingOraclesExperiments.tar.gz. Under ICSE-2014-Experiments/experiments/ you will find several directories, where each directory corresponds to one case study reported in the paper. Each of this directory contains a makefile (named Makefile) to run our technique on the particular case study. To replicate our experiments on the case studies, follow the steps of the step by step experiment replication.