Like production code, test code needs to be maintained, understood, and adjusted upon changes to production code or requirements. Unclear distinction among setup, execution, and oracle parts in test code may obscure the intent of a test, which in turn can increase the maintenance cost. Except for commenting test code manually to mark each test part, there is no approach to distinguish test parts automatically.
In this project we aim at studying unit tested software systems to explore the relationship among the logical parts in a unit test case. The obtained knowledge will help us to develop a technique to identify these parts in test code automatically.