ESEC/FSE 2015- Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering

Full Citation in the ACM Digital Library

SESSION: Adaptive Systems

Proactive self-adaptation under uncertainty: a probabilistic model checking approach

Automated multi-objective control for self-adaptive software design

Detecting event anomalies in event-based systems

SESSION: Software Quality

Suggesting accurate method and class names

Measure it? manage it? ignore it? software practitioners and technical debt

Automatically computing path complexity of programs

SESSION: Synthesis and Search-Based Approaches for Reactive Systems

Systematic testing of asynchronous reactive systems

Effective test suites for mixed discrete-continuous stateflow controllers

GR(1) synthesis for LTL specification patterns

SESSION: Testing I

Modeling readability to improve unit tests

Improving model-based test generation by model decomposition

Synthesizing tests for detecting atomicity violations

SESSION: Search-Based Approaches to Testing, Repair, and Energy Optimisation

Optimizing energy consumption of GUIs in Android apps: a multi-objective approach

Generating TCP/UDP network data for automated unit test generation

Staged program repair with condition synthesis

SESSION: Empirical Studies of Software Developers I

When, how, and why developers (do not) test in their IDEs

How developers search for code: a case study

Tracing software developers' eyes and interactions for change tasks


Assertions are strongly correlated with test suite effectiveness

Test report prioritization to assist crowdsourced testing

Comparing and combining test-suite reduction and regression test selection

SESSION: Security

Questions developers ask while diagnosing potential security vulnerabilities with static analysis

Quantifying developers' adoption of security tools

Auto-patching DOM-based XSS at scale

SESSION: Configurable Systems

Performance-influence models for highly configurable systems

Users beware: preference inconsistencies ahead

Hey, you have given me too many knobs!: understanding and dealing with over-designed configuration in system software

SESSION: Debugging

Crowd debugging

On the use of delta debugging to reduce recordings and facilitate debugging of web applications

MemInsight: platform-independent memory debugging for JavaScript

SESSION: Web Applications

JITProf: pinpointing JIT-unfriendly JavaScript code

Cross-language program slicing for dynamic web applications

Detecting JavaScript races that matter

SESSION: Studies of Software Engineering Research and Practice

The making of cloud applications: an empirical study on software development for the cloud

An empirical study of goto in C code from GitHub repositories

How practitioners perceive the relevance of software engineering research

SESSION: Concurrency

What change history tells us about thread synchronization

Finding schedule-sensitive branches

Effective and precise dynamic detection of hidden races for Java programs

SESSION: Program Analysis I

A user-guided approach to program analysis

Hidden truths in dead software paths

P3: partitioned path profiling

SESSION: Prediction and Recommendation

Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning

Heterogeneous defect prediction

Clone-based and interactive recommendation for modifying pasted code

SESSION: Program Repair

Is the cure worse than the disease? overfitting in automated program repair

Responsive designs in a snap

CLOTHO: saving programs from malformed strings and incorrect string-handling

SESSION: Information Retrieval

Query-based configuration of text retrieval solutions for software engineering tasks

Information retrieval and spectrum based bug localization: better together

Rule-based extraction of goal-use case models from text

SESSION: Program Analysis II

Symbolic execution of programs with heap inputs

Automatically deriving pointer reference expressions from binary code for memory dump analysis

SESSION: Measurement and Metric

Summarizing and measuring development activity

A method to identify and correct problematic software activity data: exploiting capacity constraints and data redundancies

SESSION: Patterns and Coding Convention

Gamification for enforcing coding conventions

SESSION: Mobile Applications

String analysis for Java and Android applications

Auto-completing bug reports for Android applications

CLAPP: characterizing loops in Android applications

SESSION: Search, Synthesis, and Verification

TLV: abstraction through testing, learning, and validation

Mimic: computing models for opaque code

Witness validation and stepwise testification across software verifiers

SESSION: Java and Object-Oriented Programming

Efficient and reasonable object-oriented concurrency

FlexJava: language support for safe and modular approximate programming

Getting to know you: towards a capability model for Java


Efficient dependency detection for safe Java test acceleration

Turning programs against each other: high coverage fuzz-testing using binary-code mutation and dynamic slicing

Guided differential testing of certificate validation in SSL/TLS implementations

SESSION: Empirical Studies of Software Developers II

Quality and productivity outcomes relating to continuous integration in GitHub

Developer onboarding in GitHub: the role of prior social links and language experience

Impact of developer turnover on quality in open-source software

SESSION: Symbolic Execution

MultiSE: multi-path symbolic execution using value summaries

Assertion guided symbolic execution of multithreaded programs

Iterative distribution-aware sampling for probabilistic symbolic execution

SESSION: Human Aspects of Software Engineering

Bespoke tools: adapted to the concepts developers know

I heart hacker news: expanding qualitative research findings by analyzing social news websites

GitSonifier: using sound to portray developer conflict history

Automatically recommending test code examples to inexperienced developers

Using software theater for the demonstration of innovative ubiquitous applications

SESSION: Validation, Verification, and Testing

Behavioral log analysis with statistical guarantees

Inner oracles: input-specific assertions on internal states

Targeted program transformations for symbolic execution

Crash reproduction via test case mutation: let existing test cases help

RDIT: race detection from incomplete traces

SESSION: Maintenance and Evolution

TACO: test suite augmentation for concurrent programs

Navigating through the archipelago of refactorings

Detecting semantic merge conflicts with variability-aware execution

Product lines can jeopardize their trade secrets

SESSION: Tool Demonstrations

JSketch: sketching for Java

Don't panic: reverse debugging of kernel drivers

UMTG: a toolset to automatically generate system test cases from use case specifications

DexterJS: robust testing platform for DOM-based XSS vulnerabilities

T3i: a tool for generating and querying test suites for Java

iTrace: enabling eye tracking on software artifacts within the IDE to support software engineering tasks

Nyx: a display energy optimizer for mobile web apps

NARCIA: an automated tool for change impact analysis in natural language requirements

Commit guru: analytics and risk prediction of software commits

OSSMETER: a software measurement platform for automatically analysing open source software projects

Comprehensive service matching with MatchBox

UEDashboard: awareness of unusual events in commit histories

MatrixMiner: a red pill to architect informal product descriptions in the matrix

SESSION: Quality

Predicting field reliability

REMI: defect prediction for efficient API testing

OnSpot system: test impact visibility during code edits in real software

SESSION: Software Process

Products, developers, and milestones: how should I build my n-gram language model

Evaluating a formal scenario-based method for the requirements analysis in automotive software engineering

Barriers and enablers for shortening software development lead-time in mechatronics organizations: a case study

SESSION: Requirements and Specification

Semantic degrees for industrie 4.0 engineering: deciding on the degree of semantic formalization to select appropriate technologies

Towards automating the security compliance value chain

Requirements, architecture, and quality in a mission critical system: 12 lessons learned

SESSION: Doctoral Symposium

Decentralized self-adaptation in large-scale distributed systems

Vehicle level continuous integration in the automotive industry

Quantifying architectural debts

User-centric security: optimization of the security-usability trade-off

Automated unit test generation for evolving software

SESSION: Student Research Competition

Increasing the efficiency of search-based unit test generation using parameter control

Enhancing Android application bug reporting

Improving energy consumption in Android apps

Automated generation of programming language quizzes

Spotting familiar code snippet structures for program comprehension

Combining eye tracking with navigation paths for identification of cross-language code dependencies

A textual domain specific language for requirement modelling

Automated attack surface approximation

Pockets: a tool to support exploratory programming for novices and educators