Christoph's picture

Christoph Csallner

Assistant Professor
Computer Science and Engineering Department
University of Texas at Arlington
Box 19015
Arlington, TX 76019-0015
Office: NH 306 (in Nedderman Hall), phone: 817-272-3334
Lab: NH 246 (SERC lab)
Email: csallner@uta.edu

My main research interests are in software engineering, especially in program analysis and automated testing. For example, how can we reduce the high number of false bug warnings produced by automated bug-finding tools? A related question I am also working on is how to automatically infer specifications of object-oriented programs from existing test suites.

Publications and citations
DBLP and Google Scholar.
Events
HVC 2009, ICSM 2009 Tool Demos, ICSE 2009 Research Demos.
Teaching
CSE 5324 Software Engineering: Analysis, Design, and Testing (Spring 2010)
CSE 6329 Program Analysis (Fall 2008)
Software
JCrasher, Check 'n' Crash, DSD-Crasher, and Pex/DySy.
Ph.D. students
Mainul Islam and Ishtiaque Hussain.

Invariant Detection

DySy: Dynamic symbolic execution for invariant inference (Proc. 30th ACM/IEEE International Conference on Software Engineering (ICSE), 2008)
DySy uses the concolic execution system Pex to detect invariants in arbitrary .Net programs. DySy can derive much better targeted invariants than previous, template-based approaches, such as Daikon.
Dynamically discovering likely interface invariants (Proc. 28th ACM/IEEE International Conference on Software Engineering (ICSE), Emerging Results Track, 2006)
We propose a two-pass algorithm to support interfaces and method overriding in dynamic invariant detection. The first pass associates a method call with the method executed and all methods it overrides up to and including the static receiver to derive the methods' preconditions. The second pass associates a method call with every supertype whose precondition is met to derive non-conflicting postconditions.

Testing

Scalable satisfiability checking and test data generation from modeling diagrams (Automated Software Engineering, 2009)
This is a superset of our earlier ASE 2007 paper, expanding the treatment of test data generation. Object-Role Modeling (ORM) is a popular language for specifying database schemas. It supports many constraints and is undecidable in general. We pick a restricted subset of ORM that is decidable in polynomial time and implement a fast automated solver. We found that our ORM subset covers the vast majority of constraints used in our sample of over 160 ORM diagrams from industrial practice. Our earlier 2007 paper received the Best Paper Award at ASE 2007.
Combining over- and under-approximating program analyses for automatic software testing (Ph.D. dissertation, 2008)
An existing static program analysis that over-approximates the execution paths of the analyzed program can be made more precise for automatic testing in an object-oriented programming language, by combining the over-approximating analysis with usage-observing and under-approximating analyses. This summarizes the DSD-Crasher, Check 'n' Crash, and JCrasher work. Unpublished material includes a critical review of the performed evaluation, lessons learnt, and how to generalize the approach.
DSD-Crasher: A hybrid analysis tool for bug finding (ACM Transactions on Software Engineering and Methodology (TOSEM), 2008)
This is a superset of our earlier ISSTA 2006 paper on DSD-Crasher, adding a high-level overview, experiments with subjects from the software-artifact infrastructure repository (SIR), more related work, and a discussion on increasing code coverage by reasoning about implicit control flow branches.
Scalable automatic test data generation from modeling diagrams (Proc. 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE), 2007)
Object-Role Modeling (ORM) is a popular language for specifying database schemas. It supports many constraints and is undecidable in general. We pick a restricted subset of ORM that is decidable in polynomial time and implement a fast automated solver. We found that our ORM subset covers the vast majority of constraints used in our sample of over 160 ORM diagrams from industrial practice. Received the Best Paper Award.
Combining static and dynamic reasoning for bug detection (Proc. International Conference on Tests And Proofs (TAP), 2007)
This is an invited paper that reviews our bug finding tools: Check 'n' Crash addresses the language-level unsoundness of static bug finding tools whereas DSD-Crasher also addresses their user-level unsoundness. We use a small case study to compare JCrasher, ESC/Java, Check 'n' Crash, and DSD-Crasher.
DSD-Crasher: A hybrid analysis tool for bug finding (Proc. ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), 2006)
DSD-Crasher first uses Daikon to capture the subject's intended execution behavior, then statically analyzes this restricted domain with ESC/Java, and finally lets Check 'n' Crash generate and execute concrete test-cases to verify the results of ESC/Java. Received an ACM SIGSOFT Distinguished Paper Award.
Check 'n' Crash: Combining static checking and testing (Proc. 27th ACM/IEEE International Conference on Software Engineering (ICSE), 2005)
Check 'n' Crash uses ESC/Java to statically search for problems like null dereference, illegal type cast, or illegal array manipulation. Check 'n' Crash compiles ESC's results to JUnit test cases and executes them to filter out ESC's false positives.
JCrasher: An automatic robustness tester for Java (Software -- Practice & Experience, 2004)
JCrasher generates random test cases by chaining object constructors. It filters test case execution and presents only those that expose a bug or lack of robustness. It also enables JUnit to efficiently undo the changes a test case has done to testee class fields.

Information Visualization

FundExplorer: Supporting the diversification of mutual fund portfolios using Context Treemaps (Proc. 9th IEEE Symposium on Information Visualization (InfoVis), 2003)
FundExplorer distorts a treemap to visualize positive values and zeros.

Career Advice

This Website

This website was updated on 16 November 2009 with bibtex2web and visited recently.