Shangwen Wang

Shangwen Wang
National University of Defense Technology | NUDT · Department of Computer Science and Technology

Doctor of Engineering

About

34
Publications
8,481
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
227
Citations
Citations since 2016
34 Research Items
226 Citations
2016201720182019202020212022020406080
2016201720182019202020212022020406080
2016201720182019202020212022020406080
2016201720182019202020212022020406080
Introduction
Currently, I am a Ph.D student at National University of Defense Technology. I have obtained my bachelor degree and master degree from NUDT at June, 2017 and December, 2019, respectively. During my master study, I was honored to be supervised by Prof. Xiaoguang Mao. My research interests mainly focus on program repair, software testing, software maintenance and evolution, mining software repositories, and empirical software engineering. Here is my homepage: https://shangwenwang.github.io/.

Publications

Publications (34)
Article
Full-text available
Context Tangled commits are changes to software that address multiple concerns at once. For researchers interested in bugs, tangled commits mean that they actually study not only bugs, but also other concerns irrelevant for the study of bugs. Objective We want to improve our understanding of the prevalence of tangling and the types of changes that...
Preprint
Full-text available
In this work, we propose a novel perspective to the problem of patch correctness assessment: a correct patch implements changes that "answer" to a problem posed by buggy behaviour. Concretely, we turn the patch correctness assessment into a Question Answering problem. To tackle this problem, our intuition is that natural language processing can pro...
Article
Full-text available
Just-in-time comment update is a promising way to reduce the burden of developers during software maintenance and evolution. Existing approaches can be divided into two categories: the heuristic-based approach and the deep-learning-based approach. The heuristic-based approach is restricted to a specific type of comment updates (i.e., code-indicativ...
Conference Paper
Full-text available
Regression testing is a widely adopted approach to expose change-induced bugs as well as to verify the correct-ness/robustness of code in modern software development settings. Unfortunately, the occurrence of flaky tests leads to a significant increase in the cost of regression testing and eventually reduces the productivity of developers (i.e., th...
Conference Paper
Full-text available
Code comment, i.e., the natural language text to describe code, is considered as a killer for program comprehension. Current literature approaches mainly focus on comment generation or comment update, and thus fall short on explaining which part of the code leads to a specific content in the comment. In this paper, we propose that addressing such a...
Preprint
Full-text available
Microservice architecture is a dominant architec-tural style in SaaS industry, which helps to develop a singleapplication as a collection of independent, well-defined, and inter-communicating services. The number of microservice-relatedquestions in Q&A websites, such as Stack Overflow, has ex-panded substantially over the last years. Due to its inc...
Preprint
Full-text available
Docker containers are being widely used in large-scale industrial environments. In practice, developers must manually specify the base image in the dockerfile in the process of container creation. However, finding the proper base image is a nontrivial task because manually searching is time-consuming and easily leads to the use of unsuitable base i...
Article
Full-text available
Despite the capability in successfully fixing more and more real-world bugs, existing Automated Program Repair (APR) techniques are still challenged by the long-standing overfitting problem (i.e., a generated patch that passes all tests is actually incorrect). Plenty of approaches have been proposed for automated patch correctness assessment (APCA)...
Preprint
Full-text available
Software Fault Localization refers to the activity of finding code elements (e.g., statements) that are related to a software failure. The state-of-the-art fault localization techniques, however, produce coarse-grained results that can deter manual debugging or mislead automated repair tools. In this work, we focus specifically on the fine-grained...
Conference Paper
Full-text available
Smart contracts with natural economic attributes have been widely and rapidly developed in various fields. However , the bugs and vulnerabilities in smart contracts have brought huge economic losses, which has strengthened people's attention to the security issues of smart contracts. The immutability of smart contracts makes people more willing to...
Conference Paper
Full-text available
The quality of method names is critical for the readability and maintainability of source code. However, it is often challenging to construct concise method names. To alleviate this problem, a number of approaches have been proposed to automatically recommend high-quality names for methods. Despite being effective, existing approaches meet their bo...
Conference Paper
Full-text available
Code comments are key to program comprehension. When they are not consistent with the code, maintenance is hindered. Yet developers often forget to update comments along with their code evolution. With recent advances in neural ma- chine translation, the research community is contemplating novel approaches for automatically generating up-to-date co...
Conference Paper
Full-text available
The literature of Automated Program Repair is largely dominated by approaches that leverage test suites not only to expose bugs but also to validate the generated patches. Unfortunately, beyond the widely-discussed concern that test suites are an imperfect oracle because they can be incomplete, they can include tests that are flaky. A flaky test is...
Preprint
Full-text available
Context: Tangled commits are changes to software that address multiple concerns at once. For researchers interested in bugs, tangled commits mean that they actually study not only bugs, but also other concerns irrelevant for the study of bugs. Objective: We want to improve our understanding of the prevalence of tangling and the types of changes tha...
Conference Paper
Full-text available
Automated Program Repair (APR) is becoming a hot topic in Software Engineering community with many approaches being proposed and experiments being performed over the years. The results obtained from different experiments can be used as practical guidance to advance APR techniques. However, researchers have generally ignored the biases with respect...
Conference Paper
Full-text available
Test-based automated program repair (APR) has attracted huge attention from both industry and academia. Despite the significant progress made in recent studies, the overfitting problem (i.e., the generated patch is plausible but overfitting) is still a major and long-standing challenge. Therefore, plenty of techniques have been proposed to assess t...
Preprint
Full-text available
Test-based automated program repair has been a prolific field of research in software engineering in the last decade. Many approaches have indeed been proposed, which leverage test suites as a weak, but affordable, approximation to program specifications. Although the literature regularly sets new records on the number of benchmark bugs that can be...
Conference Paper
Full-text available
Test-based automated program repair has been a prolific field of research in software engineering in the last decade. Many approaches have indeed been proposed, which leverage test suites as a weak, but affordable, approximation to program specifications. While the literature regularly sets new records on the number of benchmark bugs that can be fi...
Article
Full-text available
To ensure the internal code quality of contributions in open source software (OSS) communities, static analysis tools (e.g. Code Climate and SonarQube) have been integrated into the modern pull-based workflow for detecting code quality issues (CQIs). Automated CQI fixing is conducive to improve the efficiency of converging massive contributions. In...
Conference Paper
Full-text available
Background: Over the years, Automated Program Repair (APR) has attracted much attention from both academia and industry since it can reduce the costs in fixing bugs. However, how to assess the patch correctness remains to be an open challenge. Two widely adopted ways to approach this challenge, including manually checking and validating using autom...
Preprint
Background: Over the years, Automated Program Repair (APR) has attracted much attention from both academia and industry since it can reduce the costs in fixing bugs. However, how to assess the patch correctness remains to be an open challenge. Two widely adopted ways to approach this challenge, including manually checking and validating using autom...
Article
Organ transplantation has brought convenience for software reuse and evolution since it was proposed. However, studies about mature, high-quality organs are still insufficient. It is still unclear about the detailed characteristics of organs in open-source environment. In this paper, we look deep into organs obtained from software evolution process...
Conference Paper
Full-text available
Automated program repair (APR) has attracted widespread attention in recent years with substantial techniques being proposed. Meanwhile, a number of benchmarks have been established for evaluating the performances of APR techniques, among which Defects4J is one of the most widely used benchmark. However, bugs in Mockito, a project augmented in a la...
Preprint
Full-text available
Automated program repair (APR) has caused widespread concern in recent years with many techniques being proposed. Meanwhile, a number of benchmarks have been established for evaluating the performances of APR tools and Defects4J is a wildly used database among them. However, bugs in a later released project, Mockito, do not receive much attention i...
Preprint
Full-text available
Automated program repair (APR) has great potential to reduce the effort and time-consumption in software maintenance and becomes a hot topic in software engineering recently with many approaches being proposed. Multi-location program repair has always been a challenge in this field since its complexity in logic and structure. While some approaches...
Article
Full-text available
Organ transplantation, which is the utilization of codes directly related to some specific functionalities to complete one’s own program, provides more convenience for developers than traditional component reuse. However, recent techniques are challenged with the lack of organs for transplantation. Hence, we conduct an empirical study on extracting...
Conference Paper
Full-text available
Research on the characteristics of error propagation can guide fault localization more efficiently. Spectrum-based fault localization (SFL) and slice-based fault localization are effective fault localization techniques. The former produces a list of statements in descending order of suspicious values, and the latter generates statements that affect...
Chapter
Full-text available
Open source resources are playing a more and more important role in software engineering for reuse. However, the dramatically increasing scale of these re-sources brings great challenges for their management and location. In this study, we propose a hybrid approach for automatic tag hierarchy construction, which combines the tag co-occurrence relat...

Network

Cited By

Projects

Projects (4)
Project
We aim to use sound methods like deep learning and so on to address the problems happened during software evolution, such as improving the readability of programs, detecting program vulnerabilities, predicting the defects, etc.
Project
In this project, we aim to automatically repair the bugs in the programs.
Project
try to transplant organs from open-source softwares