Gregg Rothermel, a Professor and Jensen Chair of Software Engineering, spent a year abroad for faculty development leave at the Korea Advanced Institute of Science and Technology (KAIST) in Taejon, South Korea. Now, back at UNL, he discusses his current research, academic interests, and gives advice for studying abroad.
Q: Dr. Rothermel, what classes are you currently teaching?
A: This semester I’m teaching a graduate course in the area of my research (on testing and program analysis). Next semester it will be CS 361, Software Engineering.
Q: What projects are you currently working on?
A: Broadly speaking, I’m interested in finding ways to make software more dependable. Right now I’m supervising or co-supervising Ph.D. students who are working on several projects, including the following:
• Augmenting test suites to help test software systems as they evolve.
• Testing real-time embedded systems.
• Helping non-professional (“end-user”) programmers create more dependable web mashups.
• Automatically generating test cases efficiently.
• Providing assistance in generating test oracles.
• Testing graphical user interfaces.
• Using machine learning techniques to improve the dependability of service composition software.
Q: Are there any projects that you would like to highlight specifically? If so, can you provide details of your work/research so far?
A: Of the projects I listed above, the one that is farthest along is the one listed first. The primary researcher is my Ph.D. student Zhihong Xu, and we are also collaborating with Prof. Myra Cohen here at UNL, Prof. Moonzoo Kim at KAIST in Korea, and Ph.D. student Yunho Kim, also from KAIST. The problem is that software evolves, and as that happens, new faults emerge. Test suite augmentation techniques work with existing test suites and add new tests to them to address these potential new faults. In the past, augmentation was largely a manual process conducted by test engineers; we’re trying to automate it. To do that we’re using some relatively new test generation technologies, and finding ways to adapt them to the augmentation task, and combine them into hybrid techniques that utilize the strengths of each. We’ve presented three conference papers on this research and we’re about to present a new one in Japan at the International Symposium on Software Reliability Engineering.
Q: What most draws your interest to your current projects?
A: In part, it’s the opportunity to be creative in finding new ways to address problems, and the opportunity to make an impact on society through that. But among the day-to-day activities I engage in, my favorite is working with graduate students, helping them learn how to do research and guiding them to new places.
Q: Do you currently have any grants for your research?
A: Three. I’m the Principal Investigator on one National Science Foundation grant, collaborating with professors at University of Texas- Austin, University of Illinois- Urbana Champaign, and North Carolina State, supporting work related to regression testing. I'm the PI on an Air Force Office of Scientific Research grant, and am collaborating with all six of the professors in the ESQuaReD lab, supporting work on ensuring software dependability. I'm also an Investigator on a Korea Research Foundation grant supporting work on end-user software engineering.
Q: What initially sparked your interest in your projects? How did you initially get involved?
A: As you’ll read below, I spent some years in industry as a software engineer and one of my primary tasks involved leading our testing efforts. As our systems evolved, we needed to regression test them to detect faults that may have been inserted through evolution. There wasn’t much published on this at the time and I became interested in finding better ways to solve the problem.
Q: What initially motivated you to pursue your field?
A: My bachelor’s degree was in philosophy with a minor in literature and after that I was attempting to write fiction, and looking for a job as a technical writer with which to support myself. I found I needed some computing experience to do that and took a couple of courses. That got me hooked. At that time I liked the mix of creativity and logic involved in creating software and in understanding computer science. I got an M.S. in CS and took a job as a software engineer. There I did a lot of work in testing, ran into interesting problems, and decided it would be more fun to do research on those problems than to produce software. That led me to decide to go back for a Ph.D.
Q: What impact do you see your project having on both your own research and on the field in general?
A: The augmentation work is a next large step toward the regression testing problem, following our earlier work on other sorts of approaches. I expect solutions to the problems to open up new problems; in particular, the problem of generating effective test “oracles” (procedures for judging whether program outputs are correct) is another large problem that can influence regression testing practices. Beyond research, virtually all companies that develop software regression test it, so improving the state of the art in this area should improve the state of the practice.
Q: How does the field of computer science in Korea compare to the United States?
A: Korean universities tend to emulate American universities, and so computer science departments tend to have curricula similar to ours. There’s a bit more emphasis, though, on embedded systems, telecommunications, and robotics, because these are areas that Korean industry is heavily involved in, and in which students can expect to get interesting jobs.
It’s also interesting, though, to compare the views of education across the cultures. Korean society values education very highly. Teachers and professors are greatly respected. (When one wishes to politely address a stranger, one often does so with the term “sansengnim”, which is the word for “teacher”). The high school graduation rate there is above 99% (in the U.S. the average high school graduation rate is just 70%). Of those who graduate from high school in Korea, 88% go on to college (in the U.S. this rate is 70%, but that’s from among the 70% who graduate high school). The government devotes 20% of its total budget to education, and there is no shortage of students wishing to pursue careers in math, engineering, and sciences.
Q: What advice would you give to students/colleagues who are considering studying/researching abroad?
A: It’s definitely worth doing. It helps you see more clearly how many of the things we grow up thinking are universal human traits that really are not, and it also helps you see more clearly those things that are shared across cultures. I'd also suggest trying to get outside of your comfort zone.