Michael Ernst's publications

Also see my research interests.

Copyright notice.


2015

“Using declarative specification to improve the understanding, extensibility, and comparison of model-inference algorithms”
by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy.
IEEE Transactions on Software Engineering, 2015.
Details. Download: PDF, InvariMint implementation.
A previous version appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. In ICSE'13, Proceedings of the 34th International Conference on Software Engineering, (San Francisco, CA, USA), May 22-24, 2013, pp. 252-261.
An extended version with proofs appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-03-01, (Seattle, WA, USA), Mar. 2013.
A previous version appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. University of Washington Department of Computer Science and Engineering technical report UW-CSE-12-08-02, (Seattle, WA, USA), Aug. 2012.

“A data programming CS1 course”
by Ruth Anderson, Michael D. Ernst, Robert Ordóñez, Paul Pham, and Ben Treibelhorn.
In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (Kansas City, MO, USA), March 5-7, 2015.
Details. Download: PDF, Data Programming class at UW.

2014

“Are mutants a valid substitute for real faults in software testing?”
by René Just, Darioush Jalali, Laura Inozemtseva, Michael D. Ernst, Reid Holmes, and Gordon Fraser.
In FSE 2014, Proceedings of the ACM SIGSOFT 22nd Symposium on the Foundations of Software Engineering, (Hong Kong), November 18-20, 2014, pp. 654-665.
Details. Download: PDF, slides (PDF), Defects4J subject programs, Major mutation tool.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-02-02, (Seattle, WA, USA), Mar. 2014.

“Collaborative verification of information flow for a high-assurance app store”
by Michael D. Ernst, René Just, Suzanne Millstein, Werner M. Dietl, Stuart Pernsteiner, Franziska Roesner, Karl Koscher, Paulo Barros, Ravi Bhoraskar, Seungyeop Han, Paul Vines, and Edward X. Wu.
In Proceedings of the 21st ACM Conference on Computer and Communications Security (CCS), (Scottsdale, AZ, USA), November 4-6, 2014.
Details. Download: PDF, slides (PDF), SPARTA toolset and experimental data.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-04-02, (Seattle, WA, USA), Apr. 2014.

“Defects4J: A Database of existing faults to enable controlled testing studies for Java programs”
by René Just, Darioush Jalali, and Michael D. Ernst.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 23-25, 2014, pp. 437-440. Tool demo.
Details. Download: PDF, Defects4J website.

“Empirically revisiting the test independence assumption”
by Sai Zhang, Darioush Jalali, Jochen Wuttke, Kıvanç Muşlu, Wing Lam, Michael D. Ernst, and David Notkin.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 23-25, 2014, pp. 385-396.
Details. Download: PDF, slides (PowerPoint), DTDetector implementation.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-01-01, (Seattle, WA, USA), Jan. 2014.

“Efficient mutation analysis by propagating and partitioning infected execution states”
by René Just, Michael D. Ernst, and Gordon Fraser.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 23-25, 2014, pp. 315-326.
Details. Download: PDF, slides (PDF), Major mutation framework and experimental data.

“A type system for format strings”
by Konstantin Weitz, Gene Kim, Siwakorn Srisakaokul, and Michael D. Ernst.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 23-25, 2014, pp. 127-137.
Details. Download: PDF, slides (PDF), slides (ODP), demo paper (PDF), Format String Checker implementation.
A tool demonstration appeared as “A format string checker for Java” by Konstantin Weitz, Gene Kim, Siwakorn Srisakaokul, and Michael D. Ernst. In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 23-25, 2014, pp. 441-444.

“User scripting on Android using BladeDroid”
by Ravi Bhoraskar, Dominic Langenegger, Pingyang He, Raymond Cheng, Will Scott, and Michael D. Ernst.
In 5th Asia-Pacific Workshop on Systems (APSys), (Beijing, China), June 25-26, 2014.
Details. Download: PDF.
A poster appeared as “User scripting on Android using BladeDroid” by Ravi Bhoraskar, Dominic Langenegger, Pingyang He, and Michael D. Ernst. In 11th USENIX Symposium on Networked Systems Design and Implementation, (Seattle, WA, USA), April 2-4, 2014.

“Which configuration option should I change?”
by Sai Zhang and Michael D. Ernst.
In ICSE'14, Proceedings of the 34th International Conference on Software Engineering, (Hyderabad, India), June 4-6, 2014, pp. 152-163.
Details. Download: PDF, slides (PDF), slides (PowerPoint), ConfSuggester implementation.

“Shedding light on distributed system executions”
by Jenny Abrahamson, Ivan Beschastnikh, Yuriy Brun, and Michael D. Ernst.
In ICSE'14, Proceedings of the 34th International Conference on Software Engineering, (Hyderabad, India), June 4-6, 2014, pp. 598-599.
Details. Download: PDF, ShiVector and ShiViz source code.

“Inferring models of concurrent systems from logs of their behavior with CSight”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, and Arvind Krishnamurthy.
In ICSE'14, Proceedings of the 34th International Conference on Software Engineering, (Hyderabad, India), June 4-6, 2014, pp. 468-479.
Details. Download: PDF, slides (PDF), CSight implementation.
A previous version appeared as “Inferring models of concurrent systems from logs of their behavior with CSight” by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, and Arvind Krishnamurthy, University of British Columbia cIRcle: UBC's Digital Repository, (Vancouver, BC, Canada). February 28, 2014. http://hdl.handle.net/2429/46122.

“Case studies and tools for contract specifications”
by Todd W. Schiller, Kellen Donohue, Forrest Coward, and Michael D. Ernst.
In ICSE'14, Proceedings of the 34th International Conference on Software Engineering, (Hyderabad, India), June 4-6, 2014, pp. 596-607.
Details. Download: PDF, slides (PDF), slides (PowerPoint), data and tools.

“Introductory programming meets the real world: Using real problems and data in CS1”
by Ruth Anderson, Michael D. Ernst, Robert Ordóñez, Paul Pham, and Steven A. Wolfman.
In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, (Atlanta, GA, USA), March 6-8, 2014, pp. 465-466.
Details. Download: PDF, Data Programming class at UW.

“Annotations on Java types”
by JSR 308 Expert Group.
January 8, 2014. Proposed Final Draft.
Details. Download: PDF.

2013

