3,458 papers · page 92 of 173
Maria Christakis, Christian Bird
Program Analysis has been a rich and fruitful field of research for many decades, and countless high quality program analysis tools have been produced by academia. Though there are some well-known examples of tools that have found their way into routine use by practitioners, a co…
Jürgen Cito
Runtime information of deployed software has been used by business and operations units to make informed decisions under the term ``analytics". However, decisions made by software engineers in the course of evolving software have, for the most part, been based on personal belief …
Jürgen Cito, Julia Rubin, Phillip Stanley-Marbell, Martin C. Rinard
We present an adaptive binary transformation system for reducing the energy impact of advertisements and analytics in mobile applications. Our approach accommodates both the needs of mobile app developers to obtain income from advertisements and the desire of mobile device users …
Renzo Degiovanni, Nicolás Ricci, Dalal Alrajeh, Pablo F. Castro, Nazareno Aguirre
Goal-oriented requirements engineering approaches propose capturing how a system should behave through the specification of high-level goals, from which requirements can then be systematically derived. Goals may however admit subtle situations that make them diverge, i.e., not be…
Andreas Demuth, Markus Riedl-Ehrenleitner, Alexander Egyed
Software developers work concurrently on different kinds of development artifacts such as requirements, architecture, design, or source code. To keep these development artifacts consistent, developers have a wide range of consistency checking approaches available. However, most e…
Georg Dotzler, Michael Philippsen
When it is necessary to express changes between two source code files as a list of edit actions (an edit script), modern tree differencing algorithms are superior to most text-based approaches because they take code movements into account and express source code changes more accu…
Yang Feng, James A. Jones, Zhenyu Chen, Chunrong Fang
In crowdsourced software testing, inspecting the large number of test reports is an overwhelming but inevitable software maintenance task. In recent years, to alleviate this task, many text-based test-report classification and prioritization techniques have been proposed. However…
Fengjuan Gao, Linzhang Wang, Xuandong Li
Buffer overflow is one of the most common types of software vulnerabilities. Various static analysis and dynamic testing techniques have been proposed to detect buffer overflow vulnerabilities. With automatic tool support, static buffer overflow detection technique has been widel…
Gillian J. Greene, Bernd Fischer
Open source code contributions contain a large amount of technical skill information about developers, which can help to identify suitable candidates for a particular development job and therefore impact the success of a development team. We develop CVExplorer as a tool to extrac…
Tianxiao Gu, Chengnian Sun, Xiaoxing Ma, Jian Lü, Zhendong Su
Software systems are often subject to unexpected runtime errors. Automatic runtime recovery (ARR) techniques aim at recovering them from erroneous states and maintaining them functional in the field. This paper proposes Ares , a novel, practical approach to performing ARR. Our ke…
Shengjian Guo, Markus Kusano, Chao Wang
Software updates often introduce new bugs to existing code bases. Prior regression testing tools focus mainly on test case selection and prioritization whereas symbolic execution tools only handle code changes in sequential software. In this paper, we propose the first incrementa…
Christoph Hannebauer, Michael Patalas, Sebastian Stünkel, Volker Gruhn
Code reviews are an essential part of quality assurance in Free, Libre, and Open Source (FLOSS) projects. However, finding a suitable reviewer can be difficult, and delayed or forgotten reviews are the consequence. Automating reviewer selection with suitable algorithms can mitiga…
Michael Hilton, Timothy Tunnell, Kai Huang, Darko Marinov, Danny Dig
Continuous integration (CI) systems automate the compilation, building, and testing of software. Despite CI rising as a big success story in automated software engineering, it has received almost no attention from the research community. For example, how widely is CI used in prac…
Matthias Höschele, Andreas Zeller
Knowing which part of a program processes which parts of an input can reveal the structure of the input as well as the structure of the program. In a URL http://www.example.com/path/ , for instance, the protocol http , the host www.example.com , and the path path would be handled…
Yuan Jochen Kang, Baishakhi Ray, Suman Jana
Although correct error handling is crucial to software robustness and security, developers often inadvertently introduce bugs in error handling code. Moreover, such bugs are hard to detect using existing bug-finding tools without correct error specifications. Creating error speci…
Joseph Chan Joo Keng
I describe the design, implementation and evaluation of a novel hybrid static/dynamic analysis system for automatically uncovering and testing for the user-triggered causes and paths of privacy leaks in Android applications (privacy 'leak-causes'). I describe how I plan to furthe…
Thomas Kowark, Christoph Matthies, Matthias Uflacker, Hasso Plattner
The ease of setting up collaboration infrastructures for software engineering projects creates a challenge for researchers that aim to analyze the resulting data. As teams can choose from various available software-as-a-service solutions and can configure them with a few clicks, …
Rahul Krishna, Tim Menzies, Wei Fu
Transfer learning: is the process of translating quality predictors learned in one data set to another. Transfer learning has been the subject of much recent research. In practice, that research means changing models all the time as transfer learners continually exchange new mode…
Daniel Kroening, Daniel Poetzl, Peter Schrammel, Björn Wachter
We present a static deadlock analysis approach for C/pthreads. The design of our method has been guided by the requirement to analyse real-world code. Our approach is sound (i.e., misses no deadlocks) for programs that have defined behaviour according to the C standard and the pt…
Gulsher Laghari, Alessandro Murgia, Serge Demeyer
Continuous integration is a best practice adopted in modern software development teams to identify potential faults immediately upon project build. Once a fault is detected it must be repaired immediately, hence continuous integration provides an ideal testbed for experimenting w…