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

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

  • Gabriel A. Moreno
  • Javier Cámara
  • David Garlan
  • Bradley Schmerl

Automated multi-objective control for self-adaptive software design

  • Antonio Filieri
  • Henry Hoffmann
  • Martina Maggio

Detecting event anomalies in event-based systems

  • Gholamreza Safi
  • Arman Shahbazian
  • William G. J. Halfond
  • Nenad Medvidovic

SESSION: Software Quality

Suggesting accurate method and class names

  • Miltiadis Allamanis
  • Earl T. Barr
  • Christian Bird
  • Charles Sutton

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

  • Neil A. Ernst
  • Stephany Bellomo
  • Ipek Ozkaya
  • Robert L. Nord
  • Ian Gorton

Automatically computing path complexity of programs

  • Lucas Bang
  • Abdulbaki Aydin
  • Tevfik Bultan

SESSION: Synthesis and Search-Based Approaches for Reactive Systems

Systematic testing of asynchronous reactive systems

  • Ankush Desai
  • Shaz Qadeer
  • Sanjit A. Seshia

Effective test suites for mixed discrete-continuous stateflow controllers

  • Reza Matinnejad
  • Shiva Nejati
  • Lionel C. Briand
  • Thomas Bruckmann

GR(1) synthesis for LTL specification patterns

  • Shahar Maoz
  • Jan Oliver Ringert

SESSION: Testing I

Modeling readability to improve unit tests

  • Ermira Daka
  • José Campos
  • Gordon Fraser
  • Jonathan Dorn
  • Westley Weimer

Improving model-based test generation by model decomposition

  • Paolo Arcaini
  • Angelo Gargantini
  • Elvinia Riccobene

Synthesizing tests for detecting atomicity violations

  • Malavika Samak
  • Murali Krishna Ramanathan

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

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

  • Mario Linares-Vásquez
  • Gabriele Bavota
  • Carlos Eduardo Bernal Cárdenas
  • Rocco Oliveto
  • Massimiliano Di Penta
  • Denys Poshyvanyk

Generating TCP/UDP network data for automated unit test generation

  • Andrea Arcuri
  • Gordon Fraser
  • Juan Pablo Galeotti

Staged program repair with condition synthesis

  • Fan Long
  • Martin Rinard

SESSION: Empirical Studies of Software Developers I

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

  • Moritz Beller
  • Georgios Gousios
  • Annibale Panichella
  • Andy Zaidman

How developers search for code: a case study

  • Caitlin Sadowski
  • Kathryn T. Stolee
  • Sebastian Elbaum

Tracing software developers' eyes and interactions for change tasks

  • Katja Kevic
  • Braden M. Walters
  • Timothy R. Shaffer
  • Bonita Sharif
  • David C. Shepherd
  • Thomas Fritz

SESSION: Testing II

Assertions are strongly correlated with test suite effectiveness

  • Yucheng Zhang
  • Ali Mesbah

Test report prioritization to assist crowdsourced testing

  • Yang Feng
  • Zhenyu Chen
  • James A. Jones
  • Chunrong Fang
  • Baowen Xu

Comparing and combining test-suite reduction and regression test selection

  • August Shi
  • Tifany Yung
  • Alex Gyori
  • Darko Marinov

SESSION: Security

Questions developers ask while diagnosing potential security vulnerabilities with static analysis

  • Justin Smith
  • Brittany Johnson
  • Emerson Murphy-Hill
  • Bill Chu
  • Heather Richter Lipford

Quantifying developers' adoption of security tools

  • Jim Witschey
  • Olga Zielinska
  • Allaire Welk
  • Emerson Murphy-Hill
  • Chris Mayhorn
  • Thomas Zimmermann

Auto-patching DOM-based XSS at scale

  • Inian Parameshwaran
  • Enrico Budianto
  • Shweta Shinde
  • Hung Dang
  • Atul Sadhu
  • Prateek Saxena

SESSION: Configurable Systems

Performance-influence models for highly configurable systems

  • Norbert Siegmund
  • Alexander Grebhahn
  • Sven Apel
  • Christian Kästner

Users beware: preference inconsistencies ahead

  • Farnaz Behrang
  • Myra B. Cohen
  • Alessandro Orso

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

  • Tianyin Xu
  • Long Jin
  • Xuepeng Fan
  • Yuanyuan Zhou
  • Shankar Pasupathy
  • Rukma Talwadker

SESSION: Debugging

