Inferring and Applying Def-Use Like Configuration Couplings in Deployment Descriptors
When building enterprise applications on Java frameworks (e.g., Spring), developers often specify components and configure operations with a special kind of XML files named “deployment descriptors (DD)”. Maintaining such XML files is challenging and time-consuming; because (1) the correct configuration semantics is domain-specific but usually vaguely documented, and (2) existing compilers and program analysis tools rarely examine XML files. To help developers ensure the quality of DD, this paper presents a novel approach—Xeditor—that extracts configuration couplings (i.e., frequently co-occurring configurations) from DD, and adopts the coupling rules to validate new or updated files.
Xeditor has two phases: coupling extraction and bug detection. To identify couplings, Xeditor first mines DD in open-source projects, and extracts XML entity pairs that (i) frequently co-exist in the same files and (ii) hold the same data at least once. Xeditor then conducts customized association rule mining based on the extracted pairs. For bug detection, given a program commit, Xeditor checks whether any new or updated XML file violates the identified couplings; if so, Xeditor reports the violation(s).
We applied Xeditor to 4,248 DD, which were mined from 1,137 GitHub projects. Based on our manual inspection, Xeditor extracted couplings with high precision (73%). Furthermore, we built a ground truth data set based on the manual inspection results, and conducted 10-fold cross validation to evaluate Xeditor ’s effectiveness of bug detection. On average, Xeditor detected bugs with 92% precision, 96% recall, and 94% accuracy. Finally, we applied Xeditor to the version history of another 478 GitHub projects. Xeditor identified 26 really erroneous XML updates, 15 of which match the program changes later committed by developers.
Wed 23 SepDisplayed time zone: (UTC) Coordinated Universal Time change
16:00 - 17:00 | Configuration Management (2)Research Papers at Koala Chair(s): Arie van Deursen Delft University of Technology, Netherlands | ||
16:00 20mTalk | Inferring and Applying Def-Use Like Configuration Couplings in Deployment Descriptors Research Papers Chengyuan Wen Virginia Tech, Yaxuan Zhang Virginia Tech, Xiao He University of Science and Technology Beijing, China, Na Meng Virginia Tech | ||
16:20 20mTalk | Mastering Uncertainty in Performance Estimations of Configurable Software Systems Research Papers Johannes Dorn Leipzig University, Sven Apel Saarland University, Germany, Norbert Siegmund Leipzig University DOI Pre-print | ||
16:40 20mTalk | Team Discussions and Dynamics During DevOps Tool Adoptions in OSS Projects Research Papers |