Write a Blog >>
ICSE 2020
Wed 24 June - Thu 16 July 2020
Tue 7 Jul 2020 15:00 - 15:12 at Goguryeo - A2-Testing and Debugging 1 Chair(s): Na Meng

Software logging is widely used in practice. Logs have been used for a variety of purposes like debugging, monitoring, security compliance, and business analytics. Instead of directly invoking the standard output functions, developers usually prefer to use logging utilities (LUs) (e.g., SLF4J), which provide additional functionalities like thread-safety and verbosity level support, to instrument their source code. Many of the previous research works on software logging are focused on the log printing code. There are very few works studying the use of LUs, although new LUs are constantly being introduced by companies and researchers. In this paper, we conducted a large-scale empirical study on the use of Java LUs in the wild. We analyzed the use of $3,856$ LUs from $11,194$ projects in GitHub and found that many projects have complex usage patterns for LUs. For example, 75.8% of the \emph{large}-sized projects have implemented their own LUs in their projects. More than 50% of these projects use at least three LUs. We conducted further qualitative studies to better understand and characterize the complex use of LUs. Our findings show that different LUs are used for a variety of reasons (e.g., internationalization of the log messages). Some projects develop their own LUs to satisfy project-specific logging needs (e.g., defining the logging format). Multiple uses of LUs in one project are pretty common for \emph{large} and \emph{very large}-sized projects mainly for context like enabling and configuring the logging behavior for the imported packages. Interviewing with 13 industrial developers showed that our findings are also generally true for industrial projects and are considered as very helpful for them to better configure and manage the logging behavior for their projects.

Tue 7 Jul

Displayed time zone: (UTC) Coordinated Universal Time change

15:00 - 16:00
15:00
12m
Talk
Studying the Use of Java Logging Utilities in the WildTechnical
Technical Papers
Boyuan Chen York University, Zhen Ming (Jack) Jiang York University
Authorizer link Pre-print
15:12
12m
Talk
Causal Testing: Understanding Defects' Root CausesACM SIGSOFT Distinguished Artifact AwardsArtifact ReusableTechnicalArtifact Available
Technical Papers
Brittany Johnson University of Massachusetts Amherst, Yuriy Brun University of Massachusetts Amherst, Alexandra Meliou University of Massachusetts Amherst
Link to publication DOI Pre-print Media Attached
15:24
8m
Talk
Studying the Characteristics of Logging Practices in Mobile Apps: A Case Study on F-Droid.J1
Journal First
Yi Zeng Concordia University, Jinfu Chen Concordia University, Canada, Weiyi Shang Concordia University, Tse-Hsun (Peter) Chen Concordia University
Authorizer link Pre-print
15:32
6m
Talk
Automatically Predicting Bug Severity Early in the Development ProcessNIER
New Ideas and Emerging Results
Jude Arokiam Ontario Tech University, Jeremy Bradbury Ontario Tech University
15:38
8m
Talk
A Survey on Adaptive Random TestingJ1
Journal First
Rubing Huang Jiangsu University, Weifeng Sun Jiangsu University, Yinyin Xu Jiangsu University, Haibo Chen Jiangsu University, Dave Towey University of Nottingham Ningbo China, Xin Xia Monash University
15:46
12m
Talk
Code Level Model-Checking in the Software Development WorkflowArtifact ReusableArtifact AvailableSEIP
Software Engineering in Practice
Nathan Chong Amazon, Byron Cook Amazon, Konstantinos Kallas University of Pennsylvania, Kareem Khazem Amazon, Felipe R. Monteiro Amazon, Daniel Schwartz-Narbonne Amazon, n.n., Serdar Tasiran Amazon, n.n., Michael Tautschnig Amazon Web Services, Mark R. Tuttle Amazon
Pre-print Media Attached