“Early detection of collaboration conflicts and risks”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
IEEE Transactions on Software Engineering, vol. 39, no. 10, Oct. 2013, pp. 1358-1375.
Details. Download: PDF, ESEC/FSE 2011 slides (PDF), tool demo paper (PDF), Crystal implementation.
A previous version appeared as “Proactive detection of collaboration conflicts” by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), September 7-9, 2011, pp. 168-178.
A tool demonstration appeared as “Crystal: Precise and unobtrusive conflict warnings” by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), September 7-9, 2011, pp. 267-277.
A previous version appeared as “Speculative identification of merge conflicts and non-conflicts” by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. University of Washington Department of Computer Science and Engineering technical report UW-CSE-10-03-01, (Seattle, WA, USA), Mar. 2010.

“Interactive record/replay for web application debugging”
by Brian Burg, Richard Bailey, Andrew J. Ko, and Michael D. Ernst.
In UIST 2013: 23rd Symposium on User Interface Software and Technology, (St. Andrews, UK), October 8-11, 2013, pp. 473-484.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Timelapse implementation.

“Making offline analyses continuous”
by Kıvanç Muşlu, Yuriy Brun, Michael D. Ernst, and David Notkin.
In ESEC/FSE 2013: The 9th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (St. Petersburg, Russia), August 21-23, 2013, pp. 323-333.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Solstice implementation.

“Automatically repairing broken workflows for evolving GUI applications”
by Sai Zhang, Hao Lü, and Michael D. Ernst.
In ISSTA 2013, Proceedings of the 2013 International Symposium on Software Testing and Analysis, (Lugano, Switzerland), July 16-18, 2013, pp. 45-55.
Details. Download: PDF, slides (PDF), slides (PowerPoint), FlowFixer implementation.

“JavaUI: Effects for controlling UI object access”
by Colin S. Gordon, Werner Dietl, Michael D. Ernst, and Dan Grossman.
In ECOOP 2013 — Object-Oriented Programming, 27th European Conference, (Montpellier, France), July 3-5, 2013, pp. 179-204.
Details. Download: PDF, slides (PDF), technical report, JavaUI implementation, older implementation and annotated subject programs.
A previous version appeared as “JavaUI: Effects for controlling UI object access (extended version)” by Colin S. Gordon, Werner Dietl, Michael D. Ernst, and Dan Grossman. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-04-01, (Seattle, WA, USA), Apr. 2013.

“Rely-guarantee references for refinement types over aliased mutable data”
by Colin S. Gordon, Michael D. Ernst, and Dan Grossman.
In PLDI 2013, Proceedings of the ACM SIGPLAN 2013 Conference on Programming Language Design and Implementation, (Seattle, WA, USA), June 17-19, 2013, pp. 73-84.
Details. Download: PDF, slides (PDF), technical report, implementation.
A previous version appeared as “Rely-guarantee references for refinement types over aliased mutable data (extended version)” by Colin S. Gordon, Michael D. Ernst, and Dan Grossman. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-03-02, (University of Washington Department of Computer Science and Engineering), Mar. 2013.

“Automated diagnosis of software configuration errors”
by Sai Zhang and Michael D. Ernst.
In ICSE'13, Proceedings of the 34th International Conference on Software Engineering, (San Francisco, CA, USA), May 22-24, 2013, pp. 312-321.
Details. Download: PDF, slides (PDF), slides (PowerPoint), ConfDiagnoser implementation.

“Immutability”
by Alex Potanin, Johan Östlund, Yoav Zibin, and Michael D. Ernst.
In Aliasing in Object-Oriented Programming, vol. 7850 of LNCS, Apr. 2013, pp. 233-269.
Details. Download: PDF.

2012

“The HaLoop approach to large-scale iterative data analysis”
by Yingyi Bu, Bill Howe, Magdalena Balazinska, and Michael D. Ernst.
The VLDB Journal, vol. 21, no. 2, 2012, pp. 169-190.
Details. Download: PDF, VLDB 2010 slides (PDF), VLDB 2010 slides (PowerPoint), HaLoop implementation.
A previous version appeared as “HaLoop: Efficient Iterative Data Processing on Large Clusters” by Yingyi Bu, Bill Howe, Magdalena Balazinska, and Michael D. Ernst. In 36th International Conference on Very Large Data Bases, (Singapore), September 14-16, 2010, pp. 285-296.

“HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars”
by Adam Kieżun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst.
ACM Transactions on Software Engineering and Methodology, vol. 21, no. 4, Nov. 2012, pp. 25:1-25:28.
Details. Download: PDF, HAMPI implementation and experiments, ISSTA 2009 slides (PDF).
a tutorial and paper appeared as “HAMPI: a string solver for testing, analysis and vulnerability detection” by Vijay Ganesh, Adam Kieżun, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. In 13rd International Conference on Computer Aided Verification, (July~16-20,), 2011, pp. 1-19.
A previous version appeared as “HAMPI: A solver for string constraints” by Adam Kieżun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. In ISSTA 2009, Proceedings of the 2009 International Symposium on Software Testing and Analysis, (Chicago, IL, USA), July 21-23, 2009, pp. 105-116.
A previous version appeared as “HAMPI: A solver for string constraints” by Adam Kieżun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2009-004, (Cambridge, MA), February 4, 2009.

“ReIm & ReImInfer: Checking and inference of reference immutability and method purity”
by Wei Huang, Ana Milanova, Werner Dietl, and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2012), (Tucson, AZ, USA), October 23-25, 2012, pp. 879-896.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Speculative analysis of integrated development environment recommendations”
by Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2012), (Tucson, AZ, USA), October 23-25, 2012, pp. 669-682.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.
A previous version appeared as “Improving IDE recommendations by considering global implications of existing recommendations” by Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ICSE'12 New Ideas and Emerging Results Track, (Zürich, Switzerland), June 6-8, 2012, pp. 1349-1352.

“Reducing the barriers to writing verified specifications”
by Todd W. Schiller and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2012), (Tucson, AZ, USA), October 23-25, 2012, pp. 95-112.
Details. Download: PDF, slides (PDF), slides (PowerPoint), study materials.

