Seminars & Colloquia
Tao Xie
University of Washington
"Effectiveness of Automated Software Testing "
Monday March 21, 2005 10:00 AM
Location: 402-A, Withers Hall NCSU Historical Campus
(Visitor parking instructions)
Abstract: Software permeates many aspects of our life; thus, improving software reliability is becoming critical to society. Software testing is the most widely used method for improving software reliability; however, testing is quite expensive, and automated testing is important for reducing the laborious human effort in testing. This talk presents two approaches for improving effectiveness of automated software testing that have produced impact on industry: the Rostra approach for detecting redundant tests among generated tests and the Symstra approach for generating only non-redundant tests. Rostra develops a novel definition of redundant tests based on method inputs. Given a Java class and its generated test suite, a Rostra tool automatically detects and removes redundant tests from the test suite. Our results show that Rostra can detect a high percentage (about 90%) of redundant tests among tests generated by Parasoft Jtest 4.5, a commercial testing tool that is widely used in industry. Rostra can be incorporated by the existing test generation tools to avoid generating redundant tests in the first place. Symstra further improves the effectiveness of test generation by using symbolic execution. Symstra develops novel techniques for comparing symbolic states and pruning the exploration of object states without compromising the exhaustiveness of the exploration. Our results show that Symstra can effectively generate tests that achieve high structural coverage.
Short Bio: Tao Xie is a Ph.D. student in Computer Science and Engineering at the University of Washington, Seattle. He received a M.S. in Computer Science from Peking University, P.R. China and a B.S. in Computer Science from Fudan University, P.R. China. His research interest is software engineering, with an emphasis on techniques and tools for improving software reliability. He is interested especially in software testing and software verification, and broadly in mining of software engineering data, software visualization, program comprehension, software reuse, and software evolution.
Host: Ana Anton, Computer Science, NCSU