Reusable software: the Base object-oriented component libraries
Reusable software: the Base object-oriented component libraries
Specifying the mode logic of a flight guidance system in CoRE and SCR
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Tools and Techniques for Java API Testing
ASWEC '00 Proceedings of the 2000 Australian Software Engineering Conference
Theories of Program Testing and the Application of Revealing Subdomains
IEEE Transactions on Software Engineering
A Domain Strategy for Computer Program Testing
IEEE Transactions on Software Engineering
Partition Analysis: A Method Combining Testing and Verification
IEEE Transactions on Software Engineering
A framework for table driven testing of Java classes
Software—Practice & Experience
A Concurrency Test Tool for Java Monitors
Proceedings of the 16th IEEE international conference on Automated software engineering
Test-driven specification: paradigm and automation
Proceedings of the 44th annual Southeast regional conference
Hi-index | 0.00 |
The rise of component-based software development has created a need for API documentation. Experience has shown that it is hard to create and maintain precise and readable documentation. Prose documentation can provide a good overview but lacks precision. Formal methods offer precision but the resulting documentation is expensive to write and modify. Worse, few developers have the skill or inclination to read formal documentation.We present a pragmatic solution to the problem of API documentation. We augment the current prose documentation with test cases, including expected outputs, and use the prose plus the test cases as the documentation. Typically, there are one or two simple test cases for each likely question about API behavior. With this approach, the documentation is precise, albeit partial. Consistency between code and documentation is guaranteed by running the test cases. The readability of the test cases is of paramount importance because communication with API users is their primary purpose. We present a test script language that supports compact, readable test cases and generation of test drivers, and illustrate the approach with a detailed case study.