Crowd debugging

  • Fuxiang Chen
  • Sunghun Kim

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

  • Mouna Hammoudi
  • Brian Burg
  • Gigon Bae
  • Gregg Rothermel

MemInsight: platform-independent memory debugging for JavaScript

  • Simon Holm Jensen
  • Manu Sridharan
  • Koushik Sen
  • Satish Chandra

SESSION: Web Applications

JITProf: pinpointing JIT-unfriendly JavaScript code

  • Liang Gong
  • Michael Pradel
  • Koushik Sen

Cross-language program slicing for dynamic web applications

  • Hung Viet Nguyen
  • Christian Kästner
  • Tien N. Nguyen

Detecting JavaScript races that matter

  • Erdal Mutlu
  • Serdar Tasiran
  • Benjamin Livshits

SESSION: Studies of Software Engineering Research and Practice

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

  • Jürgen Cito
  • Philipp Leitner
  • Thomas Fritz
  • Harald C. Gall

An empirical study of goto in C code from GitHub repositories

  • Meiyappan Nagappan
  • Romain Robbes
  • Yasutaka Kamei
  • Éric Tanter
  • Shane McIntosh
  • Audris Mockus
  • Ahmed E. Hassan

How practitioners perceive the relevance of software engineering research

  • David Lo
  • Nachiappan Nagappan
  • Thomas Zimmermann

SESSION: Concurrency

What change history tells us about thread synchronization

  • Rui Gu
  • Guoliang Jin
  • Linhai Song
  • Linjie Zhu
  • Shan Lu

Finding schedule-sensitive branches

  • Jeff Huang
  • Lawrence Rauchwerger

Effective and precise dynamic detection of hidden races for Java programs

  • Yan Cai
  • Lingwei Cao

SESSION: Program Analysis I

A user-guided approach to program analysis

  • Ravi Mangal
  • Xin Zhang
  • Aditya V. Nori
  • Mayur Naik

Hidden truths in dead software paths

  • Michael Eichberg
  • Ben Hermann
  • Mira Mezini
  • Leonid Glanz

P3: partitioned path profiling

  • Mohammed Afraz
  • Diptikalyan Saha
  • Aditya Kanade

SESSION: Prediction and Recommendation

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

  • Xiaoyuan Jing
  • Fei Wu
  • Xiwei Dong
  • Fumin Qi
  • Baowen Xu

Heterogeneous defect prediction

  • Jaechang Nam
  • Sunghun Kim

Clone-based and interactive recommendation for modifying pasted code

  • Yun Lin
  • Xin Peng
  • Zhenchang Xing
  • Diwen Zheng
  • Wenyun Zhao

SESSION: Program Repair

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

  • Edward K. Smith
  • Earl T. Barr
  • Claire Le Goues
  • Yuriy Brun

Responsive designs in a snap

  • Nishant Sinha
  • Rezwana Karim

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

  • Aritra Dhar
  • Rahul Purandare
  • Mohan Dhawan
  • Suresh Rangaswamy

SESSION: Information Retrieval

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

  • Laura Moreno
  • Gabriele Bavota
  • Sonia Haiduc
  • Massimiliano Di Penta
  • Rocco Oliveto
  • Barbara Russo
  • Andrian Marcus

Information retrieval and spectrum based bug localization: better together

  • Tien-Duy B. Le
  • Richard J. Oentaryo
  • David Lo

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

  • Tuong Huan Nguyen
  • John Grundy
  • Mohamed Almorsy

SESSION: Program Analysis II

Symbolic execution of programs with heap inputs

  • Pietro Braione
  • Giovanni Denaro
  • Mauro Pezzè

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

  • Yangchun Fu
  • Zhiqiang Lin
  • David Brumley

SESSION: Measurement and Metric

Summarizing and measuring development activity

  • Christoph Treude
  • Fernando Figueira Filho
  • Uirá Kulesza

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

  • Qimu Zheng
  • Audris Mockus
  • Minghui Zhou

SESSION: Patterns and Coding Convention

Gamification for enforcing coding conventions

  • Christian R. Prause
  • Matthias Jarke

SESSION: Mobile Applications

String analysis for Java and Android applications

  • Ding Li
  • Yingjun Lyu
  • Mian Wan
  • William G. J. Halfond

Auto-completing bug reports for Android applications

  • Kevin Moran
  • Mario Linares-Vásquez
  • Carlos Bernal-Cárdenas
  • Denys Poshyvanyk

