Faculty Candidate Seminar

Scalable Automated Methods for Software Reliability

Dr. Koushik Sen

Dr. Sen is from the University of Illinois, Urbana
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, an
efficient approach 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, concolic testing is effective in catching concurrency bugs
such as data races and deadlocks. 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
predictive runtime monitoring, statistical and probabilistic
model checking, application of machine learning to verify infinite
state systems, and probabilistic programming.
Koushik Sen is a Ph.D. student in the Computer Science
Department at the University of Illinois at Urbana-Champaign, where he
is advised by Professor Gul Agha. Koushik got his B.S. from Indian
Institute of Technology, Kanpur, India in 1999. He subsequently
worked as a software engineer and middleware architect in two startups
before joining the University of Illinois at Urbana-Champaign. His
paper on concolic testing won the ACM SIGSOFT Distinguished Paper
Award at ESEC/FSE?. He received the C. W. Gear Outstanding Graduate
Award in 2005 for being the best graduate student and the C.L. and
Jane W-S. Liu Award in 2004 for exceptional research promise from the
UIUC Department of Computer Science.

Sponsored by

CSE Division