“Finding errors in multithreaded GUI applications”
by Sai Zhang, Hao Lü, and Michael D. Ernst.
In ISSTA 2012, Proceedings of the 2012 International Symposium on Software Testing and Analysis, (Minneapolis, MN, USA), July 17-19, 2012, pp. 243-253.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Inference and checking of object ownership”
by Wei Huang, Werner Dietl, Ana Milanova, and Michael D. Ernst.
In ECOOP 2012 — Object-Oriented Programming, 26th European Conference, (Bejing, China), June 14-16, 2012, pp. 181-206.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Verification games: Making verification fun”
by Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Nathaniel Mote, Brian Walker, Seth Cooper, Timothy Pavlik, and Zoran Popović.
In FTfJP 2012: 14th Workshop on Formal Techniques for Java-like Programs, (Beijing, China), June 12, 2012, pp. 42-49.
Details. Download: PDF, slides (PDF), slides (ODP), project homepage, online game, video.

“A type system for regular expressions”
by Eric Spishak, Werner Dietl, and Michael D. Ernst.
In FTfJP 2012: 14th Workshop on Formal Techniques for Java-like Programs, (Beijing, China), June 12, 2012, pp. 20-26.
Details. Download: PDF, slides (PDF), slides (ODP), Regex Checker implementation.

“CBCD: Cloned Buggy Code Detector”
by Jingyue Li and Michael D. Ernst.
In ICSE'12, Proceedings of the 34th International Conference on Software Engineering, (Zürich, Switzerland), June 6-8, 2012, pp. 310-320.
Details. Download: PDF, slides (PowerPoint), TR UW-CSE-11-05-02.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-11-05-02, (Seattle, WA, USA), May 2, 2011. Revised October 2011.

“Reproducible tests? Non-duplicable results in testing and verification”
by Michael D. Ernst.
In Fifth International Conference on Software Testing, Verification and Validation (ICST), (Montreal, Canada), April 18-20, 2012.
Details. Download: slides (PDF), slides (PowerPoint).

“Predicting Development Trajectories to Prevent Collaboration Conflicts”
by Yuriy Brun, Kıvanç Muşlu, Reid Holmes, Michael D. Ernst, and David Notkin.
In The Future of Collaborative Software Development, (Bellevue, WA, USA), February 12, 2012.
Details. Download: PDF.

“Static lock capabilities for deadlock freedom”
by Colin S. Gordon, Michael D. Ernst, and Dan Grossman.
In TLDI 2012: The seventh ACM SIGPLAN Workshop on Types in Language Design and Implementation, (Philadelphia, PA, USA), January 28, 2012, pp. 67-78.
Details. Download: PDF, slides (PDF).
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-11-10-01, (Seattle, WA, USA), Oct. 2011.

2011

“Mining temporal invariants from partially ordered logs”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, Arvind Krishnamurthy, and Thomas E. Anderson.
SIGOPS Operating Systems Review, vol. 45, no. 3, Dec. 2011, pp. 39-46.
Details. Download: PDF.
A previous version appeared in Workshop on Managing Large-Scale Systems via the Analysis of System Logs and the Application of Machine Learning Techniques (SLAML '11), (Cascais, Portugal), October 23, 2011. Article No. 3.

“Scaling up automated test generation: Automatically generating maintainable regression unit tests for programs”
by Brian Robinson, Michael D. Ernst, Jeff H. Perkins, Vinay Augustine, and Nuo Li.
In ASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, (Lawrence, KS, USA), Nov. 2011, pp. 23-32.
Details. Download: PDF, Randoop implementation.

“Automated documentation inference to explain failed tests”
by Sai Zhang, Cheng Zhang, and Michael D. Ernst.
In ASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, (Lawrence, KS, USA), Nov. 2011, pp. 63-72.
Details. Download: PDF, slides (PDF), slides (PowerPoint), FailureDoc implementation.

“Type Annotations specification (JSR 308)”
by Michael D. Ernst.
Oct. 2011.
Details. Download: current status and implementation, original proposal.

“Bandsaw: Log-powered test scenario generation for distributed systems”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, Arvind Krishnamurthy, and Thomas E. Anderson.
In SOSP Work In Progress, (Cascais, Portugal), October 24-26, 2011.
Details. Download: PDF.

“Leveraging existing instrumentation to automatically infer invariant-constrained models”
by Ivan Beschastnikh, Yuriy Brun, Sigurd Schneider, Michael Sloan, and Michael D. Ernst.
In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), September 7-9, 2011, pp. 267-277.
Details. Download: PDF, Synoptic implementation, tool demo paper (PDF).
A tool demonstration appeared as “Synoptic: Studying logged behavior with inferred models” by Ivan Beschastnikh, Jenny Abrahamson, Yuriy Brun, and Michael D. Ernst. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), September 7-9, 2011, pp. 448-451.
A previous version appeared as “Synoptic: Summarizing system logs with refinement” by Sigurd Schneider, Ivan Beschastnikh, Slava Chernyak, Michael D. Ernst, and Yuriy Brun. In Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML '10), (Vancouver, BC, Canada), October 3, 2010.

“Tunable static inference for Generic Universe Types”
by Werner Dietl, Michael D. Ernst, and Peter Müller.
In ECOOP 2011 — Object-Oriented Programming, 25th European Conference, (Lancaster, UK), July 27-29, 2011, pp. 333-357.
Details. Download: PDF, slides (PDF), slides (ODP), Implementation and experiments.

“Combined static and dynamic automated test generation”
by Sai Zhang, David Saff, Yingyi Bu, and Michael D. Ernst.
In ISSTA 2011, Proceedings of the 2011 International Symposium on Software Testing and Analysis, (Toronto, Canada), July 19-21, 2011, pp. 353-363.
Details. Download: PDF, implementation.

“Refactoring using type constraints”
by Frank Tip, Robert M. Fuhrer, Adam Kieżun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter.
ACM Transactions on Programming Languages and Systems, vol. 33, no. 3, May 2011, pp. 9:1-9:47.
Details. Download: PDF.
A previous version appeared as “Refactoring using type constraints” by Frank Tip, Robert M. Fuhrer, Adam Kiezun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter. IBM T.J. Watson Research Center technical report RC24804, (Hawthorne, NY), June 9, 2009.

“Inference of field initialization”
by Fausto Spoto and Michael D. Ernst.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011, pp. 231-240.
Details. Download: PDF, slides (PDF), implementation, earlier TR with additional details.
a previous version with some additional details appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-10-02-01, (Seattle, WA, USA), February 6, 2010.

“Building and using pluggable type-checkers”
by Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Kıvanç Muşlu, and Todd Schiller.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011, pp. 681-690.
Details. Download: PDF, slides (PDF), implementation.

