Exploring variability-aware execution for testing plugin-based web applications
Hung Viet Nguyen, Christian Kästner, Tien N. Nguyen
Pages: 907-918
doi>10.1145/2568225.2568300
Full text: PDF
In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin conflicts due to the exponential explosion of the combinations of plugins ... expand
A study of equivalent and stubborn mutation operators using human analysis of equivalence
Xiangjuan Yao, Mark Harman, Yue Jia
Pages: 919-930
doi>10.1145/2568225.2568265
Full text: PDF
Though mutation testing has been widely studied for more than thirty years, the prevalence and properties of equivalent mutants remain largely unknown. We report on the causes and prevalence of equivalent mutants and their relationship to stubborn mutants ... expand
Cross-checking oracles from intrinsic software redundancy
Antonio Carzaniga, Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, Mauro Pezzè
Pages: 931-942
doi>10.1145/2568225.2568287
Full text: PDF
Despite the recent advances in automatic test generation, testers must still write test oracles manually. If formal specifications are available, it might be possible to use decision procedures derived from those specifications. We present a technique ... expand
Mind the gap: assessing the conformance of software traceability to relevant guidelines
Patrick Rempel, Patrick Mäder, Tobias Kuschke, Jane Cleland-Huang
Pages: 943-954
doi>10.1145/2568225.2568290
Full text: PDF
Many guidelines for safety-critical industries such as aeronautics, medical devices, and railway communications, specify that traceability must be used to demonstrate that a rigorous process has been followed and to provide evidence that the system ... expand
SESSION: Modeling and Interfaces
Effects of using examples on structural model comprehension: a controlled experiment
Dina Zayan, Michał Antkiewicz, Krzysztof Czarnecki
Pages: 955-966
doi>10.1145/2568225.2568270
Full text: PDF
We present a controlled experiment for the empirical evaluation of Example-Driven Modeling (EDM), an approach that systematically uses examples for model comprehension and domain knowledge transfer. We conducted the experiment with 26 graduate and undergraduate ... expand
Design rule spaces: a new form of architecture insight
Lu Xiao, Yuanfang Cai, Rick Kazman
Pages: 967-977
doi>10.1145/2568225.2568241
Full text: PDF
In this paper, we investigate software architecture as a set of overlapping design rule spaces, formed by one or more structural or evolutionary relationships and clustered using our design rule hierarchy algorithm. Considering evolutionary coupling ... expand
Controlled modeling environment using flexibly-formatted spreadsheets
Hisashi Miyashita, Hideki Tai, Shunichi Amano
Pages: 978-988
doi>10.1145/2568225.2568231
Full text: PDF
As modeling in software and system development becomes increasingly prevalent, many engineers need to collaboratively develop models spanning many disciplines such as requirements management, system design, software, etc. However, integrating modeling ... expand
Feature maintenance with emergent interfaces
Márcio Ribeiro, Paulo Borba, Christian Kästner
Pages: 989-1000
doi>10.1145/2568225.2568289
Full text: PDF
Hidden code dependencies are responsible for many complications in maintenance tasks. With the introduction of variable features in configurable systems, dependencies may even cross feature boundaries, causing problems that are prone to be detected ... expand
SESSION: Apps and Verification
Detecting performance anti-patterns for applications developed using object-relational mapping
Tse-Hsun Chen, Weiyi Shang, Zhen Ming Jiang, Ahmed E. Hassan, Mohamed Nasser, Parminder Flora
Pages: 1001-1012
doi>10.1145/2568225.2568259
Full text: PDF
Object-Relational Mapping (ORM) provides developers a conceptual abstraction for mapping the application code to the underlying databases. ORM is widely used in industry due to its convenience; permitting developers to focus on developing the business ... expand
Characterizing and detecting performance bugs for smartphone applications
Yepang Liu, Chang Xu, Shing-Chi Cheung
Pages: 1013-1024
doi>10.1145/2568225.2568229
Full text: PDF
Smartphone applications’ performance has a vital impact on user experience. However, many smartphone applications suffer from bugs that cause significant performance degradation, thereby losing their competitive edge. Unfortunately, people have ... expand
Checking app behavior against app descriptions
Alessandra Gorla, Ilaria Tavecchia, Florian Gross, Andreas Zeller
Pages: 1025-1035
doi>10.1145/2568225.2568276
Full text: PDF
How do we know a program does what it claims to do? After clustering Android apps by their description topics, we identify outliers in each cluster with respect to their API usage. A "weather" app that sends messages thus becomes an anomaly; likewise, ... expand
AsDroid: detecting stealthy behaviors in Android applications by user interface and program behavior contradiction
Jianjun Huang, Xiangyu Zhang, Lin Tan, Peng Wang, Bin Liang
Pages: 1036-1046
doi>10.1145/2568225.2568301
Full text: PDF
Android smartphones are becoming increasingly popular. The open nature of Android allows users to install miscellaneous applications, including the malicious ones, from third-party marketplaces without rigorous sanity checks. A large portion of existing ... expand
SESSION: Symbolic Execution
Patch verification via multiversion interprocedural control flow graphs
Wei Le, Shannon D. Pattison
Pages: 1047-1058
doi>10.1145/2568225.2568304
Full text: PDF
Software development is inherently incremental; however, it is challenging to correctly introduce changes on top of existing code. Recent studies show that 15%-24% of the bug fixes are incorrect, and the most important yet hard-to-acquire information ... expand
Property differencing for incremental checking
Guowei Yang, Sarfraz Khurshid, Suzette Person, Neha Rungta
Pages: 1059-1070
doi>10.1145/2568225.2568319
Full text: PDF
This paper introduces iProperty, a novel approach that facilitates incremental checking of programs based on a property differencing technique. Specifically, iProperty aims to reduce the cost of checking properties as they are initially developed and ... expand
Symbolic assume-guarantee reasoning through BDD learning
Fei He, Bow-Yaw Wang, Liangze Yin, Lei Zhu
Pages: 1071-1082
doi>10.1145/2568225.2568253
Full text: PDF
Both symbolic model checking and assume-guarantee reasoning aim to circumvent the state explosion problem. Symbolic model checking explores many states simultaneously and reports numerous erroneous traces. Automated assume-guarantee reasoning, on the ... expand
Enhancing symbolic execution with veritesting
Thanassis Avgerinos, Alexandre Rebert, Sang Kil Cha, David Brumley
Pages: 1083-1094
doi>10.1145/2568225.2568293
Full text: PDF
We present MergePoint, a new binary-only symbolic execution system for large-scale and fully unassisted testing of commodity off-the-shelf (COTS) software. MergePoint introduces veritesting, a new technique that employs static symbolic execution to ... expand
SESSION: Refactoring and Reverse Engineering
Manual refactoring changes with automated refactoring validation
Xi Ge, Emerson Murphy-Hill
Pages: 1095-1105
doi>10.1145/2568225.2568280
Full text: PDF
Refactoring, the practice of applying behavior-preserving changes to existing code, can enhance the quality of software systems. Refactoring tools can automatically perform and check the correctness of refactorings. However, even when developers have ... expand
Mohsen Vakilian, Ralph E. Johnson
Pages: 1106-1116
doi>10.1145/2568225.2568282
Full text: PDF
Modern Integrated Development Environments (IDEs) support many refactorings. Yet, programmers greatly underuse automated refactorings. Recent studies have applied traditional usability testing methodologies such as surveys, lab studies, and interviews ... expand
A study and toolkit for asynchronous programming in c
Semih Okur, David L. Hartveld, Danny Dig, Arie van Deursen
Pages: 1117-1127
doi>10.1145/2568225.2568309
Full text: PDF
Asynchronous programming is in demand today, because responsiveness is increasingly important on all modern devices. Yet, we know little about how developers use asynchronous programming in practice. Without such knowledge, developers, researchers, ... expand
Reuse-oriented reverse engineering of functional components from x86 binaries
Dohyeong Kim, William N. Sumner, Xiangyu Zhang, Dongyan Xu, Hira Agrawal
Pages: 1128-1139
doi>10.1145/2568225.2568296
Full text: PDF
SESSION: Testing and Conformance Verification
Exploring variability-aware execution for testing plugin-based web applications
Hung Viet Nguyen, Christian Kästner, Tien N. Nguyen Pages: 907-918 doi>10.1145/2568225.2568300 Full text: PDF
In plugin-based systems, plugin conflicts may occur when two or more plugins interfere with one another, changing their expected behaviors. It is highly challenging to detect plugin conflicts due to the exponential explosion of the combinations of plugins ... expand
A study of equivalent and stubborn mutation operators using human analysis of equivalence
Xiangjuan Yao, Mark Harman, Yue Jia Pages: 919-930 doi>10.1145/2568225.2568265 Full text: PDF
Though mutation testing has been widely studied for more than thirty years, the prevalence and properties of equivalent mutants remain largely unknown. We report on the causes and prevalence of equivalent mutants and their relationship to stubborn mutants ... expand
Cross-checking oracles from intrinsic software redundancy
Antonio Carzaniga, Alberto Goffi, Alessandra Gorla, Andrea Mattavelli, Mauro Pezzè Pages: 931-942 doi>10.1145/2568225.2568287 Full text: PDF
Despite the recent advances in automatic test generation, testers must still write test oracles manually. If formal specifications are available, it might be possible to use decision procedures derived from those specifications. We present a technique ... expand
Mind the gap: assessing the conformance of software traceability to relevant guidelines
Patrick Rempel, Patrick Mäder, Tobias Kuschke, Jane Cleland-Huang Pages: 943-954 doi>10.1145/2568225.2568290 Full text: PDF
Many guidelines for safety-critical industries such as aeronautics, medical devices, and railway communications, specify that traceability must be used to demonstrate that a rigorous process has been followed and to provide evidence that the system ... expand
SESSION: Modeling and Interfaces
Effects of using examples on structural model comprehension: a controlled experiment
Dina Zayan, Michał Antkiewicz, Krzysztof Czarnecki Pages: 955-966 doi>10.1145/2568225.2568270 Full text: PDF
We present a controlled experiment for the empirical evaluation of Example-Driven Modeling (EDM), an approach that systematically uses examples for model comprehension and domain knowledge transfer. We conducted the experiment with 26 graduate and undergraduate ... expand
Design rule spaces: a new form of architecture insight
Lu Xiao, Yuanfang Cai, Rick Kazman Pages: 967-977 doi>10.1145/2568225.2568241 Full text: PDF
In this paper, we investigate software architecture as a set of overlapping design rule spaces, formed by one or more structural or evolutionary relationships and clustered using our design rule hierarchy algorithm. Considering evolutionary coupling ... expand
Controlled modeling environment using flexibly-formatted spreadsheets
Hisashi Miyashita, Hideki Tai, Shunichi Amano Pages: 978-988 doi>10.1145/2568225.2568231 Full text: PDF
As modeling in software and system development becomes increasingly prevalent, many engineers need to collaboratively develop models spanning many disciplines such as requirements management, system design, software, etc. However, integrating modeling ... expand
Feature maintenance with emergent interfaces
Márcio Ribeiro, Paulo Borba, Christian Kästner Pages: 989-1000 doi>10.1145/2568225.2568289 Full text: PDF
Hidden code dependencies are responsible for many complications in maintenance tasks. With the introduction of variable features in configurable systems, dependencies may even cross feature boundaries, causing problems that are prone to be detected ... expand
SESSION: Apps and Verification
Detecting performance anti-patterns for applications developed using object-relational mapping
Tse-Hsun Chen, Weiyi Shang, Zhen Ming Jiang, Ahmed E. Hassan, Mohamed Nasser, Parminder Flora Pages: 1001-1012 doi>10.1145/2568225.2568259 Full text: PDF
Object-Relational Mapping (ORM) provides developers a conceptual abstraction for mapping the application code to the underlying databases. ORM is widely used in industry due to its convenience; permitting developers to focus on developing the business ... expand
Characterizing and detecting performance bugs for smartphone applications
Yepang Liu, Chang Xu, Shing-Chi Cheung Pages: 1013-1024 doi>10.1145/2568225.2568229 Full text: PDF
Smartphone applications’ performance has a vital impact on user experience. However, many smartphone applications suffer from bugs that cause significant performance degradation, thereby losing their competitive edge. Unfortunately, people have ... expand
Checking app behavior against app descriptions
Alessandra Gorla, Ilaria Tavecchia, Florian Gross, Andreas Zeller Pages: 1025-1035 doi>10.1145/2568225.2568276 Full text: PDF
How do we know a program does what it claims to do? After clustering Android apps by their description topics, we identify outliers in each cluster with respect to their API usage. A "weather" app that sends messages thus becomes an anomaly; likewise, ... expand
AsDroid: detecting stealthy behaviors in Android applications by user interface and program behavior contradiction
Jianjun Huang, Xiangyu Zhang, Lin Tan, Peng Wang, Bin Liang Pages: 1036-1046 doi>10.1145/2568225.2568301 Full text: PDF
Android smartphones are becoming increasingly popular. The open nature of Android allows users to install miscellaneous applications, including the malicious ones, from third-party marketplaces without rigorous sanity checks. A large portion of existing ... expand
SESSION: Symbolic Execution
Patch verification via multiversion interprocedural control flow graphs
Wei Le, Shannon D. Pattison Pages: 1047-1058 doi>10.1145/2568225.2568304 Full text: PDF
Software development is inherently incremental; however, it is challenging to correctly introduce changes on top of existing code. Recent studies show that 15%-24% of the bug fixes are incorrect, and the most important yet hard-to-acquire information ... expand
Property differencing for incremental checking
Guowei Yang, Sarfraz Khurshid, Suzette Person, Neha Rungta Pages: 1059-1070 doi>10.1145/2568225.2568319 Full text: PDF
This paper introduces iProperty, a novel approach that facilitates incremental checking of programs based on a property differencing technique. Specifically, iProperty aims to reduce the cost of checking properties as they are initially developed and ... expand
Symbolic assume-guarantee reasoning through BDD learning
Fei He, Bow-Yaw Wang, Liangze Yin, Lei Zhu Pages: 1071-1082 doi>10.1145/2568225.2568253 Full text: PDF
Both symbolic model checking and assume-guarantee reasoning aim to circumvent the state explosion problem. Symbolic model checking explores many states simultaneously and reports numerous erroneous traces. Automated assume-guarantee reasoning, on the ... expand
Enhancing symbolic execution with veritesting
Thanassis Avgerinos, Alexandre Rebert, Sang Kil Cha, David Brumley Pages: 1083-1094 doi>10.1145/2568225.2568293 Full text: PDF
We present MergePoint, a new binary-only symbolic execution system for large-scale and fully unassisted testing of commodity off-the-shelf (COTS) software. MergePoint introduces veritesting, a new technique that employs static symbolic execution to ... expand
SESSION: Refactoring and Reverse Engineering
Manual refactoring changes with automated refactoring validation
Xi Ge, Emerson Murphy-Hill Pages: 1095-1105 doi>10.1145/2568225.2568280 Full text: PDF
Refactoring, the practice of applying behavior-preserving changes to existing code, can enhance the quality of software systems. Refactoring tools can automatically perform and check the correctness of refactorings. However, even when developers have ... expand
Alternate refactoring paths reveal usability problems
Mohsen Vakilian, Ralph E. Johnson Pages: 1106-1116 doi>10.1145/2568225.2568282 Full text: PDF
Modern Integrated Development Environments (IDEs) support many refactorings. Yet, programmers greatly underuse automated refactorings. Recent studies have applied traditional usability testing methodologies such as surveys, lab studies, and interviews ... expand
A study and toolkit for asynchronous programming in c
Semih Okur, David L. Hartveld, Danny Dig, Arie van Deursen Pages: 1117-1127 doi>10.1145/2568225.2568309 Full text: PDF
Asynchronous programming is in demand today, because responsiveness is increasingly important on all modern devices. Yet, we know little about how developers use asynchronous programming in practice. Without such knowledge, developers, researchers, ... expand
Reuse-oriented reverse engineering of functional components from x86 binaries
Dohyeong Kim, William N. Sumner, Xiangyu Zhang, Dongyan Xu, Hira Agrawal Pages: 1128-1139 doi>10.1145/2568225.2568296 Full text: PDF