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.

Conference Day
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 ChenYork University, Zhen Ming (Jack) JiangYork University
Authorizer link Pre-print
15:12
12m
Talk
Causal Testing: Understanding Defects' Root CausesACM SIGSOFT Distinguished Artifact AwardsArtifact ReusableTechnicalArtifact Available
Technical Papers
Brittany JohnsonUniversity of Massachusetts Amherst, Yuriy BrunUniversity of Massachusetts Amherst, Alexandra MeliouUniversity 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 ZengConcordia University, Jinfu ChenConcordia University, Canada, Weiyi ShangConcordia University, Tse-Hsun (Peter) ChenConcordia University
Authorizer link Pre-print
15:32
6m
Talk
Automatically Predicting Bug Severity Early in the Development ProcessNIER
New Ideas and Emerging Results
Jude ArokiamOntario Tech University, Jeremy BradburyOntario Tech University
15:38
8m
Talk
A Survey on Adaptive Random TestingJ1
Journal First
Rubing HuangJiangsu University, Weifeng SunJiangsu University, Yinyin XuJiangsu University, Haibo ChenJiangsu University, Dave ToweyUniversity of Nottingham Ningbo China, Xin XiaMonash University
15:46
12m
Talk
Code Level Model-Checking in the Software Development WorkflowArtifact ReusableArtifact AvailableSEIP
Software Engineering in Practice
Nathan ChongAmazon, Byron CookAmazon, Konstantinos KallasUniversity of Pennsylvania, Kareem KhazemAmazon, Felipe R. MonteiroAmazon, Daniel Schwartz-NarbonneAmazon, n.n., Serdar TasiranAmazon, n.n., Michael TautschnigAmazon Web Services, Mark R. TuttleAmazon
Pre-print Media Attached