Abstract:This paper defines robustness based on a formal semantics of component system, and proposes a testing framework to detect robustness problems. The approach is implemented in a tool named RoTesCo (robustness testing for components). It traverses the state machine of the component under testing to generate paths, which cover all the transitions. Firstly, the call sequences following the paths drive the component to different states. Secondly, it feeds method calls with invalid parameters or inopportune calls to the component. The test oracle is automated by distinguishing different types of exceptions. RoTesCo is evaluated on a benchmark of real-world components from widely-used open source projects and it has produced encouraging results.