CLAPP: characterizing loops in Android applications

  • Yanick Fratantonio
  • Aravind Machiry
  • Antonio Bianchi
  • Christopher Kruegel
  • Giovanni Vigna

SESSION: Search, Synthesis, and Verification

TLV: abstraction through testing, learning, and validation

  • Jun Sun
  • Hao Xiao
  • Yang Liu
  • Shang-Wei Lin
  • Shengchao Qin

Mimic: computing models for opaque code

  • Stefan Heule
  • Manu Sridharan
  • Satish Chandra

Witness validation and stepwise testification across software verifiers

  • Dirk Beyer
  • Matthias Dangl
  • Daniel Dietsch
  • Matthias Heizmann
  • Andreas Stahlbauer

SESSION: Java and Object-Oriented Programming

Efficient and reasonable object-oriented concurrency

  • Scott West
  • Sebastian Nanz
  • Bertrand Meyer

FlexJava: language support for safe and modular approximate programming

  • Jongse Park
  • Hadi Esmaeilzadeh
  • Xin Zhang
  • Mayur Naik
  • William Harris

Getting to know you: towards a capability model for Java

  • Ben Hermann
  • Michael Reif
  • Michael Eichberg
  • Mira Mezini

SESSION: Testing III

Efficient dependency detection for safe Java test acceleration

  • Jonathan Bell
  • Gail Kaiser
  • Eric Melski
  • Mohan Dattatreya

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

  • Ulf Kargén
  • Nahid Shahmehri

Guided differential testing of certificate validation in SSL/TLS implementations

  • Yuting Chen
  • Zhendong Su

SESSION: Empirical Studies of Software Developers II

Quality and productivity outcomes relating to continuous integration in GitHub

  • Bogdan Vasilescu
  • Yue Yu
  • Huaimin Wang
  • Premkumar Devanbu
  • Vladimir Filkov

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

  • Casey Casalnuovo
  • Bogdan Vasilescu
  • Premkumar Devanbu
  • Vladimir Filkov

Impact of developer turnover on quality in open-source software

  • Matthieu Foucault
  • Marc Palyart
  • Xavier Blanc
  • Gail C. Murphy
  • Jean-Rémy Falleri

SESSION: Symbolic Execution

MultiSE: multi-path symbolic execution using value summaries

  • Koushik Sen
  • George Necula
  • Liang Gong
  • Wontae Choi

Assertion guided symbolic execution of multithreaded programs

  • Shengjian Guo
  • Markus Kusano
  • Chao Wang
  • Zijiang Yang
  • Aarti Gupta

Iterative distribution-aware sampling for probabilistic symbolic execution

  • Mateus Borges
  • Antonio Filieri
  • Marcelo D'Amorim
  • Corina S. Păsăreanu

SESSION: Human Aspects of Software Engineering

Bespoke tools: adapted to the concepts developers know

  • Brittany Johnson
  • Rahul Pandita
  • Emerson Murphy-Hill
  • Sarah Heckman

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

  • Titus Barik
  • Brittany Johnson
  • Emerson Murphy-Hill

GitSonifier: using sound to portray developer conflict history

  • Kevin J. North
  • Shane Bolan
  • Anita Sarma
  • Myra B. Cohen

Automatically recommending test code examples to inexperienced developers

  • Raphael Pham
  • Yauheni Stoliar
  • Kurt Schneider

Using software theater for the demonstration of innovative ubiquitous applications

  • Han Xu
  • Stephan Krusche
  • Bernd Bruegge

SESSION: Validation, Verification, and Testing

Behavioral log analysis with statistical guarantees

  • Nimrod Busany
  • Shahar Maoz

Inner oracles: input-specific assertions on internal states

  • Yingfei Xiong
  • Dan Hao
  • Lu Zhang
  • Tao Zhu
  • Muyao Zhu
  • Tian Lan

Targeted program transformations for symbolic execution

  • Cristian Cadar

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

  • Jifeng Xuan
  • Xiaoyuan Xie
  • Martin Monperrus

RDIT: race detection from incomplete traces

  • Arun K. Rajagopalan
  • Jeff Huang

SESSION: Maintenance and Evolution

TACO: test suite augmentation for concurrent programs

  • Tingting Yu

Navigating through the archipelago of refactorings

  • Apostolos V. Zarras
  • Theofanis Vartziotis
  • Panos Vassiliadis

