My Fuzzers Won’t Build: An Empirical Study of Fuzzing Build Failures
Fuzzing is an automated software testing technique used to find software vulnerabilities that works by sending large amounts of inputs to a software system to trigger bad behaviors. In recent years, the open source software ecosystem has seen a ...
Software Product Line Engineering via Software Transplantation
- Leandro Oliveria de Souza,
- Eduardo Santana de Almeida,
- Paulo Anselmo da Mota Silveira Neto,
- Earl T. Barr,
- Justyna Petke
Software Product Lines (SPLs) improve time-to-market, enhance software quality, and reduce maintenance costs. Current SPL reengineering practices are largely manual and require domain knowledge. Thus, adopting and, to a lesser extent, maintaining SPLs are ...
A Large-Scale Study of IoT Security Weaknesses and Vulnerabilities in the Wild
Internet of Things (IoT) is defined as the connection between places and physical objects (i.e., things) over the internet/network via smart computing devices. IoT is a rapidly emerging paradigm that now encompasses almost every aspect of our modern life. ...
Systematic Literature Review of Commercial Participation in Open Source Software
Open source software (OSS) has been playing a fundamental role in not only information technology but also our social lives. Attracted by various advantages of OSS, increasing commercial companies are participating extensively in open source development, ...
Improving Fault Localization with External Oracle by Using Counterfactual Execution
We present Flex, a new approach to improve fault localization with external oracles. Spectrum-based fault localization techniques estimate suspicious statements based on the execution trace of the test suite. State-of-the-art techniques rely on test ...
Is It Hard to Generate Holistic Commit Message?
Commit messages are important for developers to understand the content and the reason for code changes. However, poor and even empty commit messages widely exist. To improve the quality of commit messages and development efficiency, many commit message ...
Automatic Identification of Game Stuttering via Gameplay Videos Analysis
Modern video games are extremely complex software systems and, as such, they might suffer from several types of post-release issues. A particularly insidious issue is constituted by drops in the frame rate (i.e., stuttering events), which might have a ...
ZigZagFuzz: Interleaved Fuzzing of Program Options and Files
Command-line options (e.g., -l, -F, -R for ls) given to a command-line program can significantly alternate the behaviors of the program. Thus, fuzzing not only file input but also program options can improve test coverage and bug detection. In this ...
A Novel Refactoring and Semantic Aware Abstract Syntax Tree Differencing Tool and a Benchmark for Evaluating the Accuracy of Diff Tools
Software undergoes constant changes to support new requirements, address bugs, enhance performance, and ensure maintainability. Thus, developers spend a great portion of their workday trying to understand and review the code changes of their teammates. ...
Identifying the Failure-Revealing Test Cases in Metamorphic Testing: A Statistical Approach
Metamorphic testing, thanks to its high failure-detection effectiveness especially in the absence of test oracle, has been widely applied in both the traditional context of software testing and other relevant fields such as fault localization and program ...
Deep API Sequence Generation via Golden Solution Samples and API Seeds
Automatic API recommendation can accelerate developers’ programming and has been studied for years. There are two orthogonal lines of approaches for this task, i.e., information retrieval-based (IR-based) approaches and sequence to sequence (seq2seq) ...
Non-Flaky and Nearly Optimal Time-Based Treatment of Asynchronous Wait Web Tests
Asynchronous waits are a common root cause of flaky tests and a major time-influential factor of Web application testing. We build a dataset of 49 reproducible asynchronous wait flaky tests and their fixes from 26 open source projects to study their ...
Anatomizing Deep Learning Inference in Web Browsers
Web applications have increasingly adopted Deep Learning (DL) through in-browser inference, wherein DL inference performs directly within Web browsers. The actual performance of in-browser inference and its impacts on the Quality of Experience (QoE) ...
QuanTest: Entanglement-Guided Testing of Quantum Neural Network Systems
Quantum Neural Network (QNN) combines the deep learning (DL) principle with the fundamental theory of quantum mechanics to achieve machine learning tasks with quantum acceleration. Recently, QNN systems have been found to manifest robustness issues ...
NLPLego: Assembling Test Generation for Natural Language Processing Applications
With the development of Deep Learning, Natural Language Processing (NLP) applications have reached or even exceeded human-level capabilities in certain tasks. Although NLP applications have shown good performance, they can still have bugs like traditional ...
AutoRIC: Automated Neural Network Repairing Based on Constrained Optimization
Neural networks are important computational models used in the domains of artificial intelligence and software engineering. Parameters of a neural network are obtained via training it against a specific dataset with a standard process, which guarantees ...
Interpretable Failure Localization for Microservice Systems Based on Graph Autoencoder
- Yongqian Sun,
- Zihan Lin,
- Binpeng Shi,
- Shenglin Zhang,
- Shiyu Ma,
- Pengxiang Jin,
- Zhenyu Zhong,
- Lemeng Pan,
- Yicheng Guo,
- Dan Pei
Accurate and efficient localization of root cause instances in large-scale microservice systems is of paramount importance. Unfortunately, prevailing methods face several limitations. Notably, some recent methods rely on supervised learning which ...
Non-Linear Software Documentation with Interactive Code Examples
Documentation enables sharing knowledge between the developers of a technology and its users. Creating quality documents, however, is challenging: Documents must satisfy the needs of a large audience without being overwhelming for individuals. We address ...
Patch Correctness Assessment: A Survey
Most automated program repair methods rely on test cases to determine the correctness of the generated patches. However, due to the incompleteness of available test suites, some patches that pass all the test cases may still be incorrect. This issue is ...
A Machine Learning Approach for Automated Filling of Categorical Fields in Data Entry Forms—RCR Report
This article represents the Replicated Computational Results (RCR) related to our TOSEM paper “A Machine Learning Approach for Automated Filling of Categorical Fields in Data Entry Forms,” where we proposed LAFF, an approach to automatically suggest ...