Test-case-based Code Navigation in Dynamically Typed Programming Languages
Gabriel Maier Fernandes Vidueiro Pereira, Ingrid Nunes, Marcelo Soares Pimenta · 2020
Providing useful support for developers to understand the source code in maintenance tasks is a challenge. It is even more complicated when dealing with dynamically typed languages, because data types are not explicitly specified. In particular, the construction of call graphs (CGs) is compromised, and they are the basis to build code navigation tools, which are essential for code understanding. To address this problem, we present a technique that leverages automated test cases to build CGs. The technique uses both static and dynamic information and includes offline and online stages to guarantee performance while developers are coding. Our technique is evaluated with developers of a proprietary project, which shows that it increases the precision of CGs.