Open Access. Powered by Scholars. Published by Universities.®
- Discipline
- Institution
- Publication Year
Articles 1 - 30 of 47
Full-Text Articles in Software Engineering
Fortifying The Seams Between C/C++ And Rust: Characterizing Bugs In Interop Tools, Xuemeng Cai, Jiakun Liu, Cunyang Liu, Lingfeng Bao, Yijun Yu, Lingxiao Jiang
Fortifying The Seams Between C/C++ And Rust: Characterizing Bugs In Interop Tools, Xuemeng Cai, Jiakun Liu, Cunyang Liu, Lingfeng Bao, Yijun Yu, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
Rust has become increasingly popular in recent years due to its safety and high performance. Despite these advantages, Rust projects rarely start from scratch in practice, and many Rust-based systems instead use hybrid programming, where Rust interoperates with existing C/C++ code. To reduce the manual effort involved in this interoperation (interop) process, several interop tools have been proposed to facilitate hybrid programming between Rust and C/C++. However, the challenges and limitations of these tools remain largely unexplored, leaving developers unclear about the future directions and users unclear about the appropriate usage scenarios. To fill the gap, we mined 320 bugs …
Exploring Parameter-Efficient Fine-Tuning Techniques For Code Generation With Large Language Models, Martin Weyssow, Xin Zhou, Kisub Kim, David Lo, Houari A. Sahraoui
Exploring Parameter-Efficient Fine-Tuning Techniques For Code Generation With Large Language Models, Martin Weyssow, Xin Zhou, Kisub Kim, David Lo, Houari A. Sahraoui
Research Collection School Of Computing and Information Systems
Large language models (LLMs) demonstrate impressive capabilities to generate accurate code snippets given natural language intents in a zero-shot manner, i.e., without the need for specific fine-tuning. While prior studies have highlighted the advantages of fine-tuning LLMs, this process incurs high computational costs, making it impractical in resource-scarce environments, particularly for models with billions of parameters. To address these challenges, previous research explored in-context learning (ICL) and retrieval-augmented generation (RAG) as strategies to guide the LLM generative process with task-specific prompt examples. However, ICL and RAG introduce inconveniences, such as the need for designing contextually relevant prompts and the absence …
Assessing The Robustness Of Test Selection Methods For Deep Neural Networks, Qiang Hu, Yuejun Guo, Xiaofei Xie, Maxime Cordy, Wei Ma, Mike Papadakis, Lei Ma, Yves Le Traon
Assessing The Robustness Of Test Selection Methods For Deep Neural Networks, Qiang Hu, Yuejun Guo, Xiaofei Xie, Maxime Cordy, Wei Ma, Mike Papadakis, Lei Ma, Yves Le Traon
Research Collection School Of Computing and Information Systems
Regularly testing deep learning-powered systems on newly collected data is critical to ensure their reliability, robustness, and efficacy in real-world applications. This process is demanding due to the significant time and human effort required for labeling new data. While test selection methods alleviate manual labor by labeling and evaluating only a subset of data while meeting testing criteria, we observe that such methods with reported promising results are simply evaluated, e.g., testing on original test data. The question arises: are they always reliable? In this article, we explore when and to what extent test selection methods fail. First, we identify …
Exploring The Capabilities Of Llms For Code-Change-Related Tasks, Lishui Fan, Jiakun Liu, Zhongxin Liu, David Lo, Xin Xia, Shanping Li
Exploring The Capabilities Of Llms For Code-Change-Related Tasks, Lishui Fan, Jiakun Liu, Zhongxin Liu, David Lo, Xin Xia, Shanping Li
Research Collection School Of Computing and Information Systems
Developers deal with code-change-related tasks daily, e.g., reviewing code. Pre-trained code and code-change-oriented models have been adapted to help developers with such tasks. Recently, large language models (LLMs) have shown their effectiveness in code-related tasks. However, existing LLMs for code focus on general code syntax and semantics rather than the differences between two code versions. Thus, it is an open question how LLMs perform on code-change-related tasks.To answer this question, we conduct an empirical study using 1B parameters LLMs on three code-change-related tasks, i.e., code review generation, commit message generation, and just-in-time comment update, with in-context learning (ICL) and parameter-efficient …
Explaining Explanations: An Empirical Study Of Explanations In Code Reviews, Ratnadira Widyasari, Ting Zhang, Abir Bouraffa, Walid Maalej, David Lo
Explaining Explanations: An Empirical Study Of Explanations In Code Reviews, Ratnadira Widyasari, Ting Zhang, Abir Bouraffa, Walid Maalej, David Lo
Research Collection School Of Computing and Information Systems
Code reviews are central for software quality assurance. Ideally, reviewers should explain their feedback to enable authors of code changes to understand the feedback and act accordingly. Different developers might need different explanations in different contexts. Therefore, assisting this process first requires understanding the types of explanations reviewers usually provide. The goal of this article is to study the types of explanations used in code reviews and explore the potential of Large Language Models (LLMs), specifically ChatGPT, in generating these specific types. We extracted 793 code review comments from Gerrit and manually labeled them based on whether they contained a …
An Empirical Study Of Api Misuses Of Data-Centric Libraries, Akalanda Galappaththi, Sarah Nadi, Christoph Treude
An Empirical Study Of Api Misuses Of Data-Centric Libraries, Akalanda Galappaththi, Sarah Nadi, Christoph Treude
Research Collection School Of Computing and Information Systems
Developers rely on third-party library Application Programming Interfaces (APIs) when developing software. However, libraries typically come with assumptions and API usage constraints, whose violation results in API misuse. API misuses may result in crashes or incorrect behavior. Even though API misuse is a well-studied area, a recent study of API misuse of deep learning libraries showed that the nature of these misuses and their symptoms are different from misuses of traditional libraries, and as a result highlighted potential shortcomings of current misuse detection tools. We speculate that these observations may not be limited to deep learning API misuses but may …
An Empirical Study Of Automatic Program Repair Techniques For Injection Vulnerabilities, Tingwei Zhu, Tongtong Xu, Kui Liu, Jiayuan Zhou, Xing Hu, Xin Xia, Tian Zhang, David Lo
An Empirical Study Of Automatic Program Repair Techniques For Injection Vulnerabilities, Tingwei Zhu, Tongtong Xu, Kui Liu, Jiayuan Zhou, Xing Hu, Xin Xia, Tian Zhang, David Lo
Research Collection School Of Computing and Information Systems
Injection vulnerabilities are among the most serious and dangerous security defects, as they can be exploited by attackers to inject malicious inputs and carry out cybercrimes. Timely fixing of injection vulnerabilities is crucial. However, manual repairs of injection vulnerabilities often require specialized knowledge and are prone to errors, posing a challenge and a heavy burden on developers. In recent years, Automated Program Repair (APR) techniques have shown promising momentum in automatically fixing general defects. Yet, there has been no research on how APR techniques perform in repairing injection vulnerabilities. Therefore, in this paper, we conduct an empirical study. We first …
Evaluating Szz Implementations : An Empirical Study On The Linux Kernel, Yunbo Lyu, Hong Jin Kang, Ratnadira Widyasari, Julia Lawall, David Lo
Evaluating Szz Implementations : An Empirical Study On The Linux Kernel, Yunbo Lyu, Hong Jin Kang, Ratnadira Widyasari, Julia Lawall, David Lo
Research Collection School Of Computing and Information Systems
The SZZ algorithm is used to connect bug-fixing commits to the earlier commits that introduced bugs. This algorithm has many applications and many variants have been devised. However, there are some types of commits that cannot be traced by the SZZ algorithm, referred to as “ghost commits”. The evaluation of how these ghost commits impact the SZZ implementations remains limited. Moreover, these implementations have been evaluated on datasets created by software engineering researchers from information in bug trackers and version controlled histories. Since Oct 2013, the Linux kernel developers have started labelling bug-fixing patches with the commit identifiers of the …
Dappscan: Building Large-Scale Datasets For Smart Contract Weaknesses In Dapp Projects, Zibin Zheng, Jianzhong Su, Jiachi Chen, David Lo, Zhijie Zhong, Mingxi Ye
Dappscan: Building Large-Scale Datasets For Smart Contract Weaknesses In Dapp Projects, Zibin Zheng, Jianzhong Su, Jiachi Chen, David Lo, Zhijie Zhong, Mingxi Ye
Research Collection School Of Computing and Information Systems
The Smart Contract Weakness Classification Registry (SWC Registry) is a widely recognized list of smart contract weaknesses specific to the Ethereum platform. Despite the SWC Registry not being updated with new entries since 2020, the sustained development of smart contract analysis tools for detecting SWC-listed weaknesses highlights their ongoing significance in the field. However, evaluating these tools has proven challenging due to the absence of a large, unbiased, real-world dataset. To address this problem, we aim to build a large-scale SWC weakness dataset from real-world DApp projects. We recruited 22 participants and spent 44 person-months analyzing 1,199 open-source audit reports …
A Closer Look At The Security Risks In The Rust Ecosystem, Xiaoye Zheng, Zhiyuan Wan, Yun Zhang, Rui Chang, David Lo
A Closer Look At The Security Risks In The Rust Ecosystem, Xiaoye Zheng, Zhiyuan Wan, Yun Zhang, Rui Chang, David Lo
Research Collection School Of Computing and Information Systems
Rust is an emerging programming language designed for the development of systems software. To facilitate the reuse of Rust code, crates.io, as a central package registry of the Rust ecosystem, hosts thousands of third-party Rust packages. The openness of crates.io enables the growth of the Rust ecosystem but comes with security risks by severe security advisories. Although Rust guarantees a software program to be safe via programming language features and strict compile-time checking, the unsafe keyword in Rust allows developers to bypass compiler safety checks for certain regions of code. Prior studies empirically investigate the memory safety and concurrency bugs …
Web Apis: Features, Issues, And Expectations: A Large-Scale Empirical Study Of Web Apis From Two Publicly Accessible Registries Using Stack Overflow And A User Survey, Neng Zhang, Ying Zou, Xin Xia, David Lo, David Lo, Shanping Li
Web Apis: Features, Issues, And Expectations: A Large-Scale Empirical Study Of Web Apis From Two Publicly Accessible Registries Using Stack Overflow And A User Survey, Neng Zhang, Ying Zou, Xin Xia, David Lo, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
With the increasing adoption of services-oriented computing and cloud computing technologies, web APIs have become the fundamental building blocks for constructing software applications. Web APIs are developed and published on the internet. The functionality of web APIs can be used to facilitate the development of software applications. There are numerous studies on retrieving and recommending candidate web APIs based on user requirements from a large set of web APIs. However, there are very limited studies on the features of web APIs that make them more likely to be used and the issues of using web APIs in practice. Moreover, users' …
Real World Projects, Real Faults: Evaluating Spectrum Based Fault Localization Techniques On Python Projects, Ratnadira Widyasari, Gede Artha Azriadi Prana, Stefanus Agus Haryono, Shaowei Wang, David Lo
Real World Projects, Real Faults: Evaluating Spectrum Based Fault Localization Techniques On Python Projects, Ratnadira Widyasari, Gede Artha Azriadi Prana, Stefanus Agus Haryono, Shaowei Wang, David Lo
Research Collection School Of Computing and Information Systems
Spectrum Based Fault Localization (SBFL) is a statistical approach to identify faulty code within a program given a program spectra (i.e., records of program elements executed by passing and failing test cases). Several SBFL techniques have been proposed over the years, but most evaluations of those techniques were done only on Java and C programs, and frequently involve artificial faults. Considering the current popularity of Python, indicated by the results of the Stack Overflow survey among developers in 2020, it becomes increasingly important to understand how SBFL techniques perform on Python projects. However, this remains an understudied topic. In this …
Defining Smart Contract Defects On Ethereum, Jiachi Chen, Xin Xia, David Lo, John Grundy, Xiapu Luo, Ting Chen
Defining Smart Contract Defects On Ethereum, Jiachi Chen, Xin Xia, David Lo, John Grundy, Xiapu Luo, Ting Chen
Research Collection School Of Computing and Information Systems
Smart contracts are programs running on a blockchain. They are immutable to change, and hence can not be patched for bugs once deployed. Thus it is critical to ensure they are bug-free and well-designed before deployment. A Contract defect is an error, flaw or fault in a smart contract that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The detection of contract defects is a method to avoid potential bugs and improve the design of existing code. Since smart contracts contain numerous distinctive features, such as the gas system. decentralized, it is important …
Github Discussions: An Exploratory Study Of Early Adoption, Hideaki Hata, Nicole Novielli, Sebastian Baltes, Raula Kula, Christoph Treude
Github Discussions: An Exploratory Study Of Early Adoption, Hideaki Hata, Nicole Novielli, Sebastian Baltes, Raula Kula, Christoph Treude
Research Collection School Of Computing and Information Systems
Discussions is a new feature of GitHub for asking questions or discussing topics outside of specific Issues or Pull Requests. Before being available to all projects in December 2020, it had been tested on selected open source software projects. To understand how developers use this novel feature, how they perceive it, and how it impacts the development processes, we conducted a mixed-methods study based on early adopters of GitHub discussions from January until July 2020. We found that: (1) errors, unexpected behavior, and code reviews are prevalent discussion categories; (2) there is a positive relationship between project member involvement and …
Smart Contract Security: A Practitioners' Perspective, Zhiyuan Wan, Xin Xia, David Lo, Jiachi Chen, Xiapu Luo, Xiaohu Yang
Smart Contract Security: A Practitioners' Perspective, Zhiyuan Wan, Xin Xia, David Lo, Jiachi Chen, Xiapu Luo, Xiaohu Yang
Research Collection School Of Computing and Information Systems
Smart contracts have been plagued by security incidents, which resulted in substantial financial losses. Given numerous research efforts in addressing the security issues of smart contracts, we wondered how software practitioners build security into smart contracts in practice. We performed a mixture of qualitative and quantitative studies with 13 interviewees and 156 survey respondents from 35 countries across six continents to understand practitioners' perceptions and practices on smart contract security. Our study uncovers practitioners' motivations and deterrents of smart contract security, as well as how security efforts and strategies fit into the development lifecycle. We also find that blockchain platforms …
Do Users Care About Ad's Performance Costs? Exploring The Effects Of The Performance Costs Of In-App Ads On User Experience, Cuiyun Gao, Jichuan Zeng, Federica Sarro, David Lo, Irwin King, Michael R. Lyu
Do Users Care About Ad's Performance Costs? Exploring The Effects Of The Performance Costs Of In-App Ads On User Experience, Cuiyun Gao, Jichuan Zeng, Federica Sarro, David Lo, Irwin King, Michael R. Lyu
Research Collection School Of Computing and Information Systems
Context: In-app advertising is the primary source of revenue for many mobile apps. The cost of advertising (ad cost) is non-negligible for app developers to ensure a good user experience and continuous profits. Previous studies mainly focus on addressing the hidden performance costs generated by ads, including consumption of memory, CPU, data traffic, and battery. However, there is no research on analyzing users’ perceptions of ads’ performance costs to our knowledge.Objective: To fill this gap and better understand the effects of performance costs of in-app ads on user experience, we conduct a study on analyzing user concerns about ads’ performance …
An Exploratory Study On The Introduction And Removal Of Different Types Of Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li
An Exploratory Study On The Introduction And Removal Of Different Types Of Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
To complete tasks faster, developers often have to sacrifice the quality of the software. Such compromised practice results in the increasing burden to developers in future development. The metaphor, technical debt, describes such practice. Prior research has illustrated the negative impact of technical debt, and many researchers investigated how developers deal with a certain type of technical debt. However, few studies focused on the removal of different types of technical debt in practice. To fill this gap, we use the introduction and removal of different types of self-admitted technical debt (i.e., SATD) in 7 deep learning frameworks as an example. …
The Impact Of Dynamics Of Collaborative Software Engineering On Introverts: A Study Protocol, Ingrid Nunes, Christoph Treude, Fabio Calefato
The Impact Of Dynamics Of Collaborative Software Engineering On Introverts: A Study Protocol, Ingrid Nunes, Christoph Treude, Fabio Calefato
Research Collection School Of Computing and Information Systems
Background: Collaboration among software engineers through face-to-face discussions in teams has been promoted since the adoption of agile methods. However, these discussions might demote the contribution of software engineers who are introverts, possibly leading to sub-optimal solutions and creating work environments that benefit extroverts. Objective: We aim to evaluate whether providing software engineers with time to work individually and reason about a collective problem is a setting that makes introverts more comfortable to interact and contribute more, ultimately leading to better solutions. Method: We plan to conduct a between-subjects study, with teams in a control group that design a software …
An Empirical Study Of The Dependency Networks Of Deep Learning Libraries, Junxiao Han, Shuiguang Deng, David Lo, Chen Zhi, Jianwei Yin, Xin Xia
An Empirical Study Of The Dependency Networks Of Deep Learning Libraries, Junxiao Han, Shuiguang Deng, David Lo, Chen Zhi, Jianwei Yin, Xin Xia
Research Collection School Of Computing and Information Systems
Deep Learning techniques have been prevalent in various domains, and more and more open source projects in GitHub rely on deep learning libraries to implement their algorithms. To that end, they should always keep pace with the latest versions of deep learning libraries to make the best use of deep learning libraries. Aptly managing the versions of deep learning libraries can help projects avoid crashes or security issues caused by deep learning libraries. Unfortunately, very few studies have been done on the dependency networks of deep learning libraries. In this paper, we take the first step to perform an exploratory …
Is Using Deep Learning Frameworks Free?: Characterizing Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li
Is Using Deep Learning Frameworks Free?: Characterizing Technical Debt In Deep Learning Frameworks, Jiakun Liu, Qiao Huang, Xin Xia, Emad Shihab, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
Developers of deep learning applications (shortened as application developers) commonly use deep learning frameworks in their projects. However, due to time pressure, market competition, and cost reduction, developers of deep learning frameworks (shortened as framework developers) often have to sacrifice software quality to satisfy a shorter completion time. This practice leads to technical debt in deep learning frameworks, which results in the increasing burden to both the application developers and the framework developers in future development.In this paper, we analyze the comments indicating technical debt (self-admitted technical debt) in 7 of the most popular open-source deep learning frameworks. Although framework …
Are The Code Snippets What We Are Searching For? A Benchmark And An Empirical Study On Code Search With Natural-Language Queries, Shuhan Yan, Hang Yu, Yuting Chen, Beijun Shen
Are The Code Snippets What We Are Searching For? A Benchmark And An Empirical Study On Code Search With Natural-Language Queries, Shuhan Yan, Hang Yu, Yuting Chen, Beijun Shen
Research Collection School Of Computing and Information Systems
Code search methods, especially those that allow programmers to raise queries in a natural language, plays an important role in software development. It helps to improve programmers' productivity by returning sample code snippets from the Internet and/or source-code repositories for their natural-language queries. Meanwhile, there are many code search methods in the literature that support natural-language queries. Difficulties exist in recognizing the strengths and weaknesses of each method and choosing the right one for different usage scenarios, because (1) the implementations of those methods and the datasets for evaluating them are usually not publicly available, and (2) some methods leverage …
Memory And Resource Leak Defects And Their Repairs In Java Projects, Mohammadreza Ghanavati, Diego Costa, Janos Seboek, David Lo, Artur Andrzejak
Memory And Resource Leak Defects And Their Repairs In Java Projects, Mohammadreza Ghanavati, Diego Costa, Janos Seboek, David Lo, Artur Andrzejak
Research Collection School Of Computing and Information Systems
Despite huge software engineering efforts and programming language support, resource and memory leaks are still a troublesome issue, even in memory-managed languages such as Java. Understanding the properties of leak-inducing defects, how the leaks manifest, and how they are repaired is an essential prerequisite for designing better approaches for avoidance, diagnosis, and repair of leak-related bugs. We conduct a detailed empirical study on 452 issues from 10 large opensource Java projects. The study proposes taxonomies for the leak types, for the defects causing them, and for the repair actions. We investigate, under several aspects, the distributions within each taxonomy and …
An Empirical Study Towards Characterizing Deep Learning Development And Deployment Across Different Frameworks And Platforms, Qianyu Guo, Sen Chen, Xiaofei Xie, Lei Ma, Qiang Hu, Hongtao Liu, Yang Liu, Jianjun Zhao, Xiaohong Li
An Empirical Study Towards Characterizing Deep Learning Development And Deployment Across Different Frameworks And Platforms, Qianyu Guo, Sen Chen, Xiaofei Xie, Lei Ma, Qiang Hu, Hongtao Liu, Yang Liu, Jianjun Zhao, Xiaohong Li
Research Collection School Of Computing and Information Systems
Deep Learning (DL) has recently achieved tremendous success. A variety of DL frameworks and platforms play a key role to catalyze such progress. However, the differences in architecture designs and implementations of existing frameworks and platforms bring new challenges for DL software development and deployment. Till now, there is no study on how various mainstream frameworks and platforms influence both DL software development and deployment in practice.To fill this gap, we take the first step towards understanding how the most widely-used DL frameworks and platforms support the DL software development and deployment. We conduct a systematic study on these frameworks …
How Does Machine Learning Change Software Development Practices?, Zhiyuan Wan, Xin Xia, David Lo, Gail C. Murphy
How Does Machine Learning Change Software Development Practices?, Zhiyuan Wan, Xin Xia, David Lo, Gail C. Murphy
Research Collection School Of Computing and Information Systems
Adding an ability for a system to learn inherently adds uncertainty into the system. Given the rising popularity of incorporating machine learning into systems, we wondered how the addition alters software development practices. We performed a mixture of qualitative and quantitative studies with 14 interviewees and 342 survey respondents from 26 countries across four continents to elicit significant differences between the development of machine learning systems and the development of non-machine-learning systems. Our study uncovers significant differences in various aspects of software engineering (e.g., requirements, design, testing, and process) and work characteristics (e.g., skill variety, problem solving and task identity). …
Why Is My Code Change Abandoned?, Qingye Wang, Xin Xia, David Lo, Shanping Li
Why Is My Code Change Abandoned?, Qingye Wang, Xin Xia, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
Software developers contribute numerous changes every day to the code review systems. However, not all submitted changes are merged into a codebase because they might not pass the code review process. Some changes would be abandoned or be asked for resubmission after improvement, which results in more workload for developers and reviewers, and more delays to deliverables. To understand the underlying reasons why changes are abandoned, we conduct an empirical study on the code review of four open source projects (Eclipse, LibreOffice, OpenStack, and Qt).First, we manually analyzed 1459 abandoned changes. Second, we leveraged the open card sorting method to …
On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni, Marouane Kessentini
On The Impact Of Refactoring On The Relationship Between Quality Attributes And Design Metrics, Mohamed Wiem Mkaouer, Eman Abdullah Alomar, Ali Ouni, Marouane Kessentini
Articles
Refactoring is a critical task in software maintenance and is generally performed to enforce the best design and implementation practices or to cope with design defects. Several studies attempted to detect refactoring activities through mining software repositories allowing to collect, analyze and get actionable data-driven insights about refactoring practices within software projects. Aim: We aim at identifying, among the various quality models presented in the literature, the ones that are more in-line with the developer’s vision of quality optimization, when they explicitly mention that they are refactoring to improve them. Method: We extract a large corpus of design-related refactoring activities …
On Reliability Of Patch Correctness Assessment, Xuan-Bach D. Le, Lingfeng Bao, David Lo, Xin Xia, Shanping Li, Corina S. Pasareanu
On Reliability Of Patch Correctness Assessment, Xuan-Bach D. Le, Lingfeng Bao, David Lo, Xin Xia, Shanping Li, Corina S. Pasareanu
Research Collection School Of Computing and Information Systems
Current state-of-the-art automatic software repair (ASR) techniques rely heavily on incomplete specifications, or test suites, to generate repairs. This, however, may cause ASR tools to generate repairs that are incorrect and hard to generalize. To assess patch correctness, researchers have been following two methods separately: (1) Automated annotation, wherein patches are automatically labeled by an independent test suite (ITS) – a patch passing the ITS is regarded as correct or generalizable, and incorrect otherwise, (2) Author annotation, wherein authors of ASR techniques manually annotate the correctness labels of patches generated by their and competing tools. While automated annotation cannot ascertain …
Characterizing And Identifying Reverted Commits, Meng Yan, Xin Xia, David Lo, Ahmed E. Hassan, Shanping Li
Characterizing And Identifying Reverted Commits, Meng Yan, Xin Xia, David Lo, Ahmed E. Hassan, Shanping Li
Research Collection School Of Computing and Information Systems
In practice, a popular and coarse-grained approach for recovering from a problematic commit is to revert it (i.e., undoing the change). However, reverted commits could induce some issues for software development, such as impeding the development progress and increasing the difficulty for maintenance. In order to mitigate these issues, we set out to explore the following central question: can we characterize and identify which commits will be reverted? In this paper, we characterize commits using 27 commit features and build an identification model to identify commits that will be reverted. We first identify reverted commits by analyzing commit messages and …
Break The Dead End Of Dynamic Slicing: Localizing Data And Control Omission Bug, Yun Lin, Jun Sun, Lyly Tran, Guangdong Bai, Haijun Wang, Jin Song Dong
Break The Dead End Of Dynamic Slicing: Localizing Data And Control Omission Bug, Yun Lin, Jun Sun, Lyly Tran, Guangdong Bai, Haijun Wang, Jin Song Dong
Research Collection School Of Computing and Information Systems
Dynamic slicing is a common way of identifying the root cause when a program fault is revealed. With the dynamic slicing technique, the programmers can follow data and control flow along the program execution trace to the root cause. However, the technique usually fails to work on omission bugs, i.e., the faults which are caused by missing executing some code. In many cases, dynamic slicing over-skips the root cause when an omission bug happens, leading the debugging process to a dead end. In this work, we conduct an empirical study on the omission bugs in the Defects4J bug repository. Our …
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations …