
Tao Xie
North Carolina State University
Department of Computer Science
Campus Box 8206
Raleigh, NC 27695-8206
Phone: 919-515-3772
Fax: 919-515-7896
Email: xie@csc.ncsu.edu
DVP trem expires December 2013
Tao Xie is an Associate Professor in the Department of Computer Science of the College of Engineering at North Carolina State University. He received his Ph.D. in Computer Science from the University of Washington in 2005. Before that, he received an M.S. in Computer Science from the University of Washington in 2002, an M.S. in Computer Science from Peking University in 2000, and a B.S. in Computer Science from Fudan University in 1997. He worked as a visiting researcher at Microsoft Research Redmond and Microsoft Research Asia. His research interests are in software engineering, focusing on automated software testing and mining software engineering data. He has published more than 100 research papers in refereed journals and conference proceedings in the area of software engineering. Besides doing research, he has contributed to understanding the software engineering research community. He has served as the ACM SIGSOFT History Liaison in the SIGSOFT Executive Committee as well as the ACM History Committee. He received a National Science Foundation Faculty Early Career Development (CAREER) Award in 2009. He received 2008, 2009, and 2010 IBM Faculty Awards and a 2008 IBM Jazz Innovation Award. He received 2010 North Carolina State University Sigma Xi Faculty Research Award. He received the ASE 2009 Best Paper Award and an ACM SIGSOFT Distinguished Paper Award. He was Program Co-Chair of 2009 IEEE International Conference on Software Maintenance (ICSM) and is Program Co-Chair of 2011 and 2012 International Working Conference on Mining Software Repositories (MSR).
Improving Software Reliability via Mining Software Engineering Data
Since late 90's, various data mining techniques have been applied to analyze software engineering data, and have achieved many noticeable successes in improving software reliability. Substantial experience, development, and lessons of data mining for software engineering pose interesting challenges and opportunities for new research and development. This talk will present recent state-of-the-art research on mining software engineering data for improving software reliability. First, the speaker will present a problem-driven methodology in advancing the field of mining software engineering data. More specifically, researchers empirically investigate problems in the software engineering domain and identify required types of patterns for addressing those problems. Second, the speaker will present new mining algorithms for mining these required types of patterns, rather than being constrained by available mining algorithms from the data mining community. Finally, the speaker will present a roadmap for future research on mining software engineering data.
Automated Developer Testing: Achievements and Challenges
Developer testing, a common step in software development, involves generating sufficient test inputs and checking the behavior of the program under test during the execution of the test inputs. Complicated logics inside a method make generating appropriate arguments difficult. In testing object-oriented programs, generating method sequences to put the receiver object or argument objects into appropriate states further complicates test-input generation. After the generated test inputs are executed, program crashes or uncaught exceptions can be used to indicate program problems, especially robustness problems. However, some program problems such as producing wrong program outputs do not crash the program. In this talk, the speaker will present an overview of achievements and challenges in improving automation in developer testing, especially on test-input generation (i.e., generating sufficient test inputs) and test oracles (i.e., checking the behavior of the program under test).
Systematic Testing and Verification of Security Policies
Access control is one of the most fundamental and widely used privacy and security mechanisms at both application and network levels. Given the high importance and delicacy of security policies, ensuring the correctness of security policies is important, and yet difficult. A tiny error in security policies could lead to irreparable, if not tragic, consequences. Therefore, identifying discrepancies between policy specifications and their intended function is a crucial task. To achieve this goal, security policies must undergo systematic, rigorous testing and verification to ensure that they truly represent the intention of their policy authors. In this talk, the speaker presents state-of-the-art research work on new techniques and tools for systematic testing and verification of security policies. Example security policies include firewall policies and access control policies such as those written in XACML. Example systematic testing techniques include techniques for coverage criteria, test generation, and test oracles. Example systematic verification techniques include techniques for property specification, property inference, and policy verification.