Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Mining unit tests for discovery and migration of math APIs
Santhiar A., Pandita O., Kanade A. ACM Transactions on Software Engineering and Methodology24 (1):1-33,2014.Type:Article
Date Reviewed: Dec 2 2014

Unit tests are not just about testing [1]. A unit test is a piece of code that executes a part of a program (the unit) and checks to see if it worked. Therefore, the test documents a way to use the unit. Two teams (at least) are independently exploring ways to use this information.

This paper shows how a tool (MathFinder) can use unit tests to help a programmer select a math library suitable for an algorithm. Once selected, the tool proposes detailed code for the algorithm using the library’s application programming interface (API). The paper describes experiments that show how a typical maintenance project within a Java/JUnit/Eclipse plus Scilab environment is done faster when programmers use MathFinder. The results may generalize to other environments. The key idea is to specify requirements as unit tests for a very high-level interpreted language, and secondly, as queries to search an index of unit tests in a lower-level language plus API. MathFinder acts as a partial compiler and produces a list of possible sequences of function calls that pass the tests. Apparently, 90 percent of the time the top of the list is a suitable piece of code to implement the given algorithm.

This is a typical research paper in the software engineering field and will interest fellow researchers. Meanwhile, a quarter of the way round the world, another team [2] (not referred to here) is also starting to mine unit tests to recommend code to programmers.

Reviewer:  Richard Botting Review #: CR142978 (1503-0230)
1) Beck, K. Aim, fire. IEEE Software 18 (2001), 87–89.
2) Ghafari, M.; Ghezzi, C.; Mocci, A.; Tamburrelli, G. Mining unit tests for code recommendation. In Proceedings of the 22nd International Conference on Program Comprehension. ACM, 2014, 142–145.
Bookmark and Share
  Featured Reviewer  
 
Computer-Aided Software Engineering (CASE) (D.2.2 ... )
 
 
Distribution, Maintenance, and Enhancement (D.2.7 )
 
 
Reusable Software (D.2.13 )
 
Would you recommend this review?
yes
no
Other reviews under "Computer-Aided Software Engineering (CASE)": Date
CASE: computer-aided software engineering
Lewis T., Van Nostrand Reinhold Co., New York, NY, 1991. Type: Book (9780442003616)
Jul 1 1991
AD/Cycle
Montgomery S., Van Nostrand Reinhold Co., New York, NY, 1991. Type: Book (9780442308254)
Sep 1 1992
The three Rs of software automation
McClure C., Prentice-Hall, Inc., Upper Saddle River, NJ, 1992. Type: Book (9780139152405)
Jul 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy