אלעד נחמיאס, הרצאה סמינריונית למגיסטר
יום ראשון, 8.8.2021, 11:00
Despite significant progress in software testing and verification, some undesired behaviors inevitably make their way to production. It is therefore common practice to interleave logging operations into modern software. Logging operations store information about the program's execution to help debugging and diagnosing problems. Usually, the programmer decides what parts of the program's state to log. This work aims to automatically complete logging operations in a given program based on learning from logging operations in other programs. Technically, we address the problem of predicting which variables to log at a given logging insertion point within the input program. This task arises challenges like following complicated semantic relations, which are long-range scattered over lengthy procedures. Our solution is based on recently studied deep-learning techniques from the scope of similar programming-related tasks. We suggest a novel modeling approach that involves both semantic characteristics, modeled by paths in the control-flow graph (CFG), and syntactic characteristics modeled by paths in the abstract syntax tree (AST). Our work is the first to leverage the effective paths-based modeling approach for both semantic and syntactic relations. We compare our approach to a wide variety of other known representations. Our experiments show that our model is more scalable and effective than the other methods.