  Software developers study and reuse existing source code to understand how to
properly use application programming interfaces (APIs). However, manually
finding sufficient and adequate code examples for a given API is a difficult
and a time-consuming activity. Existing approaches to find or generate examples
assume availability of a reasonable set of client code that uses the API. This
assumption does not hold for newly released API libraries, non-widely used
APIs, nor private ones. In this work we reuse the important information that is
naturally present in test code to circumvent the lack of usage examples for an
API when other sources of client code are not available. We propose an approach
for automatically identifying the most representative API uses within each unit
test case. We then develop an approach to synthesize API usage examples by
extracting relevant statements representing the usage of such APIs. We compare
the output of a prototype implementation of our approach to both human-written
examples and to a state-of-the-art approach. The obtained results are
encouraging; the examples automatically generated with our approach are
superior to the state-of-the-art approach and highly similar to the manually
constructed examples.