“Always-available static and dynamic feedback”
by Michael Bayne, Richard Cook, and Michael D. Ernst.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011, pp. 521-530.
Details. Download: PDF, slides (PDF), slides (PowerPoint), DuctileJ implementation.
A previous version appeared as “How tests and proofs impede one another: The need for always-on static and dynamic feedback” by Michael D. Ernst. In 4th International Conference on Tests And Proofs (TAP), (Málaga, Spain), July 1-2, 2010, pp. 1-2.
A previous version appeared as “How analysis can hinder source code manipulation — and what to do about it” by Michael D. Ernst. In Ninth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'09), (Edmonton, Canada), September 20-21, 2009.

“How do programs become more concurrent? A story of program transformations”
by Danny Dig, John Marrero, and Michael D. Ernst.
In Proceedings of the 4th International Workshop on Multicore Software Engineering, (Waikiki, Hawaii, USA), May 21, 2011, pp. 43-50.
Details. Download: PDF.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-053, (Cambridge, MA), September 5, 2008.

2010

“Speculative analysis: Exploring future development states of software”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
In Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), November 7-8, 2010, pp. 59-64.
Details. Download: PDF.

“Rethinking the economics of software engineering”
by Todd W. Schiller and Michael D. Ernst.
In Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), November 7-8, 2010, pp. 325-330.
Details. Download: PDF.

“Ownership and immutability in generic Java”
by Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2010), (Revo, NV, USA), October 19-21, 2010, pp. 598-617.
Details. Download: PDF, TR with proofs.

“Finding bugs in web applications using dynamic test generation and explicit state model checking”
by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst.
IEEE Transactions on Software Engineering, vol. 36, no. 4, July/August 2010, pp. 474-494.
Details. Download: PDF.
A previous version appeared as “Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit State Model Checking” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2009-010, (Cambridge, MA), March 26, 2009.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle, WA, USA), July 22-24, 2008, pp. 261-272.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. IBM T.J. Watson Research Center technical report RC24528, (Hawthorne, NY), April 2, 2008.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-006, (Cambridge, MA), February 6, 2008.

2009

“Featherweight Ownership and Immutability Generic Java (FOIGJ)”
by Alex Potanin, Paley Li, Yoav Zibin, and Michael D. Ernst, School of Engineering and Computer Science.
VUW technical report 09-13, (Wellington, New Zealand), December 14, 2009.
Details. Download: PDF.

“Automatically patching errors in deployed software”
by Jeff H. Perkins, Sunghun Kim, Sam Larsen, Saman Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou, Greg Sullivan, Weng-Fai Wong, Yoav Zibin, Michael D. Ernst, and Martin Rinard.
In Proceedings of the 22nd ACM Symposium on Operating Systems Principles, (Big Sky, MT, USA), October 12-14, 2009, pp. 87-102.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“Refactoring sequential Java code for concurrency via concurrent libraries”
by Danny Dig, John Marrero, and Michael D. Ernst.
In ICSE'09, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 20-22, 2009, pp. 397-407.
Details. Download: PDF, Concurrencer implementation.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-057, (Cambridge, MA), September 30, 2008.

“Automatic creation of SQL injection and cross-site scripting attacks”
by Adam Kieżun, Philip J. Guo, Karthick Jayaraman, and Michael D. Ernst.
In ICSE'09, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 20-22, 2009, pp. 199-209.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Experimental data.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-054, (Cambridge, MA), September 10, 2008.

“Parameter reference immutability: Formal definition, inference tool, and comparison”
by Shay Artzi, Jaime Quinonez, Adam Kieżun, and Michael D. Ernst.
Automated Software Engineering, vol. 16, no. 1, Mar. 2009, pp. 145-192.
Details. Download: PDF.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Adam Kieżun, David Glasser, and Michael D. Ernst. In ASE 2007: Proceedings of the 22nd Annual International Conference on Automated Software Engineering, (Atlanta, GA, USA), November 7-9, 2007, pp. 104-113.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Adam Kieżun, David Glasser, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-020, (Cambridge, MA), March 23, 2007.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Michael D. Ernst, David Glasser, and Adam Kieżun. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-065, (Cambridge, MA), September 18, 2006.

2008

“Practical pluggable types for Java”
by Matthew M. Papi, Mahmood Ali, Telmo Luis Correa Jr., Jeff H. Perkins, and Michael D. Ernst.
In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle, WA, USA), July 22-24, 2008, pp. 201-212.
Details. Download: PDF, PostScript, Talk slides (PDF), Demo slides (PDF), Papi thesis (PDF), Checker Framework implementation.
A tool demonstration appeared as “Compile-time type-checking for custom type qualifiers in Java” by Matthew M. Papi, Mahmood Ali, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2008), (Nashville, TN, USA), October 21-23, 2008, pp. 723-724.
A tool demonstration appeared as “Building and using pluggable type systems with the Checker Framework” by Michael D. Ernst. In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008. Tool demo.
A tool description appeared as “Compile-time type-checking for custom type qualifiers in Java” by Matthew M. Papi and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 809-810.
A previous version appeared as “Pluggable type-checking for custom type qualifiers in Java” by Matthew M. Papi, Mahmood Ali, Telmo Luis Correa Jr., Jeff H. Perkins, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-047, (Cambridge, MA), September 17, 2007.

“ReCrash: Making software failures reproducible by preserving object states”
by Shay Artzi, Sunghun Kim, and Michael D. Ernst.
In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008, pp. 542-565.
Details. Download: PDF, PostScript, ReCrash implementation.
A previous version appeared as “ReCrash: Making crashes reproducible” by Sunghun Kim, Shay Artzi, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-054, (Cambridge, MA), November 20, 2007.

“Inference of reference immutability”
by Jaime Quinonez, Matthew S. Tschantz, and Michael D. Ernst.
In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008, pp. 616-641.
Details. Download: PDF, Quinonez thesis, Javarifier implementation.
A tool description appeared as “Tools for enforcing and inferring reference immutability in Java” by Telmo Luis Correa Jr., Jaime Quinonez, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 866-867.

“Quantitative information flow as network flow capacity”
by Stephen McCamant and Michael D. Ernst.
In PLDI 2008, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, (Tucson, AZ, USA), June 9-11, 2008, pp. 193-205.
Details. Download: PDF, PostScript, Flowcheck implementation.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-057, (Cambridge, MA), December 10, 2007.
A previous version appeared as “Quantitative information-flow tracking for C and related languages” by Stephen McCamant and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-076, (Cambridge, MA), November 17, 2006.

