Tomasz Kuchta, Cristian Cadar, Miguel Castro, Manuel Costa
Pages: 563-574
doi>10.1145/2642937.2643004
Full text: PDFPDF
Application crashes and errors that occur while loading a document are one of the most visible defects of consumer software. While documents become corrupted in various ways---from storage media failures to incompatibility across applications to malicious ... expand
Exact and approximate probabilistic symbolic execution for nondeterministic programs
Kasper Luckow, Corina S. Păsăreanu, Matthew B. Dwyer, Antonio Filieri, Willem Visser
Pages: 575-586
doi>10.1145/2642937.2643011
Full text: PDFPDF
Probabilistic software analysis seeks to quantify the likelihood of reaching a target event under uncertain environments. Recent approaches compute probabilities of execution paths using symbolic execution, but do not support nondeterminism. Nondeterminism ... expand
Derailer: interactive security analysis for web applications
Joseph P. Near, Daniel Jackson
Pages: 587-598
doi>10.1145/2642937.2643012
Full text: PDFPDF
Derailer is an interactive tool for finding security bugs in web applications. Using symbolic execution, it enumerates the ways in which application data might be exposed. The user is asked to examine these exposures and classify the conditions under ... expand
SESSION: Specification and debugging
Tracking down root causes of defects in simulink models
Johanna Schneider
Pages: 599-604
doi>10.1145/2642937.2642943
Full text: PDFPDF
Being confronted with a defect in software leads to the well known task: correcting the software such that the defect does not occur anymore. Here, the location of the defect and the corresponding root cause do not have to be identical. Thus, before ... expand
The confidence in our k-tails
Hila Cohen, Shahar Maoz
Pages: 605-610
doi>10.1145/2642937.2642944
Full text: PDFPDF
k-Tails is a popular algorithm for extracting a candidate behavioral model from a log of execution traces. The usefulness of k-Tails depends on the quality of its input log, which may include too few traces to build a representative model, or too many ... expand
Localization of concurrency bugs using shared memory access pairs
We propose an effective approach to automatically localize buggy shared memory accesses that trigger concurrency bugs. Compared to existing approaches, our approach has two advantages. First, as long as enough successful runs of a concurrent program ... expand
Towards self-healing smartphone software via automated patching
Md. Tanzirul Azim, Iulian Neamtiu, Lisa M. Marvel
Pages: 623-628
doi>10.1145/2642937.2642955
Full text: PDFPDF
Frequent app bugs and low tolerance for loss of functionality create an impetus for self-healing smartphone software. We take a step towards this via on-the-fly error detection and automated patching. Specifically, we add failure detection and recovery ... expand
Minimal strongly unsatisfiable subsets of reactive system specifications
Verifying realizability in the specification phase is expected to reduce the development costs of safety-critical reactive systems. If a specification is not realizable, we must correct the specification. However, it is not always obvious what part of ... expand
SESSION: Transformations II
Droidmarking: resilient software watermarking for impeding android application repackaging
Chuangang Ren, Kai Chen, Peng Liu
Pages: 635-646
doi>10.1145/2642937.2642977
Full text: PDFPDF
Software plagiarism in Android markets (app repackaging) is raising serious concerns about the health of the Android ecosystem. Existing app repackaging detection techniques fall short in detection efficiency and in resilience to circumventing attacks; ... expand
From out-place transformation evolution to in-place model patching
Alexander Bergmayr, Javier Troya, Manuel Wimmer
Pages: 647-652
doi>10.1145/2642937.2642946
Full text: PDFPDF
Model transformation is a key technique to automate software engineering tasks. Like any other software, transformations are not resilient to change. As changes to transformations can invalidate previously produced models, these changes need to be reflected ... expand
SESSION: Human factors
Using visual dataflow programming for interactive model comparison
Rainer Lutz, Stephan Diehl
Pages: 653-664
doi>10.1145/2642937.2642984
Full text: PDFPDF
In software engineering the comparison of graph-based models is a well-known problem. Although different comparison metrics have been proposed, there are situations in which automatic or pre-configured approaches do not provide reasonable results. Especially ... expand
NeedFeed: taming change notifications by modeling code relevance
Most software development tools allow developers to subscribe to notifications about code checked-in by their team members in order to review changes to artifacts that they are responsible for. However, past user studies have indicated that this mechanism ... expand
Active code search: incorporating user feedback to improve code search relevance
Shaowei Wang, David Lo, Lingxiao Jiang
Pages: 677-682
doi>10.1145/2642937.2642947
Full text: PDFPDF
Code search techniques return relevant code fragments given a user query. They typically work in a passive mode: given a user query, a static list of code fragments sorted by the relevance scores decided by a code search technique is returned ... expand
Resilient user interface level tests
Heidar Pirzadeh, Sara Shanian
Pages: 683-688
doi>10.1145/2642937.2642954
Full text: PDFPDF
About 60% of the software development cost for online applications is related to developing user interfaces commonly used by the end users to interact with those applications. Frequent small changes to user interfaces (UIs) however easily break about ... expand
Studying task allocation decisions of novice agile teams with data from agile project management tools
Jun Lin, Han Yu, Zhiqi Shen, Chunyan Miao
Pages: 689-694
doi>10.1145/2642937.2642959
Full text: PDFPDF
Task allocation decisions are critical for the success of Agile teams yet not well understood. Traditional survey/interview based methods limit the scale and level of details of data collection. As agile project management (APM) tools are increasingly ... expand
PiE: programming in eliza
Xiao Liu, Dinghao Wu
Pages: 695-700
doi>10.1145/2642937.2642967
Full text: PDFPDF
Eliza, a primitive example of natural language processing, adopts a rule-based method to conduct simple conversations with people. In this paper, we extend Eliza for a novel application. We propose a system to assist with program synthesis called Programming ... expand
SESSION: Verification
Search-based inference of polynomial metamorphic relations
Jie Zhang, Junjie Chen, Dan Hao, Yingfei Xiong, Bing Xie, Lu Zhang, Hong Mei
Pages: 701-712
doi>10.1145/2642937.2642994
Full text: PDFPDF
Metamorphic testing (MT) is an effective methodology for testing those so-called ``non-testable'' programs (e.g., scientific programs), where it is sometimes very difficult for testers to know whether the outputs are correct. In metamorphic testing, ... expand
A dynamic analysis to support object-sharing code refactorings
Creation of large numbers of co-existing long-lived isomorphic objects increases the memory footprint of applications significantly. In this paper we propose a dynamic-analysis based approach that detects allocation sites that create large numbers of ... expand
Language fuzzing using constraint logic programming
Kyle Dewey, Jared Roesch, Ben Hardekopf
Pages: 725-730
doi>10.1145/2642937.2642963
Full text: PDFPDF
Fuzz testing builds confidence in compilers and interpreters. It is desirable for fuzzers to allow targeted generation of programs that showcase specific language features and behaviors. However, the predominant program generation technique used by most ... expand
Tracing software build processes to uncover license compliance inconsistencies
Sander van der Burg, Eelco Dolstra, Shane McIntosh, Julius Davies, Daniel M. German, Armijn Hemel
Pages: 731-742
doi>10.1145/2642937.2643013
Full text: PDFPDF
Open Source Software (OSS) components form the basis for many software systems. While the use of OSS components accelerates development, client systems must comply with the license terms of the OSS components that they use. Failure to do so exposes client ... expand
Automatic verification of interactions in asynchronous systems with unbounded buffers
Samik Basu, Tevfik Bultan
Pages: 743-754
doi>10.1145/2642937.2643016
Full text: PDFPDF
Asynchronous communication requires message queues to store the messages that are yet to be consumed. Verification of interactions in asynchronously communicating systems is challenging since the sizes of these queues can grow arbitrarily large during ... expand
SESSION: Symbolic execution II
Docovery: toward generic automatic document recovery
Tomasz Kuchta, Cristian Cadar, Miguel Castro, Manuel Costa Pages: 563-574 doi>10.1145/2642937.2643004 Full text: PDFPDF
Application crashes and errors that occur while loading a document are one of the most visible defects of consumer software. While documents become corrupted in various ways---from storage media failures to incompatibility across applications to malicious ... expand
Exact and approximate probabilistic symbolic execution for nondeterministic programs
Kasper Luckow, Corina S. Păsăreanu, Matthew B. Dwyer, Antonio Filieri, Willem Visser Pages: 575-586 doi>10.1145/2642937.2643011 Full text: PDFPDF
Probabilistic software analysis seeks to quantify the likelihood of reaching a target event under uncertain environments. Recent approaches compute probabilities of execution paths using symbolic execution, but do not support nondeterminism. Nondeterminism ... expand
Derailer: interactive security analysis for web applications
Joseph P. Near, Daniel Jackson Pages: 587-598 doi>10.1145/2642937.2643012 Full text: PDFPDF
Derailer is an interactive tool for finding security bugs in web applications. Using symbolic execution, it enumerates the ways in which application data might be exposed. The user is asked to examine these exposures and classify the conditions under ... expand
SESSION: Specification and debugging
Tracking down root causes of defects in simulink models
Johanna Schneider Pages: 599-604 doi>10.1145/2642937.2642943 Full text: PDFPDF
Being confronted with a defect in software leads to the well known task: correcting the software such that the defect does not occur anymore. Here, the location of the defect and the corresponding root cause do not have to be identical. Thus, before ... expand
The confidence in our k-tails
Hila Cohen, Shahar Maoz Pages: 605-610 doi>10.1145/2642937.2642944 Full text: PDFPDF
k-Tails is a popular algorithm for extracting a candidate behavioral model from a log of execution traces. The usefulness of k-Tails depends on the quality of its input log, which may include too few traces to build a representative model, or too many ... expand
Localization of concurrency bugs using shared memory access pairs
Wenwen Wang, Zhenjiang Wang, Chenggang Wu, Pen-Chung Yew, Xipeng Shen, Xiang Yuan, Jianjun Li, Xiaobing Feng, Yong Guan Pages: 611-622 doi>10.1145/2642937.2642972 Full text: PDFPDF
We propose an effective approach to automatically localize buggy shared memory accesses that trigger concurrency bugs. Compared to existing approaches, our approach has two advantages. First, as long as enough successful runs of a concurrent program ... expand
Towards self-healing smartphone software via automated patching
Md. Tanzirul Azim, Iulian Neamtiu, Lisa M. Marvel Pages: 623-628 doi>10.1145/2642937.2642955 Full text: PDFPDF
Frequent app bugs and low tolerance for loss of functionality create an impetus for self-healing smartphone software. We take a step towards this via on-the-fly error detection and automated patching. Specifically, we add failure detection and recovery ... expand
Minimal strongly unsatisfiable subsets of reactive system specifications
Shigeki Hagihara, Naoki Egawa, Masaya Shimakawa, Naoki Yonezaki Pages: 629-634 doi>10.1145/2642937.2642968 Full text: PDFPDF
Verifying realizability in the specification phase is expected to reduce the development costs of safety-critical reactive systems. If a specification is not realizable, we must correct the specification. However, it is not always obvious what part of ... expand
SESSION: Transformations II
Droidmarking: resilient software watermarking for impeding android application repackaging
Chuangang Ren, Kai Chen, Peng Liu Pages: 635-646 doi>10.1145/2642937.2642977 Full text: PDFPDF
Software plagiarism in Android markets (app repackaging) is raising serious concerns about the health of the Android ecosystem. Existing app repackaging detection techniques fall short in detection efficiency and in resilience to circumventing attacks; ... expand
From out-place transformation evolution to in-place model patching
Alexander Bergmayr, Javier Troya, Manuel Wimmer Pages: 647-652 doi>10.1145/2642937.2642946 Full text: PDFPDF
Model transformation is a key technique to automate software engineering tasks. Like any other software, transformations are not resilient to change. As changes to transformations can invalidate previously produced models, these changes need to be reflected ... expand
SESSION: Human factors
Using visual dataflow programming for interactive model comparison Rainer Lutz, Stephan Diehl Pages: 653-664 doi>10.1145/2642937.2642984 Full text: PDFPDF
In software engineering the comparison of graph-based models is a well-known problem. Although different comparison metrics have been proposed, there are situations in which automatic or pre-configured approaches do not provide reasonable results. Especially ... expand
NeedFeed: taming change notifications by modeling code relevance
Rohan Padhye, Senthil Mani, Vibha Singhal Sinha Pages: 665-676 doi>10.1145/2642937.2642985 Full text: PDFPDF
Most software development tools allow developers to subscribe to notifications about code checked-in by their team members in order to review changes to artifacts that they are responsible for. However, past user studies have indicated that this mechanism ... expand
Active code search: incorporating user feedback to improve code search relevance
Shaowei Wang, David Lo, Lingxiao Jiang Pages: 677-682 doi>10.1145/2642937.2642947 Full text: PDFPDF
Code search techniques return relevant code fragments given a user query. They typically work in a passive mode: given a user query, a static list of code fragments sorted by the relevance scores decided by a code search technique is returned ... expand
Resilient user interface level tests
Heidar Pirzadeh, Sara Shanian Pages: 683-688 doi>10.1145/2642937.2642954 Full text: PDFPDF
About 60% of the software development cost for online applications is related to developing user interfaces commonly used by the end users to interact with those applications. Frequent small changes to user interfaces (UIs) however easily break about ... expand
Studying task allocation decisions of novice agile teams with data from agile project management tools
Jun Lin, Han Yu, Zhiqi Shen, Chunyan Miao Pages: 689-694 doi>10.1145/2642937.2642959 Full text: PDFPDF
Task allocation decisions are critical for the success of Agile teams yet not well understood. Traditional survey/interview based methods limit the scale and level of details of data collection. As agile project management (APM) tools are increasingly ... expand
PiE: programming in eliza
Xiao Liu, Dinghao Wu Pages: 695-700 doi>10.1145/2642937.2642967 Full text: PDFPDF
Eliza, a primitive example of natural language processing, adopts a rule-based method to conduct simple conversations with people. In this paper, we extend Eliza for a novel application. We propose a system to assist with program synthesis called Programming ... expand
SESSION: Verification
Search-based inference of polynomial metamorphic relations
Jie Zhang, Junjie Chen, Dan Hao, Yingfei Xiong, Bing Xie, Lu Zhang, Hong Mei Pages: 701-712 doi>10.1145/2642937.2642994 Full text: PDFPDF
Metamorphic testing (MT) is an effective methodology for testing those so-called ``non-testable'' programs (e.g., scientific programs), where it is sometimes very difficult for testers to know whether the outputs are correct. In metamorphic testing, ... expand
A dynamic analysis to support object-sharing code refactorings
Girish Maskeri Rama, Raghavan Komondoor Pages: 713-724 doi>10.1145/2642937.2642992 Full text: PDFPDF
Creation of large numbers of co-existing long-lived isomorphic objects increases the memory footprint of applications significantly. In this paper we propose a dynamic-analysis based approach that detects allocation sites that create large numbers of ... expand
Language fuzzing using constraint logic programming
Kyle Dewey, Jared Roesch, Ben Hardekopf Pages: 725-730 doi>10.1145/2642937.2642963 Full text: PDFPDF
Fuzz testing builds confidence in compilers and interpreters. It is desirable for fuzzers to allow targeted generation of programs that showcase specific language features and behaviors. However, the predominant program generation technique used by most ... expand
Tracing software build processes to uncover license compliance inconsistencies
Sander van der Burg, Eelco Dolstra, Shane McIntosh, Julius Davies, Daniel M. German, Armijn Hemel Pages: 731-742 doi>10.1145/2642937.2643013 Full text: PDFPDF
Open Source Software (OSS) components form the basis for many software systems. While the use of OSS components accelerates development, client systems must comply with the license terms of the OSS components that they use. Failure to do so exposes client ... expand
Automatic verification of interactions in asynchronous systems with unbounded buffers
Samik Basu, Tevfik Bultan Pages: 743-754 doi>10.1145/2642937.2643016 Full text: PDFPDF
Asynchronous communication requires message queues to store the messages that are yet to be consumed. Verification of interactions in asynchronously communicating systems is challenging since the sizes of these queues can grow arbitrarily large during ... expand