| Title | Generating Method Sequences for Testing |
|---|---|
| Student | Mithun Puthige Acharya |
| Mentor | Corina Pasareanu |
| Abstract | |
|
An Object-oriented unit test tests a specific behavior of the class under test (CUT). A typical unit test consists of a unique method sequence followed by assert statements on the resulting object 'state'. The object state depends on the actual sequence of methods invoked in the unit test and the method arguments. The ability to detect faults in the CUT depends on the number of unique object states tested by the test-suite. In other words, redundant unit tests, incur additional analysis cost without improving the test suite's ability to
detect faults. I propose to implement techniques to generate method sequences for a given CUT. The first step in my implementation would use simple object-state matching to reduce redundancy in the generated method sequences [3]. Then I would like to explore and implement symbolic execution (with symbolic-state matching) and model-checking techniques to achieve higher coverage (predicate and block) for method sequences, with support for dynamically allocated structures, complex data structures and concurrency [1, 2, 4, 5]. References: [1] Willem Visser, Corina Pasareanu and Radek Pelanek, Test Input Generation for Java Containers using State Matching, ISSTA 2006. [2] Tao Xie, Darko Marinov, Wolfram Schulte, and David Notkin, Symstra: A Framework for Generating Object-Oriented Unit Tests using Symbolic Execution, TACAS 2005. [3] Tao Xie, Darko Marinov, and David Notkin, Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests, ASE 2004. [4] W. Visser, C. Pasareanu, S. Khurshid, Test Input Generation with Java PathFinder, ISSTA 2004. [5] S. Khurshid, C. Pasareanu, and W. Visser, Generalized symbolic execution for model checking and testing, TACAS 2003 |
|