3,458 papers · page 110 of 173
Higor Amario de Souza, Marcos Lordello Chaim
Fault localization is a costly task in the debugging process. Several techniques to automate fault localization have been proposed aiming at reducing effort and time spent. Some techniques use heuristics based on code coverage data. The goal is to indicate program code excerpts m…
William N. Sumner, Xiangyu Zhang
Dynamic analyses rely on the ability to identify points within or across executions. In spite of this being a core task for dynamic analyses, new solutions are frequently developed without an awareness of existing solutions, their strengths, their weaknesses, or their caveats. Th…
Samira Tasharofi, Michael Pradel, Yu Lin, Ralph E. Johnson
Actor programs are concurrent programs where concurrent entities communicate asynchronously by exchanging messages. Testing actor programs is challenging because the order of message receives depends on the non-deterministic scheduler and because exploring all schedules does not …
Ferdian Thung, Shaowei Wang, David Lo, Julia Lawall
Developers often receive many feature requests. To implement these features, developers can leverage various methods from third party libraries. In this work, we propose an automated approach that takes as input a textual description of a feature request. It then recommends metho…
Nikolai Tillmann, Jonathan de Halleux, Tao Xie, Judith Bishop
Pex4Fun (http://www.pex4fun.com/) is a web-based educational gaming environment for teaching and learning programming and software engineering. Pex4Fun can be used to teach and learn programming and software engineering at many levels, from high school all the way through graduat…
Radu Vanciu, Marwan Abi-Antoun
During Architectural Risk Analysis (ARA), security architects use a runtime architecture to look for security vulnerabilities that are architectural flaws rather than coding defects. The current ARA process, however, is mostly informal and manual. In this paper, we propose Scoria…
Varsha Veerappa, Rachel Harrison
Requirements engineers need to be confident that enough requirements analysis has been done before a project can move forward. In the context of KAOS, this information can be derived from the soundness of the refinements: sound refinements indicate that the requirements in the go…
Westley Weimer, Zachary P. Fry, Stephanie Forrest
Software bugs remain a compelling problem. Automated program repair is a promising approach for reducing cost, and many methods have recently demonstrated positive results. However, success on any particular bug is variable, as is the cost to find a repair. This paper focuses on …
Edmund Wong, Jinqiu Yang, Lin Tan
Code comments improve software maintainability. To address the comment scarcity issue, we propose a new automatic comment generation approach, which mines comments from a large programming Question and Answer (Q&A) site. Q&A sites allow programmers to post questions and receive s…
Yongzheng Wu, Jun Sun, Yang Liu, Jin Song Dong
The principle of least privilege requires that software components should be granted only necessary privileges, so that compromising one component does not lead to compromising others. However, writing privilege separated software is difficult and as a result, a large number of s…
Dustin Wüest, Norbert Seyff, Martin Glinz
Traditionally, metamodeling is an upfront activity performed by experts for defining modeling languages. Modeling tools then typically restrict modelers to using only constructs defined in the metamodel. This is inappropriate when users want to sketch graphical models without any…
Hao Xiao, Jun Sun, Yang Liu, Shang-Wei Lin, Chengnian Sun
Behavioral models are useful for various software engineering tasks. They are, however, often missing in practice. Thus, specification mining was proposed to tackle this problem. Existing work either focuses on learning simple behavioral models such as finite-state automata, or r…
Xusheng Xiao, Sihan Li, Tao Xie, Nikolai Tillmann
Dynamic Symbolic Execution (DSE) is a state-of-the-art test-generation approach that systematically explores program paths to generate high-covering tests. In DSE, the presence of loops (especially unbound loops) can cause an enormous or even infinite number of paths to be explor…
Zhihong Xu, Martin Hirzel, Gregg Rothermel, Kun-Lung Wu
Dataflow programming languages, which represent programs as graphs of data streams and operators, are becoming increasingly popular and being used to create a wide array of commercial software applications. The dependability of programs written in these languages, as well as the …
Chang Xu, Wenhua Yang, Xiaoxing Ma, Chun Cao, Jian Lu
Self-adaptive applications can easily contain faults. Existing approaches detect faults, but can still leave some undetected and manifesting into failures at runtime. In this paper, we study the correlation between occurrences of application failure and those of consistency failu…
Shao Jie Zhang, Jun Sun, Chengnian Sun, Yang Liu, Junwei Ma, Jin Song Dong
We present an automatic approach to detecting symmetry relations for general concurrent models. Despite the success of symmetry reduction in mitigating state explosion problem, one essential step towards its soundness and effectiveness, i.e., how to discover sufficient symmetries…
Lu Zhang, Arijit Chattopadhyay, Chao Wang
We propose a new method for runtime checking of a relaxed consistency property called quasi linearizability for concurrent data structures. Quasi linearizability generalizes the standard notion of linearizability by intentionally introducing nondeterminism into the parallel compu…
Lingming Zhang, Milos Gligoric, Darko Marinov, Sarfraz Khurshid
Mutation testing is a powerful methodology for evaluating the quality of a test suite. However, the methodology is also very costly, as the test suite may have to be executed for each mutant. Selective mutation testing is a well-studied technique to reduce this cost by selecting …
Gang Zhang, Xin Peng, Zhenchang Xing, Shihai Jiang, Hai Wang, Wenyun Zhao
Effective clone management is essential for developers to recognize the introduction and evolution of code clones, to judge their impact on software quality, and to take appropriate measures if required. Our previous study shows that cloning practice is not simply a technical iss…
Sai Zhang, Yuyin Sun
Many computer end-users, such as research scientists and business analysts, need to frequently query a database, yet lack enough programming knowledge to write a correct SQL query. To alleviate this problem, we present a programming by example technique (and its tool implementati…