Satish Chandra obtained a PhD from the University of Wisconsin-Madison in 1997, and a B.Tech from the Indian Institute of Technology-Kanpur in 1991, both in computer science. From 1997 to 2002, he was a member of technical staff at Bell Laboratories, where his research focused on program analysis, domain-specific languages, and data-communication protocols. He joined IBM Research in September 2002. His current work involves bug finding and verification tools, symbolic analysis, and synthesis of programs. He is an ACM Distinguished Scientist.
(Note: Most of my publications are available on the ACM Digital Library, but do feel free to email me for a copy if you have trouble locating it online.)
Testing of Web Applications
Recently I have been working on testing of web applications. Our work draws on insights from synthesis, abstraction refinement and symbolic analysis to solve practical problems in test automation, test design, and test data generation.
- S. Thummalapenta, P. Devaki, Saurabh Sinha, S. Chandra, S. Gnanasundaram, D. Nagaraj and S. Sathishkumar, Efficient and Change-Resilient Test Automation: An Industrial Case Study, ICSE 2013 (Industry track)
- S. Thummalapenta, K. V. Lakshmi, S. Sinha, N. Sinha, S. Chandra, Guided Test Generation for Web Applications , ICSE 2013
- S. Thummalapenta, N. Singhania, P. Devaki, S. Sinha, S. Chandra, A. Das and S. Mangipudi, Efficiently Scriptig Change-Resilient Tests using ATA, FSE 2012 (Demo Track)
- S. Thummalapenta, S. Sinha, N. Singhania and S. Chandra, Automating Test Automation , ICSE 2012
Software Synthesis and Applications
Compute power can be used not only to verify or test software after it is written, but also to help during the process of writing code. One way to harness compute power is to implement an oracular runtime that can execute partially written programs to drive them to successful termination. We are developing a methodology that allows programmers to leverage the oracle's help in writing complex programs. (This work is being done in collaboration with Ras Bodik's group at Berkeley.)
In recent work, we have applied ideas from software synthesis to diverse topics such as fault localization and test automation.
- H. Nguyen, D. Qi, A. Roychoudhury and S. Chandra, SemFix: Program Repair via Semantic Analysis ICSE 2013
- S. Chandra, E. Torlak, S. Barman and R. Bodik, Angelic Debugging, ICSE 2011
- D. Saha, M. G. Nanda, P. Dhoolia, V. K. Nandivada, V. Sinha and S. Chandra, Fault Localization for Data-Centric Programs, FSE 2011
- S. Barman, R. Bodik, S. Chandra and E. Torlak, Discovering Algorithms in Angelic Programs, IBM Research Report RC25023, 2010
- R. Bodik, S. Chandra, J. Galenson, D. Kimelman, N. Tung, S. Barman, and C. Rodarmor, Programming with Angelic Nondeterminism, POPL 2010
Bug-finding and verification
For the past few years, I have been working on static bug finding and verification tools, primarily for Java. My colleagues and I have been interested in detecting (or proving absence of) a variety of defects such as null dereferences, resource leakage and type-state errors. Our focus has been on scalable inter-procedural analysis that can be applied to large bodies of code, and yet produces consumable results. We have also done work on recovering implicit type-state specifications from code. Some of our work has found its way in IBM (Rational) products.
In more recent work, we have been playing with symbolic analysis for a variety of purposes, such as producing concrete demonstrations of an error report from an analysis engine. In particular, we have been building an interactive tool, Snugglebug, that engages the user to elicit method preconditions such that the execution of the method does not throw any exceptions. Snugglebug uses weakest precondition computation to reason about programs.
- M. Sridharan, S. Chandra, J. Dolby, S. J. Fink, and E. Yahav. Alias anlaysis for object oriented programs In Clarke, Wrigstad, and Noble, editors, Aliasing in Object-Oriented Programming, Lecture Notes in Computer Science, Springer, 2013.
- N. Sinha, N. Singhania, M. Sridharan and S. Chandra, Scalable Bug Detection via Alternating Scope Expansion and Pertinent Scope Learning, CAV 2012
- E. Torlak and S. Chandra, Effective Interprocedural Resource Leak Detection, ICSE 2010
- M.G.Nanda, M. Gupta, S. Sinha, S. Chandra, D. Schmidt and P. Balachandra, Making Defect-Finding Tools Work for You, ICSE 2010 (practice track)
- S. Chandra, S. Fink and M. Sridharan, Snugglebug: A Powerful Approach to Weakest Preconditions, PLDI 2009
- A. Loginov, E. Yahav, S. Chandra, S. Fink, N. Rinetzky, M. G. Nanda, Verifying Derefence Safety via Expanding Scope Analysis, ISSTA 2008
- I. Dillig, T. Dillig, E. Yahav, S. Chandra, The CLOSER: automating resource management in Java, ISMM 2008
- G. Yorsh, E. Yahav, S. Chandra, Generating precise and concise procedure summaries POPL 2008
- M. Pistoia, S. Chandra, S. Fink, E. Yahav, A Survey of Static Analysis Methods for Idetifying Security Vulnerabilities in Software Systems, IBM System Journal 2007
- M. G. Nanda, C. Grothoff, S. Chandra, Deriving object typestates in the presence of inter-object references, OOPSLA 2005