Differential Testing of Machine Translators Based on Compositional Semantics
Powered by the advances of deep neural networks, machine translation software has achieved rapid progresses recently. Machine translators are widely adopted in people's daily lives, e.g., for information consumption, medical consumption and online ...
FeatRacer: Locating Features Through Assisted Traceability
Locating features is one of the most common software development activities. It is typically done during maintenance and evolution, when developers need to identify the exact places in a codebase where specific features are implemented. Unfortunately, ...
Simulating Operational Memory Models Using Off-the-Shelf Program Analysis Tools
Memory models allow reasoning about the correctness of multithreaded programs. Constructing and using such models is facilitated by <italic>simulators</italic> that reveal which behaviours of a given program are allowed. While extensive work has been done ...
An Empirical Study of Refactoring Rhythms and Tactics in the Software Development Process
It is critical for developers to develop high-quality software to reduce maintenance cost. While often, developers apply refactoring practices to make source code readable and maintainable without impacting the software functionality. Existing studies ...
Identifying the Hazard Boundary of ML-Enabled Autonomous Systems Using Cooperative Coevolutionary Search
In Machine Learning (ML)-enabled autonomous systems (MLASs), it is essential to identify the <italic>hazard boundary</italic> of ML Components (MLCs) in the MLAS under analysis. Given that such boundary captures the conditions in terms of MLC behavior and ...
<sc>Prevent</sc>: An Unsupervised Approach to Predict Software Failures in Production
This paper presents <sc>Prevent</sc>, a fully unsupervised approach to predict and localize failures in distributed enterprise applications. Software failures in production are unavoidable. Predicting failures and locating failing components online are ...
Mitigating False Positive Static Analysis Warnings: Progress, Challenges, and Opportunities
- Zhaoqiang Guo,
- Tingting Tan,
- Shiran Liu,
- Xutong Liu,
- Wei Lai,
- Yibiao Yang,
- Yanhui Li,
- Lin Chen,
- Wei Dong,
- Yuming Zhou
Static analysis (SA) tools can generate useful static warnings to reveal the problematic code snippets in a software system without dynamically executing the corresponding source code. In the literature, static warnings are of paramount importance because ...
Studying the Influence and Distribution of the Human Effort in a Hybrid Fitness Function for Search-Based Model-Driven Engineering
Search-Based Software Engineering (SBSE) offers solutions that efficiently explore large complex problem spaces. To obtain more favorable solutions, human participation in the search process is needed. However, humans cannot handle the same number of ...
Confirmation Bias and Time Pressure: A Family of Experiments in Software Testing
<bold>Background</bold>: Software testers manifest confirmation bias (the cognitive tendency) when they design relatively more specification consistent test cases than specification inconsistent test cases. Time pressure may influence confirmation bias of ...
The <italic>Why</italic>, <italic>When</italic>, <italic>What,</italic> and <italic>How</italic> About Predictive Continuous Integration: A Simulation-Based Investigation
Continuous Integration (CI) enables developers to detect defects early and thus reduce lead time. However, the high frequency and long duration of executing CI have a detrimental effect on this practice. Existing studies have focused on using CI outcome ...
Robust Test Selection for Deep Neural Networks
Deep Neural Networks (DNNs) have been widely used in various domains, such as computer vision and software engineering. Although many DNNs have been deployed to assist various tasks in the real world, similar to traditional software, they also suffer from ...
PatchDiscovery: Patch Presence Test for Identifying Binary Vulnerabilities Based on Key Basic Blocks
Software vulnerabilities are easily propagated through code reuses, which pose dire threats to software system security. Automatic patch presence test offers an effective way to detect whether vulnerabilities have been patched, which is significant for ...