Scalable Automated Methods for Software Reliability

  • Dr. Koushik Sen | University of Illinois at Urbana-Champaign

Abstract: Testing with manually generated test cases is the primary technique used in industry to improve reliability of software–in fact, such testing is reported to account for over half of the typical cost of software development. I will describe Concolic Testing, a systematic and efficient method which combines random and symbolic testing. Concolic testing enables automatic and systematic testing of large programs, avoids redundant test cases and does not generate false warnings. Experiments on real-world software show that concolic testing can be used to effectively catch generic errors such as assertion violations, memory leaks, uncaught exceptions, and segmentation faults. Combined with dynamic partial order reduction techniques and predictive analysis, concolic testing is effective in catching concurrency bugs such as data races and deadlocks as well as specification related bugs. I will describe my experience with building two concolic testing tools, CUTE for C programs and jCUTE for Java programs, and applying these tools to real-world software systems. Finally, I will provide a brief overview of my research in statistical and probabilistic model checking, application of machine learning to verify infinite state systems, runtime monitoring of distributed and concurrent systems, and probabilistic programming.

Speaker Details

Koushik Sen is an assistant professor in the Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley. His research interest lies in Software Engineering, Programming Languages, and Formal methods. He is interested in developing software tools and methodologies that improve programmer productivity and software quality. He is best known for his work on directed automated random testing and concolic testing. His paper on concolic testing won the ACM SIGSOFT Distinguished Paper Award at ESEC/FSE ’05. He received the C.L. and Jane W-S. Liu Award in 2004 for exceptional research promise, the C. W. Gear Outstanding Graduate Award in 2005, and the David J. Kuck Outstanding Ph.D. Thesis Award in 2007 from the UIUC Department of Computer Science. He has received a NSF CAREER Award in 2008. He is a co-winner of 2009 Haifa Verification Conference (HVC) Award which recognizes the most promising contribution to fields of verification and test in the last five years. He is a co-winner of ACM SIGSOFT Distinguished Paper Awards in 2009 for the papers titled “Asserting and Checking Determinism for Multithreaded Programs” and “Effective Static Deadlock Detection”. He is a recipient of the 2010 IFIP TC2 Manfred Paul Award for Excellence in Software: Theory and Practice. He holds a B.Tech from Indian Institute of Technology, Kanpur, and M.S. and Ph.D. in CS from University of Illinois at Urbana-Champaign.

    • Portrait of Jeff Running

      Jeff Running