Main People Publications Research Tools
Current Research Projects

Research Objectives

The overall goal of our research is to develop efficient techniques and tools that will automate, or partially automate, development, testing, and maintenance tasks. Our research has involved program-analysis-based software engineering, with an emphasis on regression testing, analysis and testing of imperative and object-oriented software, and development of software tools. Our recent work has focused on the investigation of the scalability issues of these techniques, through algorithm development and empirical evaluation.

Our research has four main components:

  1. We develop techniques to assist with tasks such as program understanding, regression testing, test-case selection, component integration, and fault localization
  2. We develop techniques to compute and provide the kinds of analysis information about a program, such as data-flow, slices, and pointer, needed for these software engineering tasks
  3. We build and maintain an infrastructure for implementation and experimentation for both C, through Aristotle, and Java, through JABA
  4. We perform experiments for many reasons including identification of software characteristics, demonstration of the usefulness of our techniques and tools, and guidance for future work.

Research Opportunities

There are many opportunities to join our research group: as a student doing Ph.D. research, as a student doing an M.S. thesis, or as an undergraduate who wants to learn more about research. There are also opportunities to work as a Research Assistant on a supported project or to do project-related internships with our industry partners. If you are interested in discussing the possibility of joining our research group, send e-mail to Prof. Harrold ( to make an appointment.

Georgia Tech | College of Computing | Software Engineering | Aristotle Home
Updated November 14, 2005 by Jim Jones