Testing and Debugging of Evolving Programs

Tuesday, October 26, 2010 - 11:46am


Friday, November 12, 2010
1:00 PM – 2:00 PM
Electrical and Computer Engineering Conference Room, Harold Frank Hall, Room 4164

HOST: Divy Agrawal

SPEAKER: Abhik Roychoudhury
National University of Singapore

Title: Testing and Debugging of Evolving Programs


Programmers do not write programs entirely from scratch. Rather, over time, a program gradually evolves with more features possibly being added. In industrial software development projects, this complexity (of software evolution) is explicitly managed via checking in of program versions. Validation of such evolving programs (say, to address possible bugs introduced via program changes) remains a huge problem in any software development project. We take a fresh look at the problem of testing and debugging of evolving programs. Among the problems we study is the issue of regression debugging – why a functionality that worked before does not work when a program moves from one version to another. We also study the issue of test-suite augmentation where we find out what tests need to be added to a program’s test-suite as it moves from one version to another. Last but not the least, we apply our testing and debugging methods for analysis of embedded software w.r.t. its golden implementation (the non-embedded software equivalent). Our methods are based on a mix of symbolic execution, dependency analysis and constraint solving. We have conducted several case studies including root-causing of errors in the widely used Embedded Linux Busybox distribution by comparing its behavior with GNU CoreUtils.


Abhik Roychoudhury is an Associate Professor of Computer Science at the National University of Singapore. Abhik received his Ph.D. in Computer Science from the State University of New York at Stony Brook. His research interests are in software analysis and validation with specific focus on embedded software. Abhik has published widely in premier conferences and journals in software engineering and embedded systems, with over 75 peer-reviewed publications. He has authored a book on “Embedded Systems and Software Validation” which has been adopted for teaching at different universities. Abhik’s research has led to scalable and usable analysis tools which enhance software quality as well as programmer productivity. Two meaningful examples of such endeavor are the Chronos static analysis tool for ensuring time-predictable software execution, and the JSlice dynamic analysis tool for software debugging. Such tools have a substantial user-base spread across many different countries and have usage in teaching / development apart from research. Abhik’s group has engaged in industry partnerships including a currently active one on engineering multi-tenant service software (SaaS) systems for the cloud. Abhik’s research has been recognized by various awards including ACM SIGSOFT Distinguished Paper Award (from SIGSOFT FSE 2009) and IBM Faculty Award (2008). More details are available from his website http://www.comp.nus.edu.sg/~abhik/