“Theories in practice: Easy-to-write specifications that catch bugs”
by David Saff, Marat Boshernitsan, and Michael D. Ernst.
MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-002, (Cambridge, MA), January 14, 2008.
Details. Download: PDF, PostScript.

2007

“The Daikon system for dynamic detection of likely invariants”
by Michael D. Ernst, Jeff H. Perkins, Philip J. Guo, Stephen McCamant, Carlos Pacheco, Matthew S. Tschantz, and Chen Xiao.
Science of Computer Programming, vol. 69, no. 1--3, Dec. 2007, pp. 35-45.
Details. Download: PDF, Daikon implementation.

“Which warnings should I fix first?”
by Sunghun Kim and Michael D. Ernst.
In ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Dubrovnik, Croatia), September 5-7, 2007, pp. 45-54.
Details. Download: PDF.

“Object and reference immutability using Java generics”
by Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kieżun, and Michael D. Ernst.
In ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Dubrovnik, Croatia), September 5-7, 2007, pp. 75-84.
Details. Download: PDF, PostScript, IGJ implementation.
A tool demonstration appeared as “Enforcing reference and object immutability in Java” by Mahmood Ali, Yoav Zibin, Matthew M. Papi, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2008), (Nashville, TN, USA), October 21-23, 2008, pp. 725-726.
A previous version appeared as “Object and reference immutability using Java generics” by Yoav Zibin, Alex Potanin, Shay Artzi, Adam Kieżun, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-018, (Cambridge, MA), March 16, 2007.

“A simulation-based proof technique for dynamic information flow”
by Stephen McCamant and Michael D. Ernst.
In PLAS 2007: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, (San Diego, California, USA), June 14, 2007, pp. 41-46.
Details. Download: PDF, PostScript.

“Refactoring for parameterizing Java classes”
by Adam Kieżun, Michael D. Ernst, Frank Tip, and Robert M. Fuhrer.
In ICSE'07, Proceedings of the 29th International Conference on Software Engineering, (Minneapolis, MN, USA), May 23-25, 2007, pp. 437-446.
Details. Download: PDF, slides (PDF), slides (PowerPoint).
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-061, (Cambridge, MA), September 5, 2006.

“Feedback-directed random test generation”
by Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball.
In ICSE'07, Proceedings of the 29th International Conference on Software Engineering, (Minneapolis, MN, USA), May 23-25, 2007, pp. 75-84.
Details. Download: PDF, Randoop implementation.
A tool description appeared as “Randoop: Feedback-directed random testing for Java” by Carlos Pacheco and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 815-816.
A previous version appeared as Microsoft Research technical report MSR-TR-2006-125, (Redmond, WA), Sep. 2006.

“Prioritizing warnings by analyzing software history”
by Sunghun Kim and Michael D. Ernst.
In MSR 2007: International Workshop on Mining Software Repositories, (Minneapolis, MN, USA), May 19-20, 2007, pp. 27-30.
Details. Download: PDF.

2006

“The Groupthink specification exercise”
by Michael D. Ernst.
In Software Engineering Education in the Modern Age: Challenges and Possibilities, vol. 4309 of Lecture Notes in Computer Science, Dec. 2006, pp. 89-107.
Details. Download: PDF, PostScript, 2-up PostScript, activity materials, optional voting software.
A previous version appeared as “The Groupthink specification exercise” by Michael D. Ernst and John Chapin. In ICSE'05, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 18-20, 2005, pp. 617-618.

“Finding the needles in the haystack: Generating legal test inputs for object-oriented programs”
by Shay Artzi, Michael D. Ernst, Adam Kieżun, Carlos Pacheco, and Jeff H. Perkins.
In M-TOOS 2006: 1st Workshop on Model-Based Testing and Object-Oriented Systems, (Portland, OR, USA), October 23, 2006, pp. 27-34.
Details. Download: PDF, PostScript.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-056, (Cambridge, MA), September 5, 2006.

“An empirical comparison of automated generation and classification techniques for object-oriented unit testing”
by Marcelo d'Amorim, Carlos Pacheco, Darko Marinov, Tao Xie, and Michael D. Ernst.
In ASE 2006: Proceedings of the 21st Annual International Conference on Automated Software Engineering, (Tokyo, Japan), September 20-22, 2006, pp. 59-68.
Details. Download: PDF.

“Inference and enforcement of data structure consistency specifications”
by Brian Demsky, Michael D. Ernst, Philip J. Guo, Stephen McCamant, Jeff H. Perkins, and Martin Rinard.
In ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, (Portland, ME, USA), July 18-20, 2006, pp. 233-243.
Details. Download: PDF, PostScript.
A previous version appeared as “Learning and repair techniques for self-healing systems” by Martin Rinard and Michael D. Ernst, Air Force Research Laboratory. Information Directorate technical report AFRL-IF-RS-TR-2006-157, (Rome, NY, USA), May 2006.

“Dynamic inference of abstract types”
by Philip J. Guo, Jeff H. Perkins, Stephen McCamant, and Michael D. Ernst.
In ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, (Portland, ME, USA), July 18-20, 2006, pp. 255-265.
Details. Download: PDF, PostScript, DynComp implementation (distributed as part of Daikon).

“Detection of web service substitutability and composability”
by Michael D. Ernst, Raimondas Lencevicius, and Jeff H. Perkins.
In WS-MaTe 2006: International Workshop on Web Services — Modeling and Testing, (Palermo, Italy), June 9, 2006, pp. 123-135.
Details. Download: PDF.

2005

“Automatic test factoring for Java”
by David Saff, Shay Artzi, Jeff H. Perkins, and Michael D. Ernst.
In ASE 2005: Proceedings of the 20th Annual International Conference on Automated Software Engineering, (Long Beach, CA, USA), November 9-11, 2005, pp. 114-123.
Details. Download: PDF, PostScript.
A previous version appeared as MIT Laboratory for Computer Science technical report MIT-LCS-TR-991, (Cambridge, MA), June 7, 2005.

“Learning from executions: Dynamic analysis for software engineering and program understanding”
by Michael D. Ernst and Jeff H. Perkins.
November 7, 2005. Tutorial at ASE 2005: 20th Annual International Conference on Automated Software Engineering.
Details. Download: slides 1 (PDF), slides 2 (PDF), slides 3 (PDF), slides 4 (PDF).

