Learning from, Understanding, and Supporting DevOps Artifacts for DockerTechnical
With the growing use of DevOps tools and frameworks, there is an increased need for tools and techniques that support \emph{more than code}. The current state-of-the-art in static developer assistance for tools like Docker is limited to shallow syntactic validation. We identify three core challenges in the realm of learning from, understanding, and supporting developers writing DevOps artifacts: (i) nested languages in DevOps artifacts, (ii) rule mining, and (iii) the lack of semantic rule-based analysis. To address these challenges we introduce a toolset, binnacle, that enabled us to ingest 900,000 GitHub repositories.
Focusing on Docker, we extracted approximately 219,000 Dockerfiles, and also identified a Gold Set of Dockerfiles written by Docker experts. We addressed challenge (i) by reducing the number of effectively uninterpretable nodes in our ASTs by over 80% via a technique we call \emph{phased parsing}. To address challenge (ii), we introduced a novel rule-mining technique capable of recovering two-thirds of the rules in a benchmark we curated. Through this automated mining, we were able to recover 16 new rules that were not found during manual rule collection. To address challenge (iii), we manually collected a set of rules for Dockerfiles from commits to the files in the Gold Set. These rules encapsulate best practices, avoid docker build failures, and improve image size and build latency. We created an analyzer that used these rules, and found that, on average, Dockerfiles on GitHub violated the rules \emph{six times more frequently} than the Dockerfiles in our Gold Set. We also found that industrial Dockerfiles fared no better than those sourced from GitHub.
The learned rules and analyzer in binnacle can be used to aid developers in the IDE when creating Dockerfiles, and in a post-hoc fashion to identify issues in, and to improve, existing Dockerfiles.
Wed 8 JulDisplayed time zone: (UTC) Coordinated Universal Time change
16:05 - 17:05 | A12-TestingJournal First / New Ideas and Emerging Results / Demonstrations / Technical Papers at Silla Chair(s): Sasa Misailovic University of Illinois at Urbana-Champaign | ||
16:05 12mTalk | Practical Fault Detection in Puppet ProgramsTechnical Technical Papers Thodoris Sotiropoulos Athens University of Economics and Business, Dimitris Mitropoulos Athens University of Economics and Business, Diomidis Spinellis Athens University of Economics and Business | ||
16:17 8mTalk | Empirical Assessment of Multimorphic TestingJ1 Journal First Paul Temple PReCISE, NaDi, UNamur, Mathieu Acher (Univ Rennes, Inria, IRISA), Jean-Marc Jézéquel Univ Rennes - IRISA | ||
16:25 3mTalk | RTj: a Java framework for detecting and refactoring rotten green test casesDemo Demonstrations Matias Martinez Université Polytechnique Hauts-de-France, Anne Etien Université de Lille, CNRS, Inria, Centrale Lille, UMR 9189 –CRIStAL, Stéphane Ducasse INRIA Lille, Christopher Fuhrman École de technologie supérieure Pre-print Media Attached | ||
16:28 6mTalk | A Container-Based Infrastructure for Fuzzy-Driven Root Causing of Flaky TestsNIER New Ideas and Emerging Results Valerio Terragni Università della Svizzera Italiana, Pasquale Salza University of Zurich, Filomena Ferrucci University of Salerno Pre-print Media Attached | ||
16:34 12mTalk | Learning from, Understanding, and Supporting DevOps Artifacts for DockerTechnical Technical Papers Jordan Henkel University of Wisconsin–Madison, Christian Bird Microsoft Research, Shuvendu K. Lahiri Microsoft Research, Thomas Reps University of Wisconsin-Madison, USA | ||
16:46 8mTalk | Improving Change Prediction Models with Code Smell-Related InformationJ1 Journal First Gemma Catolino Delft University of Technology, Fabio Palomba University of Salerno, Francesca Arcelli Fontana University of Milano-Bicocca, Andrea De Lucia University of Salerno, Andy Zaidman TU Delft, Filomena Ferrucci University of Salerno DOI Pre-print | ||
16:54 3mTalk | SMRL: A Metamorphic Security Testing Tool for Web SystemsDemo Demonstrations Phu X. Mai University of Luxembourg, Arda Goknil SnT, University of Luxembourg, Fabrizio Pastore University of Luxembourg, Lionel C. Briand SnT Centre/University of Luxembourg |