ESEC/FSE 2017- Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Invited Papers

The rising tide lifts all boats: the advancement of science in cyber security (invited talk)

Verifying the forecast: how climate models are developed and tested (invited talk)

Software engineering research results in industrial practice: a tale of two projects (invited talk)

Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award)

SESSION: Research Papers

A fast causal profiler for task parallel programs

On the scalability of Linux kernel maintainers' work

Modeling and verification of evolving cyber-physical spaces

Easy over hard: a case study on deep learning

Finding near-optimal configurations in product lines by random sampling

Revisiting unsupervised learning for defect prediction

Loopster: static loop termination analysis


The power of "why" and "why not": enriching scenario exploration with provenance

Where is the bug and how is it fixed? an experiment with practitioners

Understanding misunderstandings in source code

Measuring neural efficiency of program comprehension

Bayesian specification learning for finding API usage errors

Synergistic debug-repair of heap manipulations

Failure-directed program trimming

Why modern open source projects fail

Trade-offs in continuous integration: assurance, security, and flexibility

┬ÁDroid: an energy-aware mutation testing framework for Android

PATDroid: permission-aware GUI testing of Android

Enabling mutation testing for Android apps

Guided, stochastic model-based GUI testing of Android apps

Using bad learners to find good configurations

Attributed variability models: outside the comfort zone

Kmax: finding all configurations of Kbuild makefiles statically

Is there a mismatch between real-world feature models and product-line research?

Adaptively generating high quality fixes for atomicity violations

AtexRace: across thread and execution sampling for in-house race detection

Symbolic execution of programmable logic controller code

Thread-modular static analysis for relaxed memory models

ARTINALI: dynamic invariant detection for cyber-physical system security

A symbolic justice violations transition system for unrealizable GR(1) specifications

Automated control of multiple software goals using multiple actuators

Why do developers use trivial packages? an empirical case study on npm

Detecting missing information in bug descriptions

Continuous variable-specific resolutions of feature interactions

Model-level, platform-independent debugging in the context of the model-driven development of real-time systems

Cooperative kernels: GPU multitasking for blocking algorithms

Toward full elasticity in distributed static analysis: the case of callgraph analysis

Probabilistic model checking of perturbed MDPs with applications to cloud computing

Understanding the impact of refactoring on smells: a longitudinal study of 23 software projects

Cimplifier: automatically debloating containers

Craig vs. Newton in software model checking

Fairness testing: testing software for discrimination

The care and feeding of wild-caught mutants

QTEP: quality-aware test case prioritization

Constraint normalization and parameterized caching for quantitative program analysis

Generalized observational slicing for tree-represented modelling languages

On evidence preservation requirements for forensic-ready systems

BDCI: behavioral driven conflict identification

NoFAQ: synthesizing command repairs from examples

S3: syntax- and semantic-guided repair synthesis via programming by examples

Counterexample-guided approach to finding numerical invariants

Discovering relational specifications

Steelix: program-state based binary fuzzing

CodeMatch: obfuscation won't conceal your repackaged app

A compiler and verifier for page access oblivious computation

Automatic generation of inter-component communication exploits for Android applications

OASIS: prioritizing static analysis warnings for Android apps based on app user reviews

Recovering clear, natural identifiers from obfuscated JS names

DESCRY: reproducing system-level concurrency failures

Reproducing concurrency failures from crash stacks

Automatically analyzing groups of crashes for finding correlations

Automatic inference of code transforms for patch generation

A feasibility study of using automated program repair for introductory programming assignments

Automatically diagnosing and repairing error handling bugs in C

Are deep neural networks the best choice for modeling source code?

Understanding the impact of support for iteration on code search

LAMP: data provenance for graph based machine learning algorithms through derivative computation

More accurate recommendations for method-level changes

Regression test selection across JVM boundaries

Measuring the cost of regression testing in practice: a study of Java projects using continuous integration

Better test cases for better automated program repair

SESSION: Testing and Security in the Real World

When program analysis meets mobile security: an industrial study of misusing Android internet sockets

File-level vs. module-level regression test selection for .NET

Record and replay for Android: are we there yet in industrial cases?

Model-driven software engineering in practice: privacy-enhanced filtering of network traffic

SESSION: The State of the Practice

Strong agile metrics: mining log data to determine predictive power of software metrics for continuous delivery teams

Screening heuristics for project gating systems

Natural language querying in SAP-ERP platform

Serverless computing: economic and architectural impact

SESSION: Understanding Software Developers

What do software engineers care about? gaps between research and practice

Reference architectures and Scrum: friends or foes?

Guidelines for adopting frontend architectures and patterns in microservices-based systems

Improving understanding of dynamically typed software developed by agile practitioners

SESSION: Data-Driven Improvement

Automated identification of security issues from commit messages and bug reports

LaChouTi: kernel vulnerability responding framework for the fragmented Android devices

Applying deep learning based automatic bug triager to industrial projects

Static analysis for optimizing big data queries

Automated testing of hybrid Simulink/Stateflow controllers: industrial case studies

SESSION: Dynamic Analysis

QEMU-based framework for non-intrusive virtual machine instrumentation and introspection

RunDroid: recovering execution call graphs for Android applications

RGSE: a regular property guided symbolic executor for Java

A tool for automated reasoning about traces based on configurable formal semantics

VART: a tool for the automatic detection of regression faults


DynAlloy analyzer: a tool for the specification and analysis of alloy models with dynamic behaviour

From scenario modeling to scenario programming for reactive systems with dynamic topology

CLTSA: labelled transition system analyser with counting fluent support

The MONDO collaboration framework: secure collaborative modeling over existing version control systems

Model-based privacy and security analysis with CARiSMA


Cherry-picking of code commits in long-running, multi-release software

ARCC: assistant for repetitive code comprehension

JoanAudit: a tool for auditing common injection vulnerabilities

XSearch: a domain-specific cross-language relevant question retrieval tool

SESSION: Doctoral Symposium

Using search-based software engineering to handle the changes with uncertainties for self-adaptive systems

DRACO: discovering refactorings that improve architecture using fine-grained co-change dependencies

User- and analysis-driven context aware software development in mobile computing

Recommender system for model driven software development

On the similarity of software development documentation

Application of search-based software engineering methodologies for test suite optimization and evolution in mission critical mobile application development

Summarizing software engineering communication artifacts from different sources

Model-based dynamic software project scheduling

System performance optimization via design and configuration space exploration

SESSION: Student Research Competition

Suggesting meaningful variable names for decompiled code: a machine translation approach

Practical symbolic verification of regular properties

FOSS version differentiation as a benchmark for static analysis security testing tools

DecisionDroid: a supervised learning-based system to identify cloned Android applications

Reasons and drawbacks of using trivial npm packages: the developers' perspective

Detecting wearable app permission mismatches: a case study on Android wear

Automating traceability link recovery through classification

Improving performance of automatic program repair using learned heuristics