“Using predicate fields in a highly flexible industrial control system”
by Shay Artzi and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), (San Diego, CA, USA), October 18-20, 2005, pp. 319-330.
Details. Download: PDF, PostScript.

“Javari: Adding reference immutability to Java”
by Matthew S. Tschantz and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), (San Diego, CA, USA), October 18-20, 2005, pp. 211-230.
Details. Download: PDF, slides (PowerPoint), extended version (PDF), Javari implementation.

“Verification for legacy programs”
by Michael D. Ernst.
In VSTTE: Verified Software: Theories, Tools, Experiments, (Zürich, Switzerland), October 10-13, 2005.
Details. Download: PDF, PostScript, slides (PDF), slides (PostScript).

“ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005)”
edited by Michael D. Ernst and Thomas Jensen.
September 5-6, 2005.
Details. Download: workshop website.

“Static deadlock detection for Java libraries”
by Amy Williams, William Thies, and Michael D. Ernst.
In ECOOP 2005 — Object-Oriented Programming, 19th European Conference, (Glasgow, Scotland), July 27-29, 2005, pp. 602-629.
Details. Download: PDF, PostScript.

“Eclat: Automatic generation and classification of test inputs”
by Carlos Pacheco and Michael D. Ernst.
In ECOOP 2005 — Object-Oriented Programming, 19th European Conference, (Glasgow, Scotland), July 27-29, 2005, pp. 504-527.
Details. Download: PDF, Eclat implementation, Randoop implementation.
A previous version appeared as MIT Laboratory for Computer Science technical report 968, (Cambridge, MA), Oct. 2004.

“An overview of JML tools and applications”
by Lilian Burdy, Yoonsik Cheon, David Cok, Michael D. Ernst, Joe Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll.
Software Tools for Technology Transfer, vol. 7, no. 3, June 2005, pp. 212-232.
Details. Download: PDF, PostScript.
A previous version appeared in Eighth International Workshop on Formal Methods for Industrial Critical Systems (FMICS 03), (Trondheim, Norway), June 5-7, 2003.
A previous version appeared as University of Nijmegen Dept. of Computer Science technical report NIII-R0309, Mar. 2003.

2004

“Efficient incremental algorithms for dynamic detection of likely invariants”
by Jeff H. Perkins and Michael D. Ernst.
In FSE 2004, Proceedings of the ACM SIGSOFT 12th Symposium on the Foundations of Software Engineering, (Newport Beach, CA, USA), November 2-4, 2004, pp. 23-32.
Details. Download: PDF, PostScript, slides (PDF), Daikon implementation.

“Formalizing lightweight verification of software component composition”
by Stephen McCamant and Michael D. Ernst.
In SAVCBS 2004: Specification and Verification of Component-Based Systems, (Newport Beach, CA, USA), October 31-November 1, 2004, pp. 47-54.
Details. Download: PDF, PostScript.

“Converting Java programs to use generic libraries”
by Alan Donovan, Adam Kieżun, Matthew S. Tschantz, and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), (Vancouver, BC, Canada), October 26-28, 2004, pp. 15-34.
Details. Download: PDF, PostScript, slides (PDF).
A previous version appeared as MIT Laboratory for Computer Science technical report MIT-LCS-TR-940, (Cambridge, MA), March 30, 2004.
A previous version appeared as “Inference of generic types in Java” by Alan Donovan and Michael D. Ernst. MIT Laboratory for Computer Science technical report MIT/LCS/TR-889, (Cambridge, MA), March 22, 2003.

“A practical type system and language for reference immutability”
by Adrian Birka and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), (Vancouver, BC, Canada), October 26-28, 2004, pp. 35-49.
Details. Download: PDF, PostScript, slides (PDF), slides (PostScript), Javari implementation.

“Using simulated execution in verifying distributed algorithms”
by Toh Ne Win, Michael D. Ernst, Stephen J. Garland, Dilsun Kırlı, and Nancy Lynch.
Software Tools for Technology Transfer, vol. 6, no. 1, July 2004, pp. 67-76.
Details. Download: PDF, PostScript.
A previous version appeared in VMCAI'03, Fourth International Conference on Verification, Model Checking and Abstract Interpretation, (New York, New York), January 9-11, 2003, pp. 283-297.
Additional details and case studies appeared as “Verifying distributed algorithms via dynamic analysis and theorem proving” by Toh Ne Win and Michael D. Ernst. MIT Laboratory for Computer Science technical report 841, (Cambridge, MA), May 25, 2002.

“Improving adaptability via program steering”
by Lee Lin and Michael D. Ernst.
In ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, (Boston, MA, USA), July 12-14, 2004, pp. 206-216.
Details. Download: PDF, PostScript, PowerPoint.
A previous version appeared as “Improving reliability and adaptability via program steering” by Lee Lin and Michael D. Ernst. In Fourteenth International Symposium on Software Reliability Engineering, Supplementary Proceedings, (Denver, CO), November 17-20, 2003, pp. 313-314.

“An experimental evaluation of continuous testing during development”
by David Saff and Michael D. Ernst.
In ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, (Boston, MA, USA), July 12-14, 2004, pp. 76-85.
Details. Download: PDF, PostScript, Eclipse plug-in.

“Early identification of incompatibilities in multi-component upgrades”
by Stephen McCamant and Michael D. Ernst.
In ECOOP 2004 — Object-Oriented Programming, 18th European Conference, (Oslo, Norway), June 16-18, 2004, pp. 440-464.
Details. Download: PDF, PostScript.
An extended version appeared as “Predicting problems caused by component upgrades” by Stephen McCamant and Michael D. Ernst. MIT Laboratory for Computer Science technical report 941, (Cambridge, MA), Mar. 2004. Revision of first author's Master's thesis.

“Automatic mock object creation for test factoring”
by David Saff and Michael D. Ernst.
In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'04), (Washington, DC, USA), June 7-8, 2004, pp. 49-51.
Details. Download: PDF, PostScript.

“Finding latent code errors via machine learning over program executions”
by Yuriy Brun and Michael D. Ernst.
In ICSE'04, Proceedings of the 26th International Conference on Software Engineering, (Edinburgh, Scotland), May 26-28, 2004, pp. 480-490.
Details. Download: PDF, PostScript.

“Continuous testing in Eclipse”
by David Saff and Michael D. Ernst.
In 2nd Eclipse Technology Exchange Workshop (eTX), (Barcelona, Spain), March 30, 2004.
Details. Download: PDF, PostScript, Eclipse plug-in.
A tool demonstration appeared in ICSE'05, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 18-20, 2005, pp. 668-669.

