Powered by
2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2015),
August 30 – September 4, 2015,
Bergamo, Italy
New Ideas
Human Aspects of Software Engineering
Wed, Sep 2, 11:30 - 13:05, Stucchi
Bespoke Tools: Adapted to the Concepts Developers Know
Brittany Johnson,
Rahul Pandita,
Emerson Murphy-Hill, and
Sarah Heckman
(North Carolina State University, USA)
Even though different developers have varying levels of expertise, the tools in one developer's integrated development environment (IDE) behave the same as the tools in every other developers' IDE. In this paper, we propose the idea of automatically customizing development tools by modeling what a developer knows about software concepts. We then sketch three such ``bespoke'' tools and describe how development data can be used to infer what a developer knows about relevant concepts. Finally, we describe our ongoing efforts to make bespoke program analysis tools that customize their notifications to the developer using them.
@InProceedings{ESEC/FSE15p878,
author = {Brittany Johnson and Rahul Pandita and Emerson Murphy-Hill and Sarah Heckman},
title = {Bespoke Tools: Adapted to the Concepts Developers Know},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {878--881},
doi = {},
year = {2015},
}
I Heart Hacker News: Expanding Qualitative Research Findings by Analyzing Social News Websites
Titus Barik,
Brittany Johnson, and
Emerson Murphy-Hill
(ABB Research, USA; North Carolina State University, USA)
Grounded theory is an important research method in empirical software engineering, but it is also time consuming, tedious, and complex. This makes it difficult for researchers to assess if threats, such as missing themes or sample bias, have inadvertently materialized. To better assess such threats, our new idea is that we can automatically extract knowledge from social news websites, such as Hacker News, to easily replicate existing grounded theory research --- and then compare the results. We conduct a replication study on static analysis tool adoption using Hacker News. We confirm that even a basic replication and analysis using social news websites can offer additional insights to existing themes in studies, while also identifying new themes. For example, we identified that security was not a theme discovered in the original study on tool adoption. As a long-term vision, we consider techniques from the discipline of knowledge discovery to make this replication process more automatic.
@InProceedings{ESEC/FSE15p882,
author = {Titus Barik and Brittany Johnson and Emerson Murphy-Hill},
title = {I Heart Hacker News: Expanding Qualitative Research Findings by Analyzing Social News Websites},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {882--885},
doi = {},
year = {2015},
}
GitSonifier: Using Sound to Portray Developer Conflict History
Kevin J. North, Shane Bolan, Anita Sarma, and
Myra B. Cohen
(University of Nebraska-Lincoln, USA)
There are many tools that help software engineers analyze data about their software, projects, and teams. These tools primarily use visualizations to portray data in a concise and understandable way. However, software engineering tasks are often multi-dimensional and temporal, making some visualizations difficult to understand. An alternative for representing data, which can easily incorporate higher dimensionality and temporal information, is the use of sound. In this paper we propose the use of sonification to help portray collaborative development history. Our approach, GitSonifier, combines sound primitives to represent developers, days, and conflicts over the history of a program's development. In a formative user study on an open source project's data, we find that users can easily extract meaningful information from sound clips and differentiate users, passage of time, and development conflicts, suggesting that sonification has the potential to provide benefit in this context.
@InProceedings{ESEC/FSE15p886,
author = {Kevin J. North and Shane Bolan and Anita Sarma and Myra B. Cohen},
title = {GitSonifier: Using Sound to Portray Developer Conflict History},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {886--889},
doi = {},
year = {2015},
}
Automatically Recommending Test Code Examples to Inexperienced Developers
Raphael Pham, Yauheni Stoliar, and Kurt Schneider
(Leibniz Universität Hannover, Germany)
New graduates joining the software engineering workforce sometimes have trouble writing test code. Coming from university, they lack a hands-on approach to testing and have little experience with writing tests in a real-world setting. Software companies resort to costly training camps or mentoring initiatives. Not overcoming this lack of testing skills early on can hinder the newcomer’s professional progress in becoming a high-quality engineer.
Studying open source developers, we found that they rely on a project’s pre-existing test code to learn how to write tests and adapt test code for their own use. We propose to strategically present useful and contextual test code examples from a project’s test suite to newcomers in order to facilitate learning and test writing.
With an automatic suggestion mechanism for valuable test code, the newcomer is enabled to learn how senior developers write tests and copy it. Having access to suitable tests lowers the barrier for writing new tests.
@InProceedings{ESEC/FSE15p890,
author = {Raphael Pham and Yauheni Stoliar and Kurt Schneider},
title = {Automatically Recommending Test Code Examples to Inexperienced Developers},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {890--893},
doi = {},
year = {2015},
}
Using Software Theater for the Demonstration of Innovative Ubiquitous Applications
Han Xu,
Stephan Krusche, and Bernd Bruegge
(TU München, Germany)
Software development has to cope with uncertainties and changing requirements that constantly arise in the development process. Agile methods address this challenge by adopting an incremental development process and delivering working software frequently. However, current validation techniques used in sprint reviews are not sufficient for emerging applications based on ubiquitous technologies. To fill this gap, we propose a new way of demonstration called Software Theater. Based on ideas from theater plays, it aims at presenting scenario-based demonstration in a theatrical way to highlight new features, new user experience and new technical architecture in an integrated performance. We have used Software Theater in more than twenty projects and the result is overall positive.
@InProceedings{ESEC/FSE15p894,
author = {Han Xu and Stephan Krusche and Bernd Bruegge},
title = {Using Software Theater for the Demonstration of Innovative Ubiquitous Applications},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {894--897},
doi = {},
year = {2015},
}
Validation, Verification, and Testing
Wed, Sep 2, 14:30 - 16:05, Stucchi
Behavioral Log Analysis with Statistical Guarantees
Nimrod Busany and
Shahar Maoz
(Tel Aviv University, Israel)
Scalability is a major challenge for existing behavioral log analysis algorithms, which extract finite-state automaton models or temporal properties from logs generated by running systems. In this work we propose to address scalability using statistical tools. The key to our approach is to consider behavioral log analysis as a statistical experiment. Rather than analyzing the entire log, we suggest to analyze only a sample of traces from the log and, most importantly, provide means to compute statistical guarantees for the correctness of the analysis result. We present two example applications of our approach as well as initial evidence for its effectiveness.
@InProceedings{ESEC/FSE15p898,
author = {Nimrod Busany and Shahar Maoz},
title = {Behavioral Log Analysis with Statistical Guarantees},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {898--901},
doi = {},
year = {2015},
}
Inner Oracles: Input-Specific Assertions on Internal States
Yingfei Xiong, Dan Hao, Lu Zhang, Tao Zhu, Muyao Zhu, and Tian Lan
(Peking University, China)
Traditional test oracles are defined on the outputs of test executions, and cannot assert internal states of executions. Traditional assertions are common to all test execution, and are usually more difficult to construct than on oracle for one test input. In this paper we propose the concept of inner oracles, which are assertions on internal states that are specific to one test input. We first motivate the necessity of inner oracles, and then show that it can be implemented easily using the available programming mechanisms. Next, we report two initial empirical studies on inner oracles, showing that inner oracles have a significant impact on both the fault-detection capability of tests and the performance of test suite reduction. Finally, we highlight the implications of inner oracles on several research and practical problems.
@InProceedings{ESEC/FSE15p902,
author = {Yingfei Xiong and Dan Hao and Lu Zhang and Tao Zhu and Muyao Zhu and Tian Lan},
title = {Inner Oracles: Input-Specific Assertions on Internal States},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {902--905},
doi = {},
year = {2015},
}
Info
Targeted Program Transformations for Symbolic Execution
Cristian Cadar
(Imperial College London, UK)
Semantics-preserving program transformations, such as refactorings and optimisations, can have a significant impact on the effectiveness of symbolic execution testing and analysis. Furthermore, semantics-preserving transformations that increase the performance of native execution can in fact decrease the scalability of symbolic execution. Similarly, semantics-altering transformations, such as type changes and object size modifications, can often lead to substantial improvements in the testing effectiveness achieved by symbolic execution in the original program. As a result, we argue that one should treat program transformations as first-class ingredients of scalable symbolic execution, alongside widely-accepted aspects such as search heuristics and constraint solving optimisations. First, we propose to understand the impact of existing program transformations on symbolic execution, to increase scalability and improve experimental design and reproducibility. Second, we argue for the design of testability transformations specifically targeted toward more scalable symbolic execution.
@InProceedings{ESEC/FSE15p906,
author = {Cristian Cadar},
title = {Targeted Program Transformations for Symbolic Execution},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {906--909},
doi = {},
year = {2015},
}
Crash Reproduction via Test Case Mutation: Let Existing Test Cases Help
Jifeng Xuan, Xiaoyuan Xie
, and
Martin Monperrus
(Wuhan University, China; University of Lille, France; INRIA, France)
Developers reproduce crashes to understand root causes during software debugging. To reduce the manual effort by developers, automatic methods of crash reproduction generate new test cases for triggering crashes. However, due to the complex program structures, it is challenging to generate a test case to cover a specific program path. In this paper, we propose an approach to automatic crash reproduction via test case mutation, which updates existing test cases to trigger crashes rather than creating new test cases from scratch. This approach leverages major structures and objects in existing test cases and increases the chance of executing the specific path. Our preliminary result on 12 crashes in Apache Commons Collections shows that 7 crashes are reproduced by our approach of test case mutation.
@InProceedings{ESEC/FSE15p910,
author = {Jifeng Xuan and Xiaoyuan Xie and Martin Monperrus},
title = {Crash Reproduction via Test Case Mutation: Let Existing Test Cases Help},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {910--913},
doi = {},
year = {2015},
}
RDIT: Race Detection from Incomplete Traces
Arun K. Rajagopalan and Jeff Huang
(Texas A&M University, USA)
We present RDIT, a novel dynamic algorithm to precisely detect data races in multi-threaded programs with incomplete trace information -- the presence of missing events. RDIT enhances the classical Happens-Before algorithm by relaxing the need to collect the full execution trace, while still guaranteeing full precision. The key idea behind RDIT is to abstract away the missing events by capturing the invocation data of the missing methods. This provides valuable information to approximate the possible synchronization behavior introduced by the missing events. By making the least conservative approximation that two missing methods introduce synchronization only when they access common data, RDIT guarantees to detect a maximal set of true races from the information available. We have conducted a preliminary study of RDIT on a real system and our results show that RDIT is promising; it detects no false positive when events are missed, whereas Happens-Before reports many.
@InProceedings{ESEC/FSE15p914,
author = {Arun K. Rajagopalan and Jeff Huang},
title = {RDIT: Race Detection from Incomplete Traces},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {914--917},
doi = {},
year = {2015},
}
Maintenance and Evolution
Wed, Sep 2, 16:30 - 18:00, Stucchi
TACO: Test Suite Augmentation for Concurrent Programs
Tingting Yu
(University of Kentucky, USA)
The advent of multicore processors has greatly increased the prevalence of concurrent programs to achieve higher performance. As programs evolve, test suite augmentation techniques are used in regression testing to identify where new test cases are needed and then generate them. Prior work on test suite augmentation has focused on sequential software, but to date, no work has considered concurrent software systems for which regression testing is expensive due to large number of possible thread interleavings. In this paper, we present TACO, an automated test suite augmentation framework for concurrent programs in which our goal is not only to generate new inputs to exercise uncovered changed code but also to explore new thread interleavings induced by the changes. Our technique utilizes results from reuse of existing test inputs following random schedules, together with a predicative scheduling strategy and an incremental concolic testing algorithm to automatically generate new inputs that drive program through affected interleaving space so that it can effectively and efficiently validate changes that have not been exercised by existing test cases. Toward the end, we discuss several main challenges and opportunities of our approach.
@InProceedings{ESEC/FSE15p918,
author = {Tingting Yu},
title = {TACO: Test Suite Augmentation for Concurrent Programs},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {918--921},
doi = {},
year = {2015},
}
Navigating through the Archipelago of Refactorings
Apostolos V. Zarras, Theofanis Vartziotis, and Panos Vassiliadis
(University of Ioannina, Greece)
The essence of refactoring is to improve software quality via the systematic combination of primitive refactorings. Yet, there are way too many refactorings. Choosing which refactorings to use, how to combine them and how to integrate them in more complex evolution tasks is really hard. Our vision is to provide the developer with a "trip advisor" for the archipelago of refactorings. The core idea of our approach is the map of the archipelago of refactorings, which identies the basic relations that guide the systematic and eective combination of refactorings. Based on the map, the trip advisor makes suggestions that allow the developer to decide how to start, assess the possible alternatives, have a clear picture of what has to be done before, during and after the refactorings and assess the possible implications.
@InProceedings{ESEC/FSE15p922,
author = {Apostolos V. Zarras and Theofanis Vartziotis and Panos Vassiliadis},
title = {Navigating through the Archipelago of Refactorings},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {922--925},
doi = {},
year = {2015},
}
Detecting Semantic Merge Conflicts with Variability-Aware Execution
Hung Viet Nguyen, My Huu Nguyen, Son Cuu Dang,
Christian Kästner , and Tien N. Nguyen
(Iowa State University, USA; Ho Chi Minh City University of Science, Vietnam; University of Technology Sydney, Australia; Carnegie Mellon University, USA)
In collaborative software development, changes made in parallel by multiple developers may conflict. Previous research has shown that conflicts are common and occur as textual conflicts or semantic conflicts, which manifest as build or test failures. With many parallel changes, it is desirable to identify conflicts early and pinpoint the (minimum) set of changes involved. However, the costs of identifying semantic conflicts can be high because tests need to be executed on many merge scenarios.
We propose Semex, a novel approach to detect semantic conflicts using variability-aware execution. We encode all parallel changes into a single program, in which "if" statements guard the alternative code fragments. Then, we run the test cases using variability-aware execution, exploring all possible concrete executions of the combined program with regard to all possible merge scenarios, while exploiting similarities among the executions to speed up the process. Variability-aware execution returns a formula describing all failing merge scenarios. In our preliminary experimental study on seven PHP programs with a total of 50 test cases and 19 semantic conflicts, Semex correctly detected all 19 conflicts.
@InProceedings{ESEC/FSE15p926,
author = {Hung Viet Nguyen and My Huu Nguyen and Son Cuu Dang and Christian Kästner and Tien N. Nguyen},
title = {Detecting Semantic Merge Conflicts with Variability-Aware Execution},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {926--929},
doi = {},
year = {2015},
}
Product Lines Can Jeopardize Their Trade Secrets
Mathieu Acher, Guillaume Bécan, Benoit Combemale
,
Benoit Baudry, and
Jean-Marc Jézéquel
(University of Rennes 1, France; INRIA, France; IRISA, France)
What do you give for free to your competitor when you exhibit a product line? This paper addresses this question through several cases in which the discovery of trade secrets of a product line is possible and can lead to severe consequences. That is, we show that an outsider can understand the variability realization and gain either confidential business information or even some economical direct advantage. For instance, an attacker can identify hidden constraints and bypass the product line to get access to features or copyrighted data. This paper warns against possible naive modeling, implementation, and testing of variability leading to the existence of product lines that jeopardize their trade secrets. Our vision is that defensive methods and techniques should be developed to protect specifically variability – or at least further complicate the task of reverse engineering it.
@InProceedings{ESEC/FSE15p930,
author = {Mathieu Acher and Guillaume Bécan and Benoit Combemale and Benoit Baudry and Jean-Marc Jézéquel},
title = {Product Lines Can Jeopardize Their Trade Secrets},
booktitle = {Proc.\ ESEC/FSE},
publisher = {ACM},
pages = {930--933},
doi = {},
year = {2015},
}
proc time: 1.11