Resource-Aware Verification Using Randomized Exploration of Large State Spaces
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Cross-Entropy-Based Replay of Concurrent Programs
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Forcing small models of conditions on program interleaving for detection of concurrent bugs
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Falsification of temporal properties of hybrid systems using the cross-entropy method
Proceedings of the 15th ACM international conference on Hybrid Systems: Computation and Control
Using cross-entropy for satisfiability
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Finding rare numerical stability errors in concurrent computations
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Hi-index | 0.00 |
In simulation-based verification, we check the correctness of a given program by executing it on some input vectors. Even for medium-size programs, exhaustive testing is impossible. Thus, many errors are left undetected. The problem of increasing the exhaustiveness of testing and decreasing the number of undetected errors is the main problem of software testing. In this paper, we present a novel approach to software testing, which allows us to dramatically raise the probability of catching rare errors in large programs. Our approach is based on the cross-entropy method. We define a performance function, which is higher in the neighborhood of an error or a pattern we are looking for. Then, the program is executed many times, choosing input vectors from some random distribution. The starting distribution is usually uniform, and it is changed at each iteration based on the vectors with highest value of the performance function in the previous iteration. The crossentropy method was shown to be very efficient in estimating the probabilities of rare events and in searching for solutions for hard optimization problems. Our experiments show that the cross-entropy method is also very efficient in locating rare bugs and patterns in large programs.We show the experimental results of our cross-entropy based testing tool and compare them to the performance of ConTest and of Java scheduler.