Automatically Identifying Sufficient Object Builders from Module APIs
Various approaches to software analysis require engineers to manually identify a subset of a module’s methods in order to drive the analysis. Given a module to be analyzed, engineers typically select a subset of its methods to be considered as object builders to define a so-called driver, that will be used to automatically build objects for analysis. This requires a careful inspection of the API, since both the exhaustiveness of the analysis (leaving important methods out may avoid generating relevant objects), as well as its efficiency, are affected by the selection.
We propose an approach for automatically selecting a set of builders from a module’s API, based on an evolutionary algorithm that favors sets of methods whose combinations lead to producing larger sets of objects.
An experimental assessment shows that our approach can automatically identify sufficient (can be used to create any instance of the module) and minimal (do not contain superfluous methods) sets of builders, in a reasonable time.