English

Documenting API Input/Output Examples

Software Engineering 2018-08-21 v2

Abstract

When learning to use an Application Programming Interface (API), programmers need to understand the inputs and outputs (I/O) of the API functions. Current documentation tools automatically document the static information of I/O, such as parameter types and names. What is missing from these tools is dynamic information, such as I/O examples---actual valid values of inputs that produce certain outputs. In this paper, we demonstrate a prototype toolset we built to generate I/O examples. Our tool logs I/O values when API functions are executed, for example in running test suites. Then, the tool puts I/O values into API documents as I/O examples. Our tool has three programs: 1) funcWatch, which collects I/O values when API developers run test suites, 2) ioSelect, which selects one I/O example from a set of I/O values, and 3) ioPresent, which embeds the I/O examples into documents. In a preliminary evaluation, we used our tool to generate four hundred I/O examples for three C libraries: ffmpeg, libssh, and protobuf-c.

Keywords

Cite

@article{arxiv.1703.09613,
  title  = {Documenting API Input/Output Examples},
  author = {Siyuan Jiang and Ameer Armaly and Collin McMillan and Qiyu Zhi and Ronald Metoyer},
  journal= {arXiv preprint arXiv:1703.09613},
  year   = {2018}
}

Comments

4 pages, accepted in ICPC 2017 Tool Demo Track