2003

“Reducing wasted development time via continuous testing”
by David Saff and Michael D. Ernst.
In Fourteenth International Symposium on Software Reliability Engineering, (Denver, CO), November 17-20, 2003, pp. 281-292.
Details. Download: PDF, PostScript.

“Predicting problems caused by component upgrades”
by Stephen McCamant and Michael D. Ernst.
In ESEC/FSE 2003: Proceedings of the 9th European Software Engineering Conference and the 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Helsinki, Finland), September 3-5, 2003, pp. 287-296.
Details. Download: PDF, PostScript.
An extended version appeared as MIT Laboratory for Computer Science technical report 941, (Cambridge, MA), Mar. 2004. Revision of first author's Master's thesis.

“Selecting, refining, and evaluating predicates for program analysis”
by Nii Dodoo, Lee Lin, and Michael D. Ernst.
MIT Laboratory for Computer Science technical report MIT-LCS-TR-914, (Cambridge, MA), July 21, 2003.
Details. Download: PDF, PostScript.
A previous version appeared as “Selecting predicates for implications in program analysis” by Nii Dodoo, Alan Donovan, Lee Lin, and Michael D. Ernst. March 16, 2002. Draft. http://homes.cs.washington.edu/~mernst/pubs/invariants-implications.ps.

“Determining legal method call sequences in object interfaces”
by Samir V. Meghani and Michael D. Ernst.
May 2003.
Details. Download: PDF, PostScript.

“WODA 2003: ICSE Workshop on Dynamic Analysis”
edited by Jonathan E. Cook and Michael D. Ernst.
May 9, 2003.
Details. Download: PDF, workshop website.
A summary appeared as “Summary: Workshop on Dynamic Analysis (WODA 2003)” by Jonathan E. Cook and Michael D. Ernst. ACM SIGSOFT Software Engineering Notes, vol. 28, no. 6, Nov. 2003.

“Static and dynamic analysis: Synergy and duality”
by Michael D. Ernst.
In WODA 2003: Workshop on Dynamic Analysis, (Portland, Oregon), May 9, 2003, pp. 24-27.
Details. Download: PDF, PostScript.

“Improving test suites via operational abstraction”
by Michael Harder, Jeff Mellen, and Michael D. Ernst.
In ICSE'03, Proceedings of the 25th International Conference on Software Engineering, (Portland, Oregon), May 6-8, 2003, pp. 60-71.
Details. Download: PDF, PostScript, Talk slides (PowerPoint).

2002

“An empirical analysis of C preprocessor use”
by Michael D. Ernst, Greg J. Badros, and David Notkin.
IEEE Transactions on Software Engineering, vol. 28, no. 12, Dec. 2002, pp. 1146-1170.
Details. Download: PDF.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-97-04-06, (Seattle, WA), April 22, 1997. Revised March 31, 1999.

“Graphs induced by Gray codes”
by Elizabeth L. Wilmer and Michael D. Ernst.
Discrete Mathematics, vol. 257, November 28, 2002, pp. 585-598.
Details. Download: PDF.
A previous version appeared in ALICE03, 1st Workshop on Algorithms for Listing, Counting, and Enumeration, (Baltimore, Maryland), January 11, 2003.

“Invariant inference for static checking: An empirical evaluation”
by Jeremy W. Nimmer and Michael D. Ernst.
In FSE 2002, Proceedings of the ACM SIGSOFT 10th International Symposium on the Foundations of Software Engineering, (Charleston, SC), November 20-22, 2002, pp. 11-20.
Details. Download: PDF, PostScript.

“Automatic generation of program specifications”
by Jeremy W. Nimmer and Michael D. Ernst.
In ISSTA 2002, Proceedings of the 2002 International Symposium on Software Testing and Analysis, (Rome, Italy), July 22-24, 2002, pp. 232-242.
Details. Download: PDF, PostScript.
A previous version appeared as “Automatic generation and checking of program specifications” by Jeremy W. Nimmer and Michael D. Ernst. MIT Laboratory for Computer Science technical report 823, (Cambridge, MA), August 10, 2001. Revised February 1, 2002.

2001

“Automated support for program refactoring using invariants”
by Yoshio Kataoka, Michael D. Ernst, William G. Griswold, and David Notkin.
In ICSM 2001, Proceedings of the International Conference on Software Maintenance, (Florence, Italy), November 6-10, 2001, pp. 736-743.
Details. Download: PDF, PostScript.

“Static verification of dynamically detected program invariants: Integrating Daikon and ESC/Java”
by Jeremy W. Nimmer and Michael D. Ernst.
In Proceedings of RV'01, First Workshop on Runtime Verification, (Paris, France), July 23, 2001.
Details. Download: PDF, PostScript.

“Panel: Perspectives on software engineering”
by David Notkin, Marc Donner, Michael D. Ernst, Michael Gorlick, and E. James Whitehead, Jr..
In ICSE 2001, Proceedings of the 23rd International Conference on Software Engineering, (Montreal, Canada), May 16-18, 2001, pp. 699-702.
Details. Download: PDF, Slides (for all panelists).

“Dynamically discovering likely program invariants to support program evolution”
by Michael D. Ernst, Jake Cockrell, William G. Griswold, and David Notkin.
IEEE Transactions on Software Engineering, vol. 27, no. 2, Feb. 2001, pp. 99-123.
Details. Download: PDF, ICSE 1999 paper (PDF), ICSE 1999 talk slides (PowerPoint), ICSE 1999 talk slides (PostScript), Daikon implementation.
A previous version appeared in ICSE '99, Proceedings of the 21st International Conference on Software Engineering, (Los Angeles, CA, USA), May 19-21, 1999, pp. 213-224.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-98-08-03, (Seattle, WA), August 27, 1998.

2000

