Write a Blog >>
ICSE 2020
Wed 24 June - Thu 16 July 2020
Thu 9 Jul 2020 08:41 - 08:49 at Baekje - I16-Testing and Debugging 2 Chair(s): Rui Abreu

Developers usually depend on inserting logging statements into the source code to collect system runtime information. Such logged information is valuable for software maintenance. A logging statement usually prints one or more variables to record vital system status. However, due to the lack of rigorous logging guidance and the requirement of domain-specific knowledge, it is not easy for developers to make proper decisions about which variables to log. To address this need, in this paper [1], we propose an approach to recommend logging variables for developers during development by learning from existing logging statements. Different from other prediction tasks in software engineering, this task has two challenges: 1) Dynamic labels – different logging statements have different sets of accessible variables, which means in this task, the set of possible labels of each sample is not the same. 2) Out-of-vocabulary words – identifiers’ names are not limited to natural language words and the test set usually contains a number of program tokens which are out of the vocabulary built from the training set and cannot be appropriately mapped to word embeddings. To deal with the first challenge, we convert this task into a representation learning problem instead of a multi-label classification problem. Given a code snippet which lacks a logging statement, our approach first leverages a neural network with an RNN (recurrent neural network) layer and a self-attention layer to learn the proper representation of each program token, and then predicts whether each token should be logged through a unified binary classifier based on the learned representation. To handle the second challenge, we propose a novel method to map program tokens into word embeddings by making use of the pre-trained word embeddings of natural language tokens. We evaluate our approach on 9 large and high-quality Java projects. Our evaluation results show that the average MAP of our approach is over 0.84, outperforming random guess and an information-retrieval-based method by large margins.

Thu 9 Jul
Times are displayed in time zone: (UTC) Coordinated Universal Time change

08:05 - 09:05: Paper Presentations - I16-Testing and Debugging 2 at Baekje
Chair(s): Rui AbreuInstituto Superior Técnico, U. Lisboa & INESC-ID
icse-2020-papers08:05 - 08:17
Yan CaiInstitute of Software, Chinese Academy of Sciences, Ruijie MengUniversity of Chinese Academy of Sciences, Jens PalsbergUniversity of California, Los Angeles
icse-2020-Journal-First08:17 - 08:25
Masanari KondoKyoto Institute of Technology, Cor-Paul BezemerUniversity of Alberta, Canada, Yasutaka KameiKyushu University, Ahmed E. HassanQueen's University, Osamu MizunoKyoto Institute of Technology
icse-2020-Journal-First08:25 - 08:33
Jirayus JiarpakdeeMonash University, Australia, Chakkrit (Kla) TantithamthavornMonash University, Australia, Ahmed E. HassanQueen's University
icse-2020-Journal-First08:33 - 08:41
Yuanrui FanZhejiang University, Xin XiaMonash University, Daniel Alencar Da CostaUniversity of Otago, David LoSingapore Management University, Ahmed E. HassanQueen's University, Shanping LiZhejiang University
icse-2020-Journal-First08:41 - 08:49
Zhongxin LiuZhejiang University, Xin XiaMonash University, David LoSingapore Management University, Zhenchang XingAustralia National University, Ahmed E. HassanQueen's University, Shanping LiZhejiang University
icse-2020-papers08:49 - 09:01
Ke LiUniversity of Exeter, Zilin XiangUniversity of Electronic Science and Technology of China, Tao ChenLoughborough University, Shuo Wang, Kay Chen TanCity University of Hong Kong