A Progress Bar for the JPF Search Using Program Executions
Software model checkers, such as JPF, are routinely used to explore executions of programs that have very large state spaces. Sometimes the exploration can take a significant amount of time before a bug is found or the checking is complete, in which case the user must patiently wait, possibly for quite some time, to learn the result of checking. A progress bar that accurately shows the status of the search provides the user useful feedback about the time expected for the search to complete. This paper introduces JPFBar, a novel technique to estimate the percentage of work done by the JPF search by computing weights for the execution paths it explores and summing up the weights. JPFBar is embodied into a listener that prints a progress bar during JPF execution. An experimental evaluation using a variety of Java subjects shows that JPFBar provides accurate information about the search’s progress and fares well in comparison with a state-based progress estimator that is part of the standard JPF distribution.