“Dynamically Discovering Likely Program Invariants”
by Michael D. Ernst.
Ph.D. dissertation, University of Washington Department of Computer Science and Engineering, (Seattle, Washington), Aug. 2000.
Details. Download: PDF, PostScript, Daikon implementation.
A summary appeared as “Summary of Dynamically discovering likely program invariants” by Michael D. Ernst. In ICSM 2001, Proceedings of the International Conference on Software Maintenance, (Florence, Italy), November 6-10, 2001, pp. 540-544.
A short research plan appeared as “Research summary for dynamic detection of program invariants” by Michael D. Ernst. In ICSE '99, Proceedings of the 21st International Conference on Software Engineering, (Los Angeles, CA, USA), May 19-21, 1999, pp. 718-719.
A longer research plan appeared as “Research summary for dynamic detection of program invariants” by Michael D. Ernst. In ICSE '99 Doctoral Workshop, (Los Angeles, CA, USA), May 18, 1999. Expanded version of two-page summary in ICSE '99 proceedings, distributed at workshop.

“Quickly detecting relevant program invariants”
by Michael D. Ernst, Adam Czeisler, William G. Griswold, and David Notkin.
In ICSE 2000, Proceedings of the 22nd International Conference on Software Engineering, (Limerick, Ireland), June 7-9, 2000, pp. 449-458.
Details. Download: PDF, PostScript, Daikon implementation.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-99-11-01, (Seattle, WA), November 15, 1999.

1999

“Dynamically discovering pointer-based program invariants”
by Michael D. Ernst, William G. Griswold, Yoshio Kataoka, and David Notkin.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-99-11-02, (Seattle, WA), November 16, 1999. Revised March 17, 2000.
Details. Download: PDF, PostScript, Daikon implementation.

1998

“Predicate dispatching: A unified theory of dispatch”
by Michael D. Ernst, Craig S. Kaplan, and Craig Chambers.
In ECOOP '98, the 12th European Conference on Object-Oriented Programming, (Brussels, Belgium), July 20-24, 1998, pp. 186-211.
Details. Download: PDF, PostScript, slides (PDF), slides (PostScript), implementation, manual.

1997

“Automatic SAT-compilation of planning problems”
by Michael D. Ernst, Todd D. Millstein, and Daniel S. Weld.
In IJCAI-97, Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, (Nagoya, Aichi, Japan), August 23-29, 1997, pp. 1169-1176.
Details. Download: PDF, PostScript, Medic implementation.

1996

“Method and system for controlling unauthorized access to information distributed to users”
by Gideon A. Yuval and Michael D. Ernst.
December 17, 1996. Assigned to Microsoft Corporation.
Details.

1995

“Playing Konane mathematically: A combinatorial game-theoretic analysis”
by Michael D. Ernst.
UMAP Journal, vol. 16, no. 2, Spring 1995, pp. 95-121.
Details. Download: PDF, PostScript, talk slides (PowerPoint, 1/17/2001), implementation.
A previous version appeared as Microsoft Research technical report MSR-TR-95-24, (Redmond, WA), August 7, 1995.
A previous version appeared as “Playing Konane mathematically” by Michael D. Ernst and Elwyn Berlekamp. In Articles in Tribute to Martin Gardner, (Scott Kim, ed.), January 16, 1993, pp. 6-15, Atlanta International Museum of Art and Design.

“IR '95: Intermediate Representations Workshop Proceedings”
edited by Michael D. Ernst.
January 22, 1995. ACM SIGPLAN Notices 30(3), March 1995.
Details. Download: workshop website, ACM proceedings.
A previous version appeared as Microsoft Research technical report MSR-TR-95-01, (Redmond, WA), January 22, 1995.

“Slicing pointers and procedures (abstract)”
by Michael D. Ernst.
Microsoft Research technical report MSR-TR-95-23, (Redmond, WA), January 13, 1995.
Details. Download: PostScript.

1994

“Serializing parallel programs by removing redundant computation”
by Michael D. Ernst.
MIT Laboratory for Computer Science technical report MIT/LCS/TR-638, (Cambridge, MA), August 21, 1994.
Details. Download: PostScript.
A concurrently published technical report appeared as Microsoft Research technical report MSR-TR-94-15, (Redmond, WA), August 21, 1994.
A previous version appeared as a Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Sep. 1992.
A previous version appeared as “Serializing parallel programs (abstract)” by Michael D. Ernst. In Proceedings of the 1992 MIT Student Workshop on VLSI and Parallel Systems, July 21, 1992, pp. 13-1 to 13-2.

“Practical fine-grained static slicing of optimized code”
by Michael D. Ernst.
Microsoft Research technical report MSR-TR-94-14, (Redmond, WA), July 26, 1994.
Details. Download: PostScript.

“Heraclitean encryption”
by Michael D. Ernst and Gideon Yuval.
Microsoft Research technical report MSR-TR-94-13, (Redmond, WA), March 3, 1994.
Details. Download: PostScript.

“Value dependence graphs: Representation without taxation”
by Daniel Weise, Roger F. Crew, Michael D. Ernst, and Bjarne Steensgaard.
In Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (Portland, OR), Jan. 1994, pp. 297-310.
Details. Download: PostScript.
A previous version appeared as Microsoft Research technical report MSR-TR-94-03, (Redmond, WA), April 13, 1994.

1992

“Intellectual property in computing: (How) should software be protected? An industry perspective”
by Michael D. Ernst.
MIT Artificial Intelligence Laboratory Memo AIM-1369, (Cambridge, Massachusetts), May 1992.
Details. Download: PostScript.
A videotape appeared as “Intellectual property in computing: (How) should software be protected? An industry perspective” by Randall Davis and Michael D. Ernst. MIT Artificial Intelligence Laboratory Video AIV-7, (Cambridge, Massachusetts), Oct. 1990.

1989

“Adequate Models for Recursive Program Schemes”
by Michael D. Ernst.
Bachelors thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), June 1989.
Details. Download: PostScript.

“Self-reference in English”
by Michael D. Ernst.
May 1989. The idea from this unpublished term paper was written up by Boolos without Ernst's knowledge, to appear as “Quotational Ambiguity,” by George Boolos, in On Quine, (Paulo Leonardi, ed.), pp. 283-296, Cambridge University Press, 1995. Boolos called the idea “Ernst's Paradox” but refused Ernst's request for coauthorship.
Details.

“ML typechecking is not efficient”
by Michael D. Ernst.
In Papers of the MIT ACM Undergraduate Conference, Apr. 1989.
Details.

“Image/map correspondence using curve matching”
by Michael D. Ernst and Bruce E. Flinchbaugh.
In AAAI Spring Symposium on Robot Navigation, (Stanford, CA), March 28-30, 1989. Also published as Texas Instruments Technical Report CSC-SIUL-89-12.
Details. Download: PDF, PostScript.


Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.


(This webpage was created with bibtex2web.)

Michael Ernst