12_`__~~~ rueDepartment of Computer Science Erik Jonsson

Lingming Zhang
Assistant Professor
Web: http://www.utdallas.edu/~lxz144130
Department of Computer Science
Erik Jonsson School of Engineering & Computer Science
The University of Texas at Dallas
T +1-972-883-3573
B [email protected]
ECSS 4.205 UTD,
Richardson, TX 75080
Research Interests
Software Engineering, in particular: Test/Oracle Generation, Automated Bug Localization
and Repair, Regression Testing, Mutation Testing, and Program Analysis.
Formal Methods and Programming Languages, in particular: Symbolic Execution, Model
Checking, First-Order Logic, Program Invariant Inference, and Points-to Analysis.
Academic Experience
2014 – NOW
2011 – 2014
Assistant Professor, The University of Texas at Dallas, USA
Research Assistant, The University of Texas at Austin, USA
Education Background
2010 – 2014
2007 – 2010
2003 – 2007
Ph.D. in Software Engineering, The University of Texas, Austin, USA
Software Verification, Validation and Testing Group
GPA: 3.91, Advisor: Sarfraz Khurshid ([email protected])
M.S. in Computer Science, Peking University, Beijing, China
Software Testing and Program Analysis Research Group
GPA: 3.80, Advisor: Lu Zhang ([email protected])
B.S. in Computer Science, Nanjing University, Nanjing, China
Journal Publications
[J3]
[J2]
[J1]
Dan Hao, Lingming Zhang, Lu Zhang, Gregg Rothermel, and Hong Mei. A Unified TestCase Prioritization Approach. ACM Transactions on Software Engineering and Methodology
(TOSEM 2015), 24(2): 10:1-10:31. An extended version of our ICSE 2013 paper.
Lingming Zhang, Miryung Kim, Sarfraz Khurshid. FaultTracer: A Spectrum-Based Approach to Localizing Failure-Inducing Program Edits. Journal of Software Maintenance and
Evolution (JSME 2013), Vol. 25, Issue 12, Pages 1357–1383. An extended version of our
ICSM 2011 paper.
Hong Mei, Dan Hao, Lingming Zhang, Lu Zhang, Gregg Rothermel. A Static Approach
to Prioritizing JUnit Test Cases. IEEE Transactions on Software Engineering (TSE 2012),
Vol.38, No.6, pages 1258-1275, November 2012. An extended version of our ICSM 2009
paper.
Conference Publications
[C28]
[C27]
[C26]
Owolabi Legunsen, Farah Hariri, August Shi, Yafeng Lu, Lingming Zhang, and Darko Marinov. An Extensive Study of Static Regression Test Selection in Modern Software Evolution.
In In Proceedings of 24th ACM SIGSOFT International Symposium on the Foundations of
Software Engineering (FSE’16), pages 583-594, Nov. 2016.
Jie Zhang, Yiling Lou, Lingming Zhang, Dan Hao, Lu Zhang, Hong Mei. Isomorphic Regression Testing: Executing Uncovered Branches without Test Augmentation. In In Proceedings
of 24th ACM SIGSOFT International Symposium on the Foundations of Software Engineering
(FSE’16), pages 883-894, Nov. 2016.
Hua Zhong, Lingming Zhang, Sarfraz Khurshid. Combinatorial Generation of Structurally
Complex Test Inputs for Commercial Software Applications. In In Proceedings of 24th ACM
SIGSOFT International Symposium on the Foundations of Software Engineering (FSE’16),
Industry track, pages 981-986, Nov. 2016.
1/6
[C25]
[C24]
[C23]
[C22]
[C21]
[C20]
[C19]
[C18]
[C17]
[C16]
[C15]
[C14]
[C13]
[C12]
[C11]
Junjie Chen, Yanwei Bai, Dan Hao, Lingming Zhang, Lu Zhang, Bing Xie and Hong Mei.
Supporting Oracle Construction via Static Analysis. In Proceedings of 31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016), pages 178-189, Sept.
2016.
Jie Zhang, Ziyi Wang, Lingming Zhang, Dan Hao, Lei Zang, Shiyang Cheng and Lu Zhang.
Predictive Mutation Testing. In Proceedings of the ACM International Symposium on Software
Testing and Analysis (ISSTA 2016), pages 342-353, July 2016.
Hua Zhong, Lingming Zhang, Sarfraz Khurshid. The comKorat Tool: Unified Combinatorial
and Constraint-based Generation of Structurally Complex Tests. In Proceedings of the 8th
NASA Formal Methods Symposium (NFM 2016), pages 107-113, June 2016.
Yafeng Lu, Yiling Lou, Shiyang Cheng, Lingming Zhang, Dan Hao, Yangfan Zhou, Lu
Zhang. How Does Regression Test Prioritization Perform in Real-World Software Evolution? In Proceedings of the 38th IEEE/ACM International Conference on Software Engineering (ICSE 2016), pages 535-546, May 2016.
Tao Ye, Lingming Zhang, Linzhang Wang, Xuandong Li. An Empirical Study on Detecting
and Fixing Buffer Overflow Bugs. In Proceedings of the IEEE International Conference on
Software Testing, Verification and Validation (ICST 2016), pages 91-101, April 2016.
Shiyu Dong, Oswaldo Olivo, Lingming Zhang, Sarfraz Khurshid. Studying the Influence of
Standard Compiler Optimizations on Symbolic Execution. In Proceedings of the 26th IEEE
International Symposium on Software Reliability Engineering (ISSRE 2015), pages 205-215,
Nov. 2015.
Xianglong Kong, Lingming Zhang, W. Eric Wong, Bixin Li. Experience Report: How Do
Techniques, Programs, and Tests Impact Automated Program Repair? In Proceedings of the
26th IEEE International Symposium on Software Reliability Engineering (ISSRE 2015), pages
194-204, Nov. 2015.
Xiaoyin Wang, Lingming Zhang, Philip Tanofsky. Experience Report: How is Dynamic
Symbolic Execution Different from Manual Testing? - A Study on KLEE. In Proceedings
of the ACM International Symposium on Software Testing and Analysis (ISSTA 2015), pages
199-210, Experience paper, July 2015.
Ripon K. Saha, Lingming Zhang, Sarfraz Khurshid, Dewayne E. Perry. An Information Retrieval Approach for Regression Test Prioritization Based on Program Changes. In Proceedings of the 37th IEEE/ACM International Conference on Software Engineering (ICSE 2015),
pages 268-279, May 2015.
Hao Tang, Xiaoyin Wang, Lingming Zhang, Lu Zhang, Bing Xie, Hong Mei. SummaryBased Context-Sensitive Data-Dependence Analysis in Presence of Callbacks. In Proceedings
of the 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
(POPL 2015), pages 83–95, January 2015.
Lingming Zhang, Guowei Yang, Neha Rungta, Suzette Person, Sarfraz Khurshid. FeedbackDriven Dynamic Invariant Discovery. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 2014), pages 362-372, July 2014.
Lingming Zhang, Lu Zhang, Sarfraz Khurshid. Injecting Mechanical Faults to Localize
Developer Faults for Evolving Software. In Proceedings of the ACM SIGPLAN Conference
on Object-Oriented Programming Systems, Languages, and Applications (SPLASH/OOPSLA
2013), pages 765-784, October 2013.
Lingming Zhang, Milos Gligoric, Darko Marinov, Sarfraz Khurshid. Operator-based and
Random Mutant Selection: Better Together. In Proceedings of the 28th IEEE/ACM Conference
on Automated Software Engineering (ASE 2013), pages 92-102, November 2013.
Lingming Zhang, Dan Hao, Lu Zhang, Gregg Rothermel and Hong Mei. Bridging the Gap
Between the Total and Additional Test-Case Prioritization Strategies. In Proceedings of the
35th IEEE/ACM International Conference on Software Engineering (ICSE 2013), pages 192201, May 2013.
Lingming Zhang, Darko Marinov, Sarfraz Khurshid. Faster Mutation Testing Inspired by
Test Prioritization and Reduction. In Proceedings of the International Symposium on Software
Testing and Analysis (ISSTA 2013), pages 235-245, July 2013.
2/6
[C10]
[C9]
[C8]
[C7]
[C6]
[C5]
[C4]
[C3]
[C2]
[C1]
Milos Gligoric, Lingming Zhang, Cristiano Pereira and Gilles Pokam. Selective Mutation
Testing for Concurrent Code. In Proceedings of the International Symposium on Software
Testing and Analysis (ISSTA 2013), pages 224-234, July 2013.
Lingming Zhang, Darko Marinov, Lu Zhang, Sarfraz Khurshid. Regression Mutation Testing. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA
2012), pages 331-341, July 2012.
Lingming Zhang, Miryung Kim, Sarfraz Khurshid. FaultTracer: A Change Impact and Regression Fault Analysis Tool for Evolving Java Programs. In Proceedings of the 20th ACM
SIGSOFT International Symposium on the Foundation of Software Engineering (FSE 2012),
tool demonstration track, pages 40:1-4, November 2012.
Lingming Zhang, Darko Marinov, Lu Zhang, Sarfraz Khurshid. An Empirical Study of JUnit
Test-Suite Reduction. In Proceedings of the 22nd IEEE International Symposium on Software
Reliability Engineering (ISSRE 2011), pages 170-179, November 2011.
Shadi Abdul Khalek, Guowei Yang, Lingming Zhang, Darko Marinov, Sarfraz Khurshid.
TestEra: A Tool for Testing Java Programs Using Alloy Specifications. In Proceedings of the
26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011),
tool demonstration track, pages 608-611, November 2011.
Lingming Zhang, Miryung Kim, Sarfraz Khurshid. Localizing Failure-Inducing Program Edits Based on Spectrum Information. In Proceedings of the 27th IEEE International Conference
on Software Maintenance (ICSM 2011), pages 23-32, September 2011. Invited to the Special
Issue of Journal of Software Maintenance and Evolution (JSME).
Lingming Zhang, Tao Xie, Lu Zhang, Nikolai Tillmann, Jonathan de Halleux. Test Generation via Dynamic Symbolic Execution for Mutation Testing. In Proceedings of the 26th
IEEE International Conference on Software Maintenance (ICSM 2010), pages 1-10, September 2010.
Lingming Zhang, Ji Zhou, Dan Hao, Lu Zhang, and Hong Mei. Prioritizing JUnit Test Cases
in Absence of Coverage Information. In Proceedings of the 25th IEEE International Conference on Software Maintenance (ICSM 2009), pages 19-28, September 2009.
Lingming Zhang, Ji Zhou, Dan Hao, Lu Zhang, and Hong Mei. Jtop: Managing JUnit Test
Cases in Absence of Coverage Information. In Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering (ASE 2009), tool demonstration track,
pages 677-679, November 2009.
Dan Hao, Lingming Zhang, Lu Zhang, Jiasu Sun and Hong Mei. VIDA: Visual Interactive Debugging. In Proceedings of the 31st IEEE/ACM International Conference on Software
Engineering (ICSE 2009), tool demonstration track, pages 583-586, May 2009.
Industry Experience
Summer 2013
Summer 2013
Fall 2012
Summer 2012
Google Summer of Code – Participant
Participated in the 2013 Google Summer of Code. Worked with NASA Ames and NASA
Langley research labs on the iDiscovery project. Designed and implemented an automated
approach guided by symbolic execution and model checking for generating higher-quality
program invariants.
eBay Inc., Austin – Intern
Worked as a software intern for building test sharing and reusing infrastructure for various
eBay development teams. Implemented the project using various web-development tools and
frameworks, e.g., Spring, ActiveMQ, MongoDB, and so on. The project was highly rated by
our manager and director, and was invited for a formal demonstration in eBay San Jose.
Intel Inc., Silicon Valley – Collaborator
Collaborated with Intel Labs at Silicon Valley in automated evaluation of testing techniques
for concurrent code. Implemented CoMutation, an automated test evaluation framework for
concurrent code based on mutation testing. Performed the first study on reducing the cost of
mutation testing for concurrent code using selective mutation.
eMetric Inc., Berkeley – Intern
3/6
2009 – 2010
2008 – 2009
Worked as a team leader for building automated test generation infrastructure for web-based
systems. Used Selenium to automatically generate actual test events based on various strategies. Used JSCoverage to evaluate the quality of generated test events and guide the further
generation. Found more than 50 bugs during the internship.
Microsoft Research, Redmond – Collaborator
Collaborated with the Foundations of Software Engineering group in automated test generation. Used mutation testing to guide symbolic execution. Used the Microsoft Pex engine with
Z3 SMT solver to solve mutant-killing constraints and generate high-quality test inputs.
IBM China Software Development Lab (IBM CSDL), Beijing – Intern
Worked as an intern in the InfoSphere Replication Server Testing group. Manually designed
test cases to expose possible faults. Used Perl scripts to automatically test the IBM DB2 system
and its interaction with other systems.
Teaching Experience
Spring 2016
Fall 2015
Spring 2015
Fall 2014
Spring 2013
Spring 2009
Instructor, Software Testing and Validation, and Verification (CS/CE/SE6367), The University
of Texas at Dallas
Instructor, Software Engineering (CS/CE/SE3354), The University of Texas at Dallas
Instructor, Advanced Software Testing and Verification (CS/SE6301), The University of Texas
at Dallas
Instructor, Software Engineering (CS/SE/CE3354), The University of Texas at Dallas
Teaching Assistant, Software Testing (EE360T/EE382V), The University of Texas at Austin
Teaching Assistant, Multi-Agent Technology, Peking University, China
Honors and Awards
Feb. 2016
Nov. 2014
Nov. 2013
May. 2013
Nov. 2012
Jan. 2010
Nov. 2009
Sep. 2009
Apr. 2009
Sep. 2008
Aug. 2008
Sep. 2006
Sep. 2005
Sep. 2004
Sep. 2004
Google Faculty Research Award (USD46,500)
Nanjing University Oversea Collaboration Grant on “Automated Program Repair” (RMB
30,0000)
Chinese Government Award for Outstanding Students Abroad Nominee: 500 outstanding Chinese oversea students selected across 29 countries
ACM SigSoft CAPS Travel Grant for attending ICSE 2013 (USD500)
ACM SigSoft CAPS Travel Grant for attending FSE 2012 (USD500)
Chiang Chen Oversea PHD Fellowship (USD50,000), awarded to 10 students in the whole
China: only 1 student selected from Peking University
International Academic Exchange Scholarship (RMB10,000), Peking University
Suzhou Industry Scholarship (RMB5,000), Peking University
Morgan Stanley Research Fellowship (RMB10,000)
Kwang-Hua Scholarship (RMB3,000), Peking University
Excellent Volunteer of the 29th Olympics, Technique Team, National Stadium
Second-class people’s Scholarship (RMB3,000), Nanjing University
Scholarship of Song Ching Ling Foundation (RMB3,000), Nanjing University
Scholarship of Song Ching Ling Foundation (RMB3,000), Nanjing University
Distinguished Student Award (for social work), Nanjing University
Expertise and Skills
Systems
Languages
Tools
Windows, Mac, and Linux
Java, C#, C++, C, JavaScript, SQL, HTML, Alloy, and SMT
Eclipse, Visual Studio, JUnit, MbUnit, ASM Bytecode Manipulation Framework, Eclipse JDT,
Common Compiler Infrastructure, Java PathFinder, Javalanche, Pex, Selenium, JSCoverage,
MySQL, IBM DB2, Subversion, Git, MongoDB, ActiveMQ, Raptor, Spring, jQuery, IBM
Symphony ILP Solver, and Z3 SMT Solver
Professional Service
Social Media
Co-Chair
PC Member
31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016)
31st IEEE/ACM International Conference on Automated Software Engineering (ASE 2016)
4/6
PC Member
PC Member
PC Member
PC Member
PC Member
PC Member
PC Member
AEC Member
AEC Member
PC Member
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Co-Reviewer
Volunteer
IEEE International Conference on Software Testing, Verification and Validation (ICST 2016)
40th Annual International Computer, Software & Applications Conference (COMPSAC 2016)
4th International Workshop on Software Mining (SoftwareMining-2015)
39th Annual International Computer, Software & Applications Conference (COMPSAC 2015)
IEEE International Conference on Software Quality, Reliability & Security (QRS 2015)
30th IEEE International Conference on Software Maintenance (ICSM 2014)
25th IEEE International Symposium on Software Reliability Engineering (ISSRE 2014)
ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2014)
International Symposium on Software Testing and Analysis (ISSTA 2014)
29th IEEE International Conference on Software Maintenance (ICSM 2013)
IEEE Transaction on Software Engineering and Methodology (TOSEM 2015)
Journal of Computer Science and Technology (JCST2015)
Transactions on Reliability (ToR 2015)
Journal of Software: Evolution and Process (JSEP 2015)
IEEE Transaction on Software Engineering (TSE 2015)
Journal of Systems and Software (JSS 2015)
Journal of Software Testing, Verification and Reliability (STVR 2015)
IEEE Transaction on Software Engineering (TSE 2014)
Journal of Systems and Software (JSS 2014)
Transactions on Reliability (ToR 2014)
Journal of Software: Practice and Experience (SPE 2014)
Journal of Information Science and Engineering (JISE 2014)
Journal of Software Testing, Verification and Reliability (STVR 2014)
IEEE Transaction on Software Engineering (TSE 2013)
Journal of Software Testing, Verification and Reliability (STVR 2013)
IEEE Transaction on Software Engineering (TSE 2012)
The ACM International Symposium on Software Testing and Analysis (ISSTA 2015)
8th International Conference on Software Testing, Verification and Validation (ICST 2015)
22rd International Symposium on the Foundations of Software Engineering (FSE 2014)
International Symposium on Software Testing and Analysis (ISSTA 2014)
28th IEEE/ACM Conference on Automated Software Engineering (ASE 2013)
21rd International Symposium on the Foundations of Software Engineering (FSE 2013)
6th International Conference on Software Testing, Verification and Validation (ICST 2013)
11th ACM Workshop on Program Analysis for Software Tools and Engineering (PASTE 2013)
28th ACM Symposium On Applied Computing (SAC 2013)
20th International Symposium on the Foundations of Software Engineering (FSE 2012)
18th International Symposium on Formal Methods (FM 2012)
27th IEEE/ACM International Conference on Automated Software Engineering (ASE 2012)
IEEE Transaction on Software Engineering (TSE 2011)
26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011)
International Symposium on Software Testing and Analysis (ISSTA 2011)
The Java PathFinder Workshop 2011
24th IEEE International Conference on Software Maintenance (ICSM 2008)
Conference Talks
ASE 2013
OOPSLA 2013
ISSTA 2013
ISSTA 2013
Operator-based and Random Mutant Selection: Better Together, Nov. 2013.
Injecting Mechanical Faults to Localize Developer Faults for Evolving Software, Oct. 2013.
Faster Mutation Testing Inspired by Test Prioritization and Reduction, Jul. 2013.
Selective Mutation Testing for Concurrent Code, Jul. 2013.
5/6
ICSE 2013
FSE 2012
ISSTA 2012
ISSRE 2011
ICSM 2011
ICSM 2009
Bridging the Gap Between Total and Additional Test Prioritization Strategies, May 2013.
A Change Impact and Regression Fault Analysis Tool for Evolving Java Programs, Nov. 2012.
Regression Mutation Testing, Jul. 2012.
An Empirical Study of JUnit Test-Suite Reduction, Nov. 2011.
Localizing Failure-Inducing Program Edits Based on Spectrum Information, Sep. 2011.
Prioritizing JUnit Test Cases in Absence of Coverage Information, Sep. 2009.
Guest Lectures
July 2015
Jan. 2015
Apr. 2014
Apr. 2014
Mar. 2014
Jan. 2014
Nov. 2013
Nov. 2013
Nov. 2013
Mar. 2013
Feb. 2013
Nov. 2012
Sep. 2012
Apr. 2012
Feb. 2012
Jun. 2011
Chinese Academy of Sciences. How is Dynamic Symbolic Execution Different from Manual
Testing? - A Study on KLEE, invited by Prof. Jian Liu.
Nanjing University. Feedback-Driven Dynamic Invariant Discovery, invited by Prof.
Linzhang Wang.
IBM Research T.J. Watson. Unifying Manual and Mechanical Changes for Better Software
Testing, invited talk.
University of Houston. Unifying Manual and Mechanical Changes for Better Software Testing, invited talk.
University of Texas at Dallas. Unifying Manual and Mechanical Changes for Better Software
Testing, invited talk.
Rochester Institue of Technology. Unifying Manual and Mechanical Changes for Better
Software Testing, invited talk.
University of Illinois at Urbana-Champaign. Regression Testing and Mutation Testing in
Tandem, invited by Prof. Darko Marinov.
University of Texas at San Antonio. Using Regression Mutation Testing to Detect and Localize Software Bugs, invited by Prof. Xiaoyin Wang.
University of Texas at Austin. Localizing Failure-Inducing Program Edits Based on Spectrum Information, Course EE461L by Prof. Miryung Kim, Software Engineering and Design.
University of Texas at Austin. FaultTracer: A Change Impact and Regression Fault Analysis
Tool for Evolving Java Programs, Course EE382C by Prof. Sarfraz Khurshid, Verification and
Validation of Software.
University of Texas at Austin. Automated Fault Localization Techniques, Course EE360T by
Prof. Sarfraz Khurshid, Software Testing.
University of Texas at Austin. Towards Localizing Failure-Inducing Program Edits, Course
EE382V by Prof. Sarfraz Khurshid, Verification and Validation of Software.
University of Texas at Austin. Introduction to Fault Localization, Course EE382C by Prof.
Sarfraz Khurshid, Verification and Validation of Software.
University of Texas at Austin. Test generation via Dynamic Symbolic Execution for Mutation
Testing, Course EE382C by Prof. Sarfraz Khurshid, Verification and Validation of Software.
University of Texas at Austin. Localizing Failure-Inducing Program Edits Based on Spectrum Information, Course EE360T by Prof. Sarfraz Khurshid, Software Testing.
Texas Symposium on Software Engineering. TestEra: Testing Java programs using Alloy
specifications, invited talk.
6/6