Abstract
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 statebased progress estimator that is part of the standard JPF distribution.
Recommendations
Rethinking the progress bar
UIST '07: Proceedings of the 20th annual ACM symposium on User interface software and technologyProgress bars are prevalent in modern user interfaces. Typically, a linear function is employed such that the progress of the bar is directly proportional to how much work has been completed. However, numerous factors cause progress bars to proceed at ...
Guiding dynamic symbolic execution toward unverified program executions
ICSE '16: Proceedings of the 38th International Conference on Software EngineeringMost techniques to detect program errors, such as testing, code reviews, and static program analysis, do not fully verify all possible executions of a program. They leave executions unverified when they do not check certain properties, fail to verify ...
Method summaries for JPF
Java Path nder (JPF) is a virtual machine executing Java byte- code that is able to perform model checking using backtracking execution. Due to backtracking, parts of a program may be ex- ecuted multiple times during model checking. Hence, we explore ...
Comments