Mixed concrete and symbolic execution is an important technique for finding and understanding software bugs, including securityrelevant ones. However, existing symbolic execution...
Prateek Saxena, Pongsin Poosankam, Stephen McCaman...
Dynamic analysis techniques have been extensively adopted to discover causes of observed failures. In particular, anomaly detection techniques can infer behavioral models from obs...
Code coverage is a common aid in the testing process. It is generally used for marking the source code segments that were executed and, more importantly, those that were not execu...
Yoram Adler, Eitan Farchi, Moshe Klausner, Dan Pel...
During testing, the execution of valid cases is only one part of the task. Checking the behavior in boundary situations and in the presence of errors is an equally important subje...
This paper explores an approach to improving the practical usability of static verification tools for debugging synchronization idioms. Synchronization idioms such as mutual excl...
Tayfun Elmas, Ali Sezgin, Serdar Tasiran, Shaz Qad...
Bug localization has attracted a lot of attention recently. Most existing methods focus on pinpointing a single statement or function call which is very likely to contain bugs. Al...
Hong Cheng, David Lo, Yang Zhou, Xiaoyin Wang, Xif...
Atomicity is a key correctness specification for multithreaded programs. Prior dynamic atomicity analyses include precise tools, which report an error if and only if the observed...
Many automatic testing, analysis, and verification techniques for programs can be effectively reduced to a constraint-generation phase followed by a constraint-solving phase. Th...
Adam Kiezun, Vijay Ganesh, Philip J. Guo, Pieter H...