Detecting semantic merge conflicts with variability-aware execution

  • Hung Viet Nguyen
  • My Huu Nguyen
  • Son Cuu Dang
  • Christian Kästner
  • Tien N. Nguyen

Product lines can jeopardize their trade secrets

  • Mathieu Acher
  • Guillaume Bécan
  • Benoit Combemale
  • Benoit Baudry
  • Jean-Marc Jézéquel

SESSION: Tool Demonstrations

JSketch: sketching for Java

  • Jinseong Jeon
  • Xiaokang Qiu
  • Jeffrey S. Foster
  • Armando Solar-Lezama

Don't panic: reverse debugging of kernel drivers

  • Pavel Dovgalyuk
  • Denis Dmitriev
  • Vladimir Makarov

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

  • Chunhui Wang
  • Fabrizio Pastore
  • Arda Goknil
  • Lionel C. Briand
  • Zohaib Iqbal

DexterJS: robust testing platform for DOM-based XSS vulnerabilities

  • Inian Parameshwaran
  • Enrico Budianto
  • Shweta Shinde
  • Hung Dang
  • Atul Sadhu
  • Prateek Saxena

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

  • I. S. Wishnu B. Prasetya

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

  • Timothy R. Shaffer
  • Jenna L. Wise
  • Braden M. Walters
  • Sebastian C. Müller
  • Michael Falcone
  • Bonita Sharif

Nyx: a display energy optimizer for mobile web apps

  • Ding Li
  • Angelica Huyen Tran
  • William G. J. Halfond

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

  • Chetan Arora
  • Mehrdad Sabetzadeh
  • Arda Goknil
  • Lionel C. Briand
  • Frank Zimmer

Commit guru: analytics and risk prediction of software commits

  • Christoffer Rosen
  • Ben Grawi
  • Emad Shihab

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

  • Davide Di Ruscio
  • Dimitris S. Kolovos
  • Ioannis Korkontzelos
  • Nicholas Matragkas
  • Jurgen J. Vinju

Comprehensive service matching with MatchBox

  • Paul Börding
  • Melanie Bruns
  • Marie Christin Platenius

UEDashboard: awareness of unusual events in commit histories

  • Larissa Leite
  • Christoph Treude
  • Fernando Figueira Filho

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

  • Sana Ben Nasr
  • Guillaume Bécan
  • Mathieu Acher
  • João Bosco Ferreira Filho
  • Benoit Baudry
  • Nicolas Sannier
  • Jean-Marc Davril

SESSION: Quality

Predicting field reliability

  • Pete Rotella
  • Sunita Chulani
  • Devesh Goyal

REMI: defect prediction for efficient API testing

  • Mijung Kim
  • Jaechang Nam
  • Jaehyuk Yeon
  • Soonhwang Choi
  • Sunghun Kim

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

  • Muhammad Umar Janjua

SESSION: Software Process

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

  • Juliana Saraiva
  • Christian Bird
  • Thomas Zimmermann

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

  • Joel Greenyer
  • Max Haase
  • Jörg Marhenke
  • Rene Bellmer

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

  • Mahshad M.Mahally
  • Miroslaw Staron
  • Jan Bosch

SESSION: Requirements and Specification

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

  • Chih-Hong Cheng
  • Tuncay Guelfirat
  • Christian Messinger
  • Johannes O. Schmitt
  • Matthias Schnelte
  • Peter Weber

Towards automating the security compliance value chain

  • Smita Ghaisas
  • Manish Motwani
  • Balaji Balasubramaniam
  • Anjali Gajendragadkar
  • Rahul Kelkar
  • Harrick Vin

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

  • Aapo Koski
  • Tommi Mikkonen

SESSION: Doctoral Symposium

Decentralized self-adaptation in large-scale distributed systems

  • Luca Florio

Vehicle level continuous integration in the automotive industry

  • Sebastian Vöst

Quantifying architectural debts

  • Lu Xiao

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

  • Denis Feth

Automated unit test generation for evolving software

  • Sina Shamshiri

SESSION: Student Research Competition

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

  • Thomas White

Enhancing Android application bug reporting

  • Kevin Moran

Improving energy consumption in Android apps

  • Carlos Bernal-Cárdenas

Automated generation of programming language quizzes

  • Shuktika Jain

Spotting familiar code snippet structures for program comprehension

  • Venkatesh Vinayakarao

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

  • Martin Konopka

A textual domain specific language for requirement modelling

  • Oyindamola Olajubu

Automated attack surface approximation

  • Christopher Theisen

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

  • Erina Makihara