Baowen Xu

dblp:46/5742 · DBLP profile ↗
← Back
233ranked-venue papers
15as first author
62since 2021 · last 2026
0000-0001-7743-1296ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 169 · 4 first-author · 49 since 2021Artificial intelligence and machine learning · 42 · 5 first-author · 6 since 2021Applied, interdisciplinary, general and emerging computing · 39 · 3 first-author · 4 since 2021Graphics, computer vision, multimedia, augmented reality and games · 12 · 3 first-authorHuman-computer interaction and ubiquitous computing · 9 · 3 first-authorDatabases, data management, data science and information retrieval · 8 · 1 first-author · 1 since 2021Systems, architecture and hardware · 3 · 1 since 2021Computer networks · 2Security and privacy · 2 · 1 since 2021Theory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2026 Data preparation and quality for code-centric generative software engineering tasks: a systematic literature review
abstract
Abstract The rapid advancements in Deep Neural Networks (DNNs) have revolutionized generative software engineering tasks, including code summarization, program repair, code generation, and code translation. However, the performance of DNN models in these tasks heavily depends on the quality of their training and evaluation datasets. This systematic literature review examines 70 primary studies to comprehensively analyze dataset construction methodologies, prevalent data quality challenges, and solutions proposed to address these challenges. Our findings reveal that dataset construction processes significantly influence quality, with common issues such as noise, redundancy, imbalance, and insufficient granularity undermining model effectiveness. We identify key strategies to mitigate these problems, including data augmentation, automated cleaning techniques, and standardized validation frameworks. Furthermore, we highlight the critical role of dataset diversity and timeliness in improving model generalization. This study provides actionable insights for researchers and practitioners in the era of generative AI, where high-quality datasets are essential for developing reliable language models as software engineering tools. By emphasizing rigorous dataset curation and innovative quality assurance methods, our work bridges the gap between theoretical advancements and practical applications, enabling the creation of robust, generalizable models for real-world code-related tasks. The synthesized recommendations aim to guide future research in optimizing dataset design, fostering reproducibility, and addressing evolving challenges in data-driven software engineering.
Shihao Weng, Yang Feng 0003, Yining Yin, Zhenlun Zhang, Baowen Xu
Frontiers Comput. Sci.5
2026 Modeling latent cross-modal interaction for reliability-aware entity alignment in multimodal relation extraction
Xiyang Liu 0001, Chunming Hu, Richong Zhang, Junfan Chen 0001, Baowen Xu
Knowl. Based Syst.5
2026 Less Is More: Feature Engineering for Fairness and Performance of Machine Learning Software
abstract
Machine Learning (ML) software employs statistical algorithms to perform high-stake tasks in our daily lives, whose results are usually discriminatory due to protected features (e.g., gender), i.e., one part (called privileged, e.g., male) may be more likely to obtain beneficial decisions than the other part (called unprivileged, e.g., female). In alleviating the unfairness, developers have obtained widely held beliefs about the tradeoff between performance and fairness for ML software. Surprisingly, recent research on feature engineering suggests that enlarging the feature set is the perfect way to kill two birds with one stone, i.e., achieving both higher performance and fairness. However, the experiments used in the prior study did not remove the effect of protected features, which have been suggested to be excluded in both industrial applications and academic studies. As a result, the study did not fully explore the tradeoff between performance and fairness. In this article, we first conduct an empirical study to replicate this prior study after excluding the protected features and observe that there is still a tradeoff between performance and fairness with enlarging the features, i.e., more features are not perfect, which would lead to higher performance and lower fairness. Due to more features causing more collection and pre-processing budgets, we aim to search for an effective alternative. Inspired by the “less is more” principle, we propose a novel feature ranking method, Hybrid-importance and Early-validation based Feature Ranking (HEFR) , to find an efficient subset to replace the full feature set with comparable performance and fairness. Our method, HEFR, employs hybrid feature importances to combine performance and fairness and conducts early validation to check the effectiveness of hybrid importances. We conduct experiments on seven datasets and three classifiers to evaluate our method with five baselines. The results have shown that (a) HEFR is efficient for ML software feature engineering: applying HEFR to choose about 10% of features would construct ML software with better or comparable performance and fairness, and (b) HEFR is actionable with small dataset sizes: applying HEFR with only 10% data size would still help choose the proper feature subset.
Linghan Meng, Yanhui Li 0001, Lin Chen 0015, Mingliang Ma, Yuming Zhou, Baowen Xu
ACM Trans. Softw. Eng. Methodol.6
2026 Drivence: Realistic Driving Sequence Synthesis for Testing Multi-Sensor Fusion Perception Systems
abstract
Multi-Sensor Fusion (MSF) based perception systems have become the foundation supporting many industrial applications and domains, such as self-driving cars, robotic arms, and unmanned aerial vehicles. With the rapid development of data-driven artificial intelligence (AI), the perception capabilities of MSF have been comprehensively enhanced, especially in understanding complex, dynamic external environments. Similar to traditional software, AI-enabled MSF systems also require rigorous testing. However, existing testing methods are still limited to evaluating the frame-level perception capabilities (e.g., object detection in static scenes) of singlesensor systems (e.g., image-based and point cloud-based systems). Given that many safety-critical intelligent systems, such as selfdriving cars, are operated in dynamic environments where perception systems play an important role, there comes an urgent need to assess their dynamic perception capabilities in understanding and responding to external environmental variations in real-time.To bridge this gap, we design and implement DRIVENCE, an automated metamorphic testing tool for testing the dynamic perception capabilities of MSF-based systems. DRIVENCE accounts for various real-world physical constraints to generate realistic multi-modal test sequences by inserting multiple dynamic traffic participants into the background image and point cloud driving sequences. To diversify testing sequences, we incorporate six driving patterns derived from real-world common driving behaviors into the testing process. We conduct experiments with five SOTA MSF-based tracking systems to evaluate DRIVENCE from the perspectives of (1) generated test cases’ realism, (2) fault detection capabilities, and (3) test efficiency. The results show that DRIVENCE can generate realistic and modality-consistent test driving sequences and effectively detect various dynamic perception errors within MSF systems.
Zhijie Wang 0014, Yang Feng 0003, Chaolan Wang, Zhehua Zhou, Yuheng Huang 0004, Lei Ma 0003, Zhenyu Chen 0001, Baowen Xu
IEEE Trans. Software Eng.9
2026 Boosting Compiler Fault Localization: Getting the Best of Both Worlds by Fusing Dynamic and Historical Data
abstract
Compilers are prone to bugs that can have severe consequences for downstream applications. Accurately identifying and localizing compiler faults poses unique challenges due to the inherent complexity and large scale of modern compiler infrastructures. Existing studies have proposed various techniques to construct passing and failing executions by generating witness test programs from bug-inducing test cases or by producing adversarial compilation configurations for the same test program. These executions are then leveraged to apply spectrum-based fault localization (SBFL) techniques for isolating compiler faults, yielding promising results. Recently, Yang et al. revisited SBFL-based techniques and showed that a simple yet widely adopted debugging practice—treating files modified in bug-inducing commits (BICs) as potential fault candidates—can surprisingly outperform SBFL-based techniques on the most critical localization metrics. Moreover, they further demonstrated that BIC-based and SBFL-based techniques are highly complementary, as they tend to localize different subsets of compiler faults. Consequently, effectively integrating these two sources of information to improve compiler fault localization remains an open and largely unexplored challenge. To address this problem, we propose DUALTRACK, a hybrid approach that integrates dynamic execution information from SBFL with historical information derived from BICs. DUALTRACKemploys a two-layer framework that first prioritizes files modified in bug-inducing commits and then refines their rankings using suspiciousness scores computed by SBFL formulas. An evaluation on 120 real-world compiler bugs from GCC and LLVM shows that DUALTRACK successfully identifies 52% of faulty files at the Top-1 rank, demonstrating a substantial improvement over existing state-of-the-art compiler fault localization techniques.
Qingyang Li 0006, Yibiao Yang, Jiangchang Wu, Qingkai Shi, Yuming Zhou, Baowen Xu
IEEE Trans. Software Eng.7
2025 Validating Interior Gateway Routing Protocols via Equivalent Topology Synthesis
abstract
Routers, relying on routing protocols to determine how data packets travel across the Internet, serve as the backbone of modern networks. Vulnerable routing protocols can lead to serious consequences, including data leaks and network congestion. This work focuses on validating the implementation of a key class of routing protocols known as Interior Gateway Protocols (IGPs). Unlike communication protocols such as TCP/IP, which define structured data packets and state machines to facilitate communication, IGPs are designed to automatically manage the network topology. Thus, conventional techniques, which primarily focus on communication correctness, cannot be applied directly to IGPs. We propose ToDiff, a differential validation technique to uncover IGP bugs in three steps: (1) it uses a network generation algorithm to create random yet valid IGP networks, (2) it applies a semantics-guided program synthesizer to generate equivalent topological programs, and (3) it simulates the network via the equivalent topological programs, with any discrepancies suggesting the presence of a potential bug. We have evaluated ToDiff on the implementation of two common IGP protocols, OSPF and IS-IS. The results demonstrate that ToDiff outperforms existing approaches. To date, our tool has successfully identified 26 bugs, all confirmed or fixed by developers.
Bing Shui, Jielun Wu, Baowen Xu, Qingkai Shi
CCS4
2025 Clozemaster: Fuzzing Rust Compiler by Harnessing Llms for Infilling Masked Real Programs
abstract
Ensuring the reliability of the Rust compiler is of paramount importance, given increasing adoption of Rust for critical systems development, due to its emphasis on memory and thread safety. However, generating valid test programs for the Rust compiler poses significant challenges, given Rust's complex syntax and strict requirements. With the growing popularity of large language models (LLMs), much research in software testing has explored using LLMs to generate test cases. Still, directly using LLMs to generate Rust programs often results in a large number of invalid test cases. Existing studies have indicated that test cases triggering historical compiler bugs can assist in software testing. Our investigation into Rust compiler bug issues supports this observation. Inspired by existing work and our empirical research, we introduce a bracket-based masking and filling strategy called clozeMask. The clozeMask strategy involves extracting test code from historical issue reports, identifying and masking code snippets with specific structures, and using an LLM to fill in the masked portions for synthesizing new test programs. This approach harnesses the generative capabilities of LLMs while retaining the ability to trigger Rust compiler bugs. It enables comprehensive testing of the compiler's behavior, particularly exploring edge cases. We implemented our approach as a prototype ClozeMaster. ClozeMaster has identified 27 confirmed bugs for rustc and mrustc, of which 10 have been fixed by developers. Furthermore, our experimental results indicate that ClozeMaster outperforms existing fuzzers in terms of code coverage and effectiveness.
Hongyan Gao, Yibiao Yang, Jiangchang Wu, Yuming Zhou, Baowen Xu
ICSE6
2025 Show Me Your Code! Kill Code Poisoning: A Lightweight Method Based on Code Naturalness
abstract
Neural code models (NCMs) have demonstrated extraordinary capabilities in code intelligence tasks. Meanwhile, the security of NCMs and NCMs-based systems has garnered increasing attention. In particular, NCMs are often trained on large-scale data from potentially untrustworthy sources, providing attackers with the opportunity to manipulate them by inserting crafted samples into the data. This type of attack is called a code poisoning attack (also known as a backdoor attack). It allows attackers to implant backdoors in NCMs and thus control model behavior, which poses a significant security threat. However, there is still a lack of effective techniques for detecting various complex code poisoning attacks. In this paper, we propose an innovative and lightweight technique for code poisoning detection named KillbadCode. KillbadCode is designed based on our insight that code poisoning disrupts the naturalness of code. Specifically, KillBADCODE first builds a code language model (CodeLM) on a lightweight$n$-gram language model. Then, given poisoned data, KillbadCode utilizes CodeLM to identify those tokens in (poisoned) code snippets that will make the code snippets more natural after being deleted as trigger tokens. Considering that the removal of some normal tokens in a single sample might also enhance code naturalness, leading to a high false positive rate (FPR), we aggregate the cumulative improvement of each token across all samples. Finally, KillbadCode purifies the poisoned data by removing all poisoned samples containing the identified trigger tokens. We conduct extensive experiments to evaluate the effectiveness and efficiency of KillbadCode, involving two types of advanced code poisoning attacks (a total of five poisoning strategies) and datasets from four representative code intelligence tasks. The experimental results demonstrate that across 20 code poisoning detection scenarios, KillbadCode achieves an average FPR of 8.30 % and an average Recall of 100 %, significantly outperforming four baselines. More importantly, KillBadCode is very efficient, with a minimum time consumption of only 5 minutes, and is 25 times faster than the best baseline on average.
Weisong Sun, Mengzhe Yuan, Chunrong Fang, Zhenpeng Chen 0001, Chong Wang 0013, Yang Liu 0003, Baowen Xu, Zhenyu Chen 0001
ICSE8
2025 Towards understanding the security issues of Python programs
abstract
Python programming language has witnessed a steady increase in popularity over the past few decades.Renowned for its conciseness and readability, as well as its ease of learning and use, Python is widespread adoption has inevitably exposed it to a higher likelihood of encountering issues.Given that numerous code modifications exhibit repetitive and analogous patterns, an extensive examination of Python code-fixing patterns becomes imperative.Among these patterns, security-related issues hold significant importance due to their heightened risks and potential for substantial impact.Consequently, conducting research on security-related matters assumes utmost significance.In this paper, we conduct a thorough investigation to gain insights into the security issues prevalent in Python programs.Our approach involves collecting 413 popular open-source Python projects from GitHub and identifying 9,782 bug reports related to security concerns and their corresponding bug fixes.We employ automated clustering and manual summarization techniques, ultimately classifying them into 12 distinct categories, with six categories being of notable prevalence.We analyze the bug reports and commits within each high-frequency category, examining aspects such as severity, root causes, and employed fixing patterns.Leveraging the empirical findings, we discuss the broader implications drawn from the study and offer guidance to software developers, facilitating proactive avoidance of such issues in their projects.
Hongcheng Fan, Di Liu 0021, Jielun Wu, Yang Feng 0003, Qingkai Shi, Baowen Xu
Internetware6
2025 PALM: Synergizing Program Analysis and LLMs to Enhance Rust Unit Test Coverage
abstract
Unit testing is essential for ensuring software reliability and correctness. Classic Search-Based Software Testing (SBST) methods and concolic execution-based approaches for generating unit tests often fail to achieve high coverage due to difficulties in handling complex program units, such as branching conditions and external dependencies. Recent work has increasingly utilized large language models (LLMs) to generate test cases, improving the quality of test generation by providing better context and correcting errors in the model’s output. However, these methods rely on fixed prompts, resulting in relatively low compilation success rates and coverage.This paper presents PALM, an approach that leverages large language models (LLMs) to enhance the generation of high-coverage unit tests. PALM performs program analysis to identify branching conditions within functions, which are then combined into path constraints. These constraints and relevant contextual information are used to construct prompts that guide the LLMs in generating unit tests. We implement the approach and evaluate it in 15 open-source Rust crates. Experimental results show that within just two or three hours, PALM can significantly improve test coverage compared to classic methods, with increases in overall project coverage exceeding 50% in some instances and its generated tests achieving an average coverage of 72.30%, comparable to human effort (70.94%), highlighting the potential of LLMs in automated test generation. We submitted 91 PALM-generated unit tests targeting new code. Of these submissions, 80 were accepted, 5 were rejected, and 6 remain pending review. The results demonstrate the effectiveness of integrating program analysis with AI and open new avenues for future research in automated software testing.
Bei Chu, Yang Feng 0003, Kui Liu 0001, Hange Shi, Zifan Nan, Zhaoqiang Guo, Baowen Xu
ASE7
2025 Protecting Source Code Privacy When Hunting Memory Bugs
abstract
When proving to a third party that a software system is free from critical memory bugs, software vendors often face the problem of having to reveal their source code, so that the third party can scan the source code using static analysis tools. However, such transparency poses a significant threat to vendors, as the source code typically contains proprietary algorithms, core technical innovations, or trade secrets, exposing them to potential intellectual property risks. In this paper, we present a solution that offers a balance between transparency and code privacy, allowing software vendors to provide minimal source code information while justifying the sufficiency of bug detection. To this end, we propose DIReducer, which reduces source code information, a.k.a. debug information, from non-stripped binaries while preserving its utility for memory bug detection. DIReducer consists of two components: selective pruning and type minimization. The former eliminates redundant debug information, and the latter is proven to be NP-hard and minimizes type-related debug information by reducing it to the classic set-cover problem, which offers a near-optimal solution. Experimental results show that we can reduce 95% of debug information while maintaining similar bug detection capability compared to using full debug information or the source code.
Jielun Wu, Bing Shui, Hongcheng Fan, Shengxin Wu, Rongxin Wu, Yang Feng 0003, Baowen Xu, Qingkai Shi
ASE7
2025 Improving Data Annotation for Low-Resource Relation Extraction with Logical Rule-Augmented Collaborative Language Models
abstract
Xiyang Liu, Chunming Hu, Richong Zhang, Junfan Chen, Baowen Xu. Proceedings of the 2025 Conference of the Nations of the Americas Chapter of the Association for Computational Linguistics: Human Language Technologies (Volume 1: Long Papers). 2025.
Xiyang Liu 0001, Chunming Hu, Richong Zhang, Junfan Chen 0001, Baowen Xu
NAACL (Long Papers)5
2025 An Empirical Study of Bugs in the rustc Compiler
abstract
Rust is gaining popularity for its well-known memory safety guarantees and high performance, distinguishing it from C/C++ and JVM-based languages. Its compiler, rustc , enforces these guarantees through specialized mechanisms such as trait solving, borrow checking, and specific optimizations. However, Rust’s unique language mechanisms introduce complexity to its compiler, resulting in bugs that are uncommon in traditional compilers. With Rust’s increasing adoption in safety-critical domains, understanding these language mechanisms and their impact on compiler bugs is essential for improving the reliability of both rustc and Rust programs. Such understanding could provide the foundation for developing more effective testing strategies tailored to rustc . Improving the quality of rustc testing is essential for enhancing compiler reliability, which in turn strengthens the safety and correctness of all Rust programs, as compiler bugs can silently propagate into every compiled program. Yet, we still lack a large-scale, detailed, and in-depth study of rustc bugs. To bridge this gap, this work presents a comprehensive and systematic study of rustc bugs, specifically those originating in semantic analysis and intermediate representation (IR) processing, which are stages that implement essential Rust language features such as ownership and lifetimes. Our analysis examines issues and fixes reported between 2022 and 2024, with a manual review of 301 valid issues. We categorize these bugs based on their causes, symptoms, affected compilation stages, and test case characteristics. Additionally, we evaluate existing rustc testing tools to assess their effectiveness and limitations. Our key findings include: (1) rustc bugs primarily arise from Rust’s type system and lifetime model, with frequent errors in the High-Level Intermediate Representation (HIR) and Mid-Level Intermediate Representation (MIR) modules due to complex checkers and optimizations; (2) bug-revealing test cases often involve unstable features, advanced trait usages, lifetime annotations, standard APIs, and specific optimization levels; (3) while both valid and invalid programs can trigger bugs, existing testing tools struggle to detect non-crash errors, underscoring the need for further advancements in rustc testing.
Yang Feng 0003, Yunbo Ni, Shaohua Li 0002, Xizhe Yin, Qingkai Shi, Baowen Xu, Zhendong Su 0001
Proc. ACM Program. Lang.7
2024 MultiTest: Physical-Aware Object Insertion for Testing Multi-sensor Fusion Perception Systems
abstract
Multi-sensor fusion stands as a pivotal technique in addressing numerous safety-critical tasks and applications, e.g., self-driving cars and automated robotic arms. With the continuous advancement in data-driven artificial intelligence (AI), MSF's potential for sensing and understanding intricate external environments has been further amplified, bringing a profound impact on intelligent systems and specifically on their perception systems. Similar to traditional software, adequate testing is also required for AI-enabled MSF systems. Yet, existing testing methods primarily concentrate on single-sensor perception systems (e.g., image-based and point cloud-based object detection systems). There remains a lack of emphasis on generating multi-modal test cases for MSF systems.
Zhijie Wang 0014, Yang Feng 0003, Lei Ma 0003, Zhenyu Chen 0001, Baowen Xu
ICSE6
2024 Hierarchical Dynamic Graph Convolutional Network for Spatio-Temporal Forecasting
abstract
Spatio-temporal forecasting has a wide range of applications such as traffic prediction. The key to solving this problem lies in dynamically modeling comprehensive spatial dependencies. However, most existing works only consider local relationships on a static graph, lacking the capability to capture global patterns dynamically. In this paper, we propose the Hierarchical Dynamic Graph Convolutional Network (HDGCN) to address these issues. Our approach takes a two-fold hierarchical perspective to model spatial dependencies. From the geographic perspective, we employ a dynamic graph convolutional network (D-GCN) to capture local directed connections between physically neighboring nodes. From the semantic perspective, we specifically design a dynamic hypergraph convolutional network (D-HCN) to facilitate global high-order message passing among nodes with shared common patterns. By combining the local information aggregating ability of graph convolution and the global message propogating ability of hypergraph convolution, our model effectively performs more comprehensive representation learning on spatial relationships. We conduct extensive experiments on three real-world traffic datasets, which demonstrate the superiority of our proposed model over state-of-the-art methods and validate the effectiveness of our proposed approach.
Baowen Xu
IJCNN2
2024 ObjTest: Object-Level Mutation for Testing Object Detection Systems
abstract
With the tremendous advancement of deep learning techniques, object detection (OD) systems have achieved significant development. These systems, powered by deep neural networks, are now widely employed in diverse applications, including autonomous driving, intelligent video surveillance, and industrial inspection. Despite their impressive capabilities, OD systems, being complex software entities, can manifest erroneous behaviors that potentially lead to substantial losses. Moreover, the inherent complexity of detecting and localizing multiple objects in an image adds to the challenges of data annotation and system testing.
Yang Feng 0003, Baowen Xu
Internetware4
2024 FRIES: Fuzzing Rust Library Interactions via Efficient Ecosystem-Guided Target Generation
abstract
Rust has been extensively used in software development in the past decades due to its memory safety mechanisms and gradually matured ecosystems. Enhancing the quality of Rust libraries is critical to Rust ecosystems as the libraries are often the core component of software systems. Nevertheless, we observe that existing approaches fall short in testing Rust API interactions - they either lack a Rust ownership-compliant API testing method, fail to handle the large search space of function dependencies, or are limited by pre-selected codebases, resulting in inefficiencies in finding errors. To address these issues, we propose a fuzzing technique, namely FRIES, that efficiently synthesizes and tests complex API interactions to identify defects in Rust libraries, and therefore promises to significantly improve the quality of Rust libraries. Behind our approach, a key technique is to traverse a weighted API dependency graph, which encodes not only syntactic dependency between functions but also the common usage patterns mined from the Rust ecosystem that reflect the programmer’s thinking. Combined with our efficient generation algorithm, such a graph structure significantly reduces the search space and lets us focus on finding hidden bugs in common application scenarios. Meanwhile, an ownership assurance algorithm is specially designed to ensure the validity of the generated Rust programs, notably improving the success rate of compiling fuzz targets. Experimental results demonstrate that this technique can indeed generate high-quality fuzz targets with minimal computational resources, while more efficiently discovering errors that have a greater impact on actual development, thereby mitigating the impact on the robustness of programs in the Rust ecosystem. So far, FRIES has identified 130 bugs, including 84 previously unknown bugs, in 20 well-known latest versions of Rust libraries, of which 54 have been confirmed.
Xizhe Yin, Yang Feng 0003, Qingkai Shi, Hongwang Liu, Baowen Xu
ISSTA6
2024 Leveraging Large Language Model to Assist Detecting Rust Code Comment Inconsistency
abstract
Rust is renowned for its robust memory safety capabilities, yet its distinctive memory management model poses substantial challenges in both writing and understanding programs. Within Rust source code, comments are employed to clearly delineate conditions that might cause panic behavior, thereby warning developers about potential hazards associated with specific operations. Therefore, comments are particularly crucial for documenting Rust's program logic and design. Nevertheless, as modern software frequently undergoes updates and modifications, maintaining the accuracy and relevance of these comments becomes a labor-intensive endeavor.
Yang Feng 0003, Baowen Xu
ASE4
2024 Beyond Memory Safety: an Empirical Study on Bugs and Fixes of Rust Programs
abstract
Rust is a nascent programming language designed to improve memory safety for system programming while maintaining high performance. The Rust language ensures memory safety through its ownership mechanism and by performing compile-time checks on safe code. However, for low-level controls, developers are allowed to bypass these checks by marking their code as unsafe, which in turn introduces memory vulnerabilities. Beyond these memory-related concerns, the existence and nature of other common bugs such as run-time panics have not been thoroughly explored. In this paper, we conduct a comprehensive empirical study to characterize bugs and their fixes beyond memory safety concerns by manually inspecting bug patches in Rust programs. We identify 790 bug fixes from 1100 commits in six widely-used Rust projects and the Rust standard library, and then investigate their root causes and symptoms. Furthermore, we analyze the relationships between these bugs and unsafe code (i.e., whether they are caused by the use of unsafe code and to what extent it impacts them). Our bug study introduces a classification of 15 root causes and 6 symptoms, and categorizes bugs into different groups according to their relationships with safe/unsafe code. We identify 19 major findings and draw broader lessons from them to guide the research community towards future directions in program testing, analysis, fault localization, and repair for Rust language.
Chengquan Zhang, Yang Feng 0003, Yaokun Zhang, Yuxuan Dai, Baowen Xu
QRS5
2024 Automatic recognizing relevant fragments of APIs using API references
Di Wu 0014, Yang Feng 0003, Hongyu Zhang 0002, Baowen Xu
Autom. Softw. Eng.4
2024 When debugging encounters artificial intelligence: state of the art and open challenges
Xiaoyuan Xie, Baowen Xu
Sci. China Inf. Sci.3
2024 COPS: An improved information retrieval-based bug localization technique using context-aware program simplification
Ziyuan Wang 0001, Zhenyu Chen 0001, Baowen Xu
J. Syst. Softw.4
2024 Hierarchical U-net with re-parameterization technique for spatio-temporal weather forecasting
Baowen Xu, Chengbao Liu
Mach. Learn.1
2024 Hybrid mutation driven testing for natural language inference
abstract
Summary Natural language inference (NLI) is a task to infer the relationship between the premise and hypothesis sentences, whose models have essential applications in the many natural language processing (NLP) fields, for example, machine reading comprehension and recognizing textual entailment. Due to the data‐driven programming paradigm, bugs inevitably occur in NLI models during the application process, which calls for novel automatic testing techniques to deal with NLI testing challenges. The main difficulty in achieving automatic testing for NLI models is the oracle problem; that is, it may be too expensive to label NLI model inputs manually and hence be too challenging to verify the correctness of model outputs. To tackle the oracle problem, this study proposes a novel automatic testing method hybrid mutation driven testing (HMT), which extends the mutation idea applied in other NLP domains successfully. Specifically, as there are two sets of sentences, that is, premise and hypothesis, to be mutated, we propose four mutation operators to achieve the hybrid mutation strategy, which mutate the premise and the hypothesis sentences jointly or individually. We assume that the mutation would not affect the outputs; that is, if the original and mutated outputs are inconsistent, inconsistency bugs could be detected without knowing the true labels. To evaluate our method HMT, we conduct experiments on two widely used datasets with two advanced models and generate more than 520,000 mutations by applying our mutation operators. Our experimental results show that (a) our method, HMT, can effectively generate mutated testing samples, (b) our method can effectively trigger the inconsistency bugs of the NLI models, and (c) all four mutation operators can independently trigger inconsistency bugs.
Linghan Meng, Yanhui Li 0001, Lin Chen 0015, Mingliang Ma, Yuming Zhou, Baowen Xu
J. Softw. Evol. Process.6
2024 Python meets JIT compilers: A simple implementation and a comparative evaluation
abstract
Abstract Developing a just‐in‐time (JIT) compiler can be a daunting task, especially for a language as flexible as Python. While PyPy, powered with JIT compilation, can often outperform the official pure interpreter, CPython, by a noteworthy margin, its popularity remains far from comparable to that of CPython due to some issues. Given that an easier‐to‐deploy and better‐compatible JIT compiler would benefit more Python users, we have developed comPyler, a simple JIT compiler functioning as a CPython extension and intended to convert frequently interpreted CPython bytecode into equivalent machine code. Designed with good compatibility in mind, it does not alter CPython's internal data structures or external interfaces. Based on LLVM's mature infrastructure, it can be readily ported to almost all platforms. Compared with CPython, it achieved the highest speedup of 2.205, with an average of 1.093. Despite its relatively limited effect, comPyler incurs low development costs. As a baseline compiler, it also sheds light on the improvement attainable by optimizing solely the overhead of bytecode interpretation. Furthermore, as there is still a dearth of empirical research covering the multitude of JIT compilers available for Python, we have conducted a performance study that examines Jython, IronPython, PyPy, GraalPy, Pyston, Pyjion, and our comPyler. Our research takes into account not only the benchmark speed for various time windows but also the boot latency and memory footprint. Through this comprehensive study, our objective is to assist developers in gaining a better understanding of the effects of distinct JIT compilation techniques and to aid users in making informed decisions when choosing among different Python implementations.
Qiang Zhang 0046, Lei Xu 0003, Baowen Xu
Softw. Pract. Exp.3
2024 Generating Python Type Annotations from Type Inference: How Far Are We?
abstract
In recent years, dynamic languages such as Python have become popular due to their flexibility and productivity. The lack of static typing makes programs face the challenges of fixing type errors, early bug detection, and code understanding. To alleviate these issues, PEP 484 introduced optional type annotations for Python in 2014, but unfortunately, a large number of programs are still not annotated by developers. Annotation generation tools can utilize type inference techniques. However, several important aspects of type annotation generation are overlooked by existing works, such as in-depth effectiveness analysis, potential improvement exploration, and practicality evaluation. And it is unclear how far we have been and how far we can go. In this paper, we set out to comprehensively investigate the effectiveness of type inference tools for generating type annotations, applying three categories of state-of-the-art tools on a carefully-cleaned dataset. First, we use a comprehensive set of metrics and categories, finding that existing tools have different effectiveness and cannot achieve both high accuracy and high coverage. Then, we summarize six patterns to present the limitations in type annotation generation. Next, we implement a simple but effective tool to demonstrate that existing tools can be improved in practice. Finally, we conduct a controlled experiment showing that existing tools can reduce the time spent annotating types and determine more precise types, but cannot reduce subjective difficulty. Our findings point out the limitations and improvement directions in type annotation generation, which can inspire future work.
Yimeng Guo, Zhifei Chen, Lin Chen 0015, Yanhui Li 0001, Yuming Zhou, Baowen Xu
ACM Trans. Softw. Eng. Methodol.7
2024 Enumerating Valid Non-Alpha-Equivalent Programs for Interpreter Testing
abstract
Skeletal program enumeration (SPE) can generate a great number of test programs for validating the correctness of compilers or interpreters. The classic SPE generates programs by exhaustively enumerating all possible variable usage patterns into a given syntactic structure. Even though it is capable of producing many test programs, the exhaustive enumeration strategy generates a large number of invalid programs, which may waste plenty of testing time and resources. To address the problem, this article proposes a tree-based SPE technique. Compared to the state-of-the-art, the key merit of the tree-based approach is that it allows us to take the dependency information into consideration when producing test programs and, thus, make it possible to (1) directly generate non-equivalent programs and (2) apply dominance relations to eliminate invalid test programs that have undefined variables. Hence, our approach significantly saves the cost of the naïve SPE approach. We have implemented our approach into an automated testing tool, IFuzzer , and applied it to test eight different implementations of Python interpreters, including CPython, PyPy, IronPython, Jython, RustPython, GPython, Pyston, and Codon. In three months of fuzzing, IFuzzer detected 142 bugs, of which 87 have been confirmed to be previously unknown bugs, of which 34 have been fixed. Compared to the state-of-the-art SPE techniques, IFuzzer takes only 61.0% of the time cost given the same number of testing seeds and improves 5.3% source code function coverage in the same time budget of testing.
Xinmeng Xia, Yang Feng 0003, Qingkai Shi, James A. Jones, Xiangyu Zhang 0001, Baowen Xu
ACM Trans. Softw. Eng. Methodol.6
2023 An Analysis of the Rust Programming Practice for Memory Safety Assurance
Baowen Xu, Bei Chu, Hongcheng Fan, Yang Feng 0003
WISA1
2023 Social-CVAE: Pedestrian Trajectory Prediction Using Conditional Variational Auto-Encoder
Baowen Xu, Chengbao Liu
ICONIP (8)1
2023 DLInfer: Deep Learning with Static Slicing for Python Type Inference
abstract
Python programming language has gained enor-mous popularity in the past decades. While its flexibility signifi-cantly improves software development productivity, the dynamic typing feature challenges software maintenance and quality assurance. To facilitate programming and type error checking, the Python programming language has provided a type hint mechanism enabling developers to annotate type information for variables. However, this manual annotation process often requires plenty of resources and may introduce errors. In this paper, we propose a deep learning type inference technique, namely DLInfer, to automatically infer the type infor-mation for Python programs. DLInfer collects slice statements for variables through static analysis and then vectorizes them with the Unigram Language Model algorithm. Based on the vectorized slicing features, we designed a bi-directional gated recurrent unit model to learn the type propagation information for inference. To validate the effectiveness of DLInfer, we conduct an extensive empirical study on 700 open-source projects. We evaluate its accuracy in inferring three kinds of fundamental types, including built-in, library, and user-defined types. By training with a large-scale dataset, DLInfer achieves an average of 98.79% Top-1 accuracy for the variables that can get type information through static analysis and manual annotation. Further, DLInfer achieves 83.03% type inference accuracy on average for the variables that can only obtain the type information through dynamic analysis. The results indicate DLInfer is highly effective in inferring types. It is promising to apply it to assist in various software engineering tasks for Python programs.
Yanyan Yan, Yang Feng 0003, Hongcheng Fan, Baowen Xu
ICSE4
2023 Dual-channel spatio-temporal wavelet transform graph neural network for traffic forecasting
abstract
Timely and accurate traffic prediction is crucial for public safety and rational allocation of resources such as roads. However, it still remains an open challenge for timely accurate traffic forecasting, due to the highly nonlinear temporal correlation and dynamical spatial dependence of traffic data. In order to fully capture the temporal and spatial dependences, we propose a dual-channel spatio-temporal wavelet transform graph neural network (DSTwave) for traffic forecasting. Specifically, the wavelet transform neural network is used to obtain the low- and high-frequency parts from the original traffic sequence signals, and in order to accurately capture the spatio-temporal dependence of the low- and high-frequency components in the long - and short-term patterns, the dual-channel ST-GCN with trend-seasonal feature decomposition is carefully designed. In addition, Dynamic-adaptive adjacency matrix is introduced, which can flexibly adapt to changing data. A large number of experiments on two real datasets show that the proposed model has high prediction accuracy.
Baowen Xu, Chengbao Liu, Zhenjie Liu, Liwen Kang
IJCNN1
2023 How Well Static Type Checkers Work with Gradual Typing? A Case Study on Python
abstract
Python has become increasingly popular and widely used in many fields. Dynamic features of Python provide much convenience for developers. However, they can also cause many type-related bugs undetected until runtime, which increases the cost of maintenance. Static type checking is essential to find bugs early, and the introduction of gradual typing and type annotations makes it easier to perform static type analysis. However, it remains to be investigated how well gradual typing improves real bug detection. Therefore, we conducted a comprehensive study on three widely used checkers: MyPy, PyRight, and PyType. We used a benchmark containing 10 popular Python projects with 40 real type-related bugs. First, we performed static type checking on the projects with and without type annotations to evaluate the effectiveness of finding real bugs. Second, we manually analyzed the missing bugs and investigated the reasons. The results show that the three tools can detect 29 of the 40 studied bugs after annotating, while only 14 bugs are detected before annotating. We also found that type annotations can substantially improve the ability of static type checkers to detect real bugs. A detailed analysis of bugs missed by the checkers shows that: (i) the accuracy of type analysis is challenged when it comes to programs with complicated dynamic features, such as dynamically changing object’s attributes, even with annotations; (ii) the inaccurate type annotations can undermine the ability of static type checkers to detect real bugs; (iii) static type checkers have different checking strategies in some cases, which has an impact on real bug detection. Our study can not only enable developers to better understand static type checking and make better use of them but also guide future research.
Lin Chen 0015, Chenghao Su, Yimeng Guo, Yanhui Li 0001, Yuming Zhou, Baowen Xu
ICPC7
2023 Benchmarking Robustness of AI-Enabled Multi-sensor Fusion Systems: Challenges and Opportunities
abstract
Multi-Sensor Fusion (MSF) based perception systems have been the foundation in supporting many industrial applications and domains, such as self-driving cars, robotic arms, and unmanned aerial vehicles. Over the past few years, the fast progress in datadriven artificial intelligence (AI) has brought a fast-increasing trend to empower MSF systems by deep learning techniques to further improve performance, especially on intelligent systems and their perception systems. Although quite a few AI-enabled MSF perception systems and techniques have been proposed, up to the present, limited benchmarks that focus on MSF perception are publicly available. Given that many intelligent systems such as self-driving cars are operated in safety-critical contexts where perception systems play an important role, there comes an urgent need for a more in-depth understanding of the performance and reliability of these MSF systems.
Zhijie Wang 0014, Yang Feng 0003, Lei Ma 0003, Zhenyu Chen 0001, Baowen Xu
ESEC/SIGSOFT FSE6
2023 How Dynamic Features Affect API Usages? An Empirical Study of API Misuses in Python Programs
abstract
Incorrect usages of Application Programming Interfaces (APIs) may lead to unexpected problems during the software development process. Although there have been many attempts to address API-misuse issues, most of them are mainly for static languages. In contrast, API misuses in dynamic languages are rarely covered, mostly due to challenges about dynamic features. In this paper, we develop the first-ever comprehensive study of API misuses for Python programs. To accomplish this, we manually analyze 79,096 commits of six popular open-source Python projects on GitHub to collect true-positive cases. Based on the validation, we develop a classification of Python API Misuses, called PAM, and a dataset, PAMBench, containing 670 validated real-world API-misuse cases in popular Python programs. For each API-misuse case, we explore its root cause, symptom, program issue and repair method. Specifically, we pay attention to the effect of dynamic features on API usages in Python. The systematic study on PAMBench shows that, most importantly, dynamic features, especially type dynamics, have a non-negligible impact on API usages in Python, mainly related to incorrect assumptions about the type, callable state, attribute and existence of caller object, method call itself, passed argument(s) and return value during an API invocation. Our root-cause analysis reveals the importance of correct design, implementation, annotation, checking and recording about the types and states of all parts of API method calls during Python program development. Finally, we present possible solutions for more secure, reliable and maintainable API usages in Python.
Xincheng He, Xiaojin Liu 0005, Lei Xu 0003, Baowen Xu
SANER4
2023 Crowdsourced test case generation for android applications via static program analysis
Yuying Li 0005, Yang Feng 0003, Zhenyu Chen 0001, Baowen Xu
Autom. Softw. Eng.5
2023 Towards understanding bugs in Python interpreters
Di Liu 0021, Yang Feng 0003, Yanyan Yan, Baowen Xu
Empir. Softw. Eng.4
2023 Leveraging Stack Overflow to detect relevant tutorial fragments of APIs
Di Wu 0014, Xiaoyuan Jing, Hongyu Zhang 0002, Yuming Zhou, Baowen Xu
Empir. Softw. Eng.5
2023 RegCPython: A Register-based Python Interpreter for Better Performance
abstract
Interpreters are widely used in the implementation of many programming languages, such as Python, Perl, and Java. Even though various JIT compilers emerge in an endless stream, interpretation efficiency still plays a critical role in program performance. Does a stack-based interpreter or a register-based interpreter perform better? The pros and cons of the pair of architectures have long been discussed. The stack architecture is attractive for its concise model and compact bytecode, but our study finds that the register-based interpreter can also be implemented easily and that its bytecode size only grows by a small margin. Moreover, the latter turns out to be appreciably faster. Specifically, we implemented an open source Python interpreter named RegCPython based on CPython v3.10.1. The former is register based, while the latter is stack based. Without changes in syntax, Application Programming Interface, and Application Binary Interface, RegCPython is excellently compatible with CPython, as it does not break existing syntax or interfaces. It achieves a speedup of 1.287 on the most favorable benchmark and 0.977 even on the most unfavorable benchmark. For all Python-intensive benchmarks, the average speedup reaches 1.120 on x86 and 1.130 on ARM. Our evaluation work, which also serves as an empirical study, provides a detailed performance survey of both interpreters on modern hardware. It points out that the register-based interpreters are more efficient mainly due to the elimination of machine instructions needed, while changes in branch mispredictions and cache misses have a limited impact on performance. Additionally, it confirms that the register-based implementation is also satisfactory in terms of memory footprint, compilation cost, and implementation complexity.
Qiang Zhang 0046, Lei Xu 0003, Baowen Xu
ACM Trans. Archit. Code Optim.3
2023 Retrieving API Knowledge from Tutorials and Stack Overflow Based on Natural Language Queries
abstract
When encountering unfamiliar APIs, developers tend to seek help from API tutorials and Stack Overflow (SO). API tutorials help developers understand the API knowledge in a general context, while SO often explains the API knowledge in a specific programming task. Thus, tutorials and SO posts together can provide more API knowledge. However, it is non-trivial to retrieve API knowledge from both API tutorials and SO posts based on natural language queries. Two major problems are irrelevant API knowledge in two different resources and the lexical gap between the queries and documents. In this article, we regard a fragment in tutorials and a Question and Answering (Q&A) pair in SO as a knowledge item (KI). We generate ⟨ API, FRA ⟩ pairs (FRA stands for fragment) from tutorial fragments and APIs and build ⟨ API, QA ⟩ pairs based on heuristic rules of SO posts. We fuse ⟨ API, FRA ⟩ pairs and ⟨ API, QA ⟩ pairs to generate API knowledge (AK for short) datasets, where each data item is an ⟨ API, KI ⟩ pair. We propose a novel approach, called PLAN, to automatically retrieve API knowledge from both API tutorials and SO posts based on natural language queries. PLAN contains three main stages: (1) API knowledge modeling, (2) query mapping, and (3) API knowledge retrieving. It first utilizes a deep-transfer-metric-learning-based relevance identification (DTML) model to effectively find relevant ⟨ API, KI ⟩ pairs containing two different knowledge items (⟨ API, QA ⟩ pairs and ⟨ API, FRA ⟩ pairs) simultaneously. Then, PLAN generates several potential APIs as a way to reduce the lexical gap between the query and ⟨ API, KI ⟩ pairs. According to potential APIs, we can select relevant ⟨ API, KI ⟩ pairs to generate potential results. Finally, PLAN returns a list of ranked ⟨ API, KI ⟩ pairs that are related to the query. We evaluate the effectiveness of PLAN with 270 queries on Java and Android AK datasets containing 10,072 ⟨ API, KI ⟩ pairs. Our experimental results show that PLAN is effective and outperforms the state-of-the-art approaches. Our user study further confirms the effectiveness of PLAN in locating useful API knowledge.
Di Wu 0014, Xiaoyuan Jing, Hongyu Zhang 0002, Yang Feng 0003, Yuming Zhou, Baowen Xu
ACM Trans. Softw. Eng. Methodol.7
2023 Inconsistent Defect Labels: Essence, Causes, and Influence
abstract
The label quality of defect data sets has a direct influence on the reliability of defect prediction models. In this paper, we conduct a systematic study of inconsistent defect labels in multi-version-project defect data sets, i.e., many instances having the same source code but different labels over multiple versions of a software project. First, we report the phenomena of inconsistent labels by real examples and analyze their essence in the context of defect prediction. Then, we uncover the causes that lead to the occurrence of inconsistent labels for the representative label collection approaches. Finally, we investigate the actual influence of inconsistent labels on defect prediction models. We find that inconsistent labels in general exist in six multi-version-project defect data sets (either widely used or the most up-to-date in the literature) collected by diverse label collection approaches. In particular, inconsistent labels in a training data set significantly reduce the prediction performance of a model, while inconsistent labels in a test data set can lead to a considerable evaluation bias on the real performance. Therefore, we recommend that: on the one hand, researchers leverage our findings to make targeted methodological improvements on existing defect label collection approaches to reduce the generation of inconsistent labels; on the other hand, practitioners detect and exclude inconsistent labels in defect data sets to avoid their potential negative influence on defect prediction.
Shiran Liu, Zhaoqiang Guo, Yanhui Li 0001, Chuanqi Wang, Lin Chen 0015, Zhongbin Sun, Yuming Zhou, Baowen Xu
IEEE Trans. Software Eng.8
2022 Adaptive Test Selection for Deep Neural Networks
abstract
Deep neural networks (DNN) have achieved tremendous development in the past decade. While many DNN-driven software applications have been deployed to solve various tasks, they could also produce incorrect behaviors and result in massive losses. To reveal the incorrect behaviors and improve the quality of DNN-driven applications, developers often need rich labeled data for the testing and optimization of DNN models. However, in practice, collecting diverse data from application scenarios and labeling them properly is often a highly expensive and time-consuming task.
Yang Feng 0003, Yining Yin, Zhenyu Chen 0001, Baowen Xu
ICSE6
2022 Training Data Debugging for the Fairness of Machine Learning Software
abstract
With the widespread application of machine learning (ML) software, especially in high-risk tasks, the concern about their unfairness has been raised towards both developers and users of ML software. The unfairness of ML software indicates the software behavior affected by the sensitive features (e.g., sex), which leads to biased and illegal decisions and has become a worthy problem for the whole software engineering community.
Yanhui Li 0001, Linghan Meng, Lin Chen 0015, Li Yu 0008, Di Wu 0014, Yuming Zhou, Baowen Xu
ICSE7
2022 QATest: A Uniform Fuzzing Framework for Question Answering Systems
abstract
The tremendous advancements in deep learning techniques have empowered question answering(QA) systems with the capability of dealing with various tasks. Many commercial QA systems, such as Siri, Google Home, and Alexa, have been deployed to assist people in different daily activities. However, modern QA systems are often designed to deal with different topics and task formats, which makes both the test collection and labeling tasks difficult and thus threats their quality.
Yang Feng 0003, Yining Yin, Jingyu Sun, Zhenyu Chen 0001, Baowen Xu
ASE6
2022 Context-Aware Program Simplification to Improve Information Retrieval-Based Bug Localization
abstract
Information Retrieval-based Bug localization (IRBL) techniques have become a hot research topic in bug localization due to their few external dependencies and low execution cost. However, existing IRBL techniques have many challenges regarding localization granularity and applicability. First, existing IRBL techniques have not yet achieved statement-level bug localization. Second, almost all studies are limited to Java-based projects, and the effectiveness of these techniques for other widely used programming languages (e.g., Python) is still unknown. The reason for these deficiencies is that existing IRBL techniques mainly employ conventional NLP techniques to analyze the bug reports and have not yet fully exploited the stack trace attached to the bug reports. To improve IRBL techniques in terms of localization granularity and adaptability, we propose a context-aware program simplification technique—COPS—that is able to localize defective statements in suspicious files by analyzing the stack trace in bug reports, which enables statement-level bug localization for Python-based projects. Experiments using 948 bug reports show that our technique can localize the buggy statements with 102.6% higher Top@10, 56.2% higher MAP@10, and 95.6% higher MRR@10 than the baseline. Compared with the state-of-the-art techniques, COPS can improve 19.1% in MAP@10 and achieve 92% buggy statement coverage with a full scope search. Experimental results show that COPS has higher bug localization effectiveness than existing IRBL techniques; and that COPS achieves the same effectiveness with higher execution efficiency than state-of-the-art statement-level defect techniques.
Ziyuan Wang 0001, Zhenyu Chen 0001, Baowen Xu
QRS4
2022 Mining Python fix patterns via analyzing fine-grained source code changes
Tianxing He, Yang Feng 0003, Shaoying Liu, Baowen Xu
Empir. Softw. Eng.5
2022 An Empirical Study on the Impact of Python Dynamic Typing on the Project Maintenance
abstract
Python is a popular typical dynamic programming language. In Python, dynamic typing is one of the most critical dynamic features. The lack of type information is likely to hinder the maintenance of Python projects. However, existing work has seldom focused on studying the impact of Python dynamic typing on project maintenance. This paper focuses on the two most common practices of Python dynamic typing, i.e. inconsistent-type assignments (ITA) and inconsistent variable types (IVT). Two approaches are proposed to identify ITA and IVT, i.e. identifying ITA by analyzing Abstract Syntax Trees and comparing identifiers types and identifying IVT by constructing a type dependency graph. In empirical experiments, we first locate the usage of ITA and IVT in 10 open-source Python projects. Then, we investigate the relations between the occurrence of ITA and IVT and the results of maintenance tasks. The study results show that projects are more prone to change as the number of dynamic typing identifiers increases. There is a weak connection between change-proneness and variable dynamic typing. There is a high probability that maintenance time and the acceptance of commits decrease as dynamic typing identifiers increase in projects. These results implicate that dynamic and static variables should be divided while developing new programming languages. Dynamic typing identifiers may not be the direct root causes for most software bugs. The categories of these bugs are worth exploring.
Xinmeng Xia, Yanyan Yan, Xincheng He, Di Wu 0014, Lei Xu 0003, Baowen Xu
Int. J. Softw. Eng. Knowl. Eng.6
2022 Aligned metric representation based balanced multiset ensemble learning for heterogeneous defect prediction
abstract
Heterogeneous defect prediction (HDP) refers to the defect prediction across projects with different metrics. Most existing HDP methods map source and target data into a common metric space where each dimension has no actual meaning, which weakens their interpretability. Besides, HDP always suffers from the class imbalance problem. For deficiencies of current HDP methods, we intend to propose a novel HDP approach that can reduce the heterogeneity of source and target data and deal with imbalanced data while retaining the actual meaning for each dimension of constructed common metric space. We propose an Aligned Metric Representation based Balanced Multiset Ensemble learning (BMEL+ AMR) approach for HDP. AMR consists of shared, source-specific, and target-specific metrics. It is built by learning the translation from shared to specific metrics and reducing the distribution difference. To deal with imbalanced data, we design BMEL that constructs multiple balanced subsets for source data and produces an aggregated classifier for predicting labels of target data. Experimental results on 22 public projects indicate that (1) among all competing methods, BMEL+AMR achieves the best performance on all indicators except Popt, followed by AMR; (2) compared with AMR, the introduction of BMEL improves the performance on non-effort-aware indicators statistically significantly except F1-score; compared with BMEL, the introduction of AMR improves the performance throughout all indicators statistically significantly. BMEL+AMR can effectively improve HDP performance by eliminating heterogeneity and dealing with imbalanced data, and AMR is helpful to explain the prediction model.
Xiaoyuan Jing, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.5
2022 How higher order mutant testing performs for deep learning models: A fine-grained evaluation of test effectiveness and efficiency improved from second-order mutant-classification tuples
Yanhui Li 0001, Weijun Shen, Tengchao Wu, Lin Chen 0015, Di Wu 0014, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.7
2022 Classifying crowdsourced mobile test reports with image features: An empirical study
Yuying Li 0005, Yang Feng 0003, Di Liu 0021, Chunrong Fang, Zhenyu Chen 0001, Baowen Xu
J. Syst. Softw.7
2022 Quantifying the interpretation overhead of Python
Qiang Zhang 0046, Lei Xu 0003, Xiangyu Zhang 0001, Baowen Xu
Sci. Comput. Program.4
2022 MULA: A Just-In-Time Multi-labeling System for Issue Reports
abstract
A very important function of an issue tracking system is to assign labels to issue reports, such as bug, feature, enhancement, etc., in order to categorize issues to facilitate various development activities. In practice, it is very common that an issue has multiple labels. However, current works are mainly based on single-label prediction, which are not suitable for just-in-time multi-labeling services, due to the low efficiency. Therefore, in this paper, we propose MULA, a just-in-time MUlti-LAbeling system, which learns and automatically assigns multiple labels to issue reports. We have built a dataset with 81,601 entries and 11 labels, as the first benchmark for this task, and implemented a GitHub app. To the best of our knowledge, this is the first work and tool for online multi-labeling GitHub issues based on their categories. We conduct a comprehensive empirical study, including comparisons with five commonly adopted labeling models that show the superiority of MULA, as well as an evaluation that shows high consistency between MULA’s suggestions and developers’ opinions.
Xiaoyuan Xie, Yuhui Su, Songqiang Chen, Lin Chen 0015, Jifeng Xuan, Baowen Xu
IEEE Trans. Reliab.6
2022 CBUA: A Probabilistic, Predictive, and Practical Approach for Evaluating Test Suite Effectiveness
abstract
Knowing the effectiveness of a test suite is essential for many activities such as assessing the test adequacy of code and guiding the generation of new test cases. Mutation testing is a commonly used defect injection technique for evaluating the effectiveness of a test suite. However, it is usually computationally expensive, as a large number of mutants (buggy versions) are needed to be generated from a production code under test and executed against the test suite. In order to reduce the expensive testing cost, recent studies proposed to use supervised models to predict the effectiveness of a test suite without executing the test suite against the mutants. Nonetheless, the training of such a supervised model requires labeled data, which still depends on the costly mutant execution. Furthermore, existing models are based on traditional supervised learning techniques, which assume that the training and testing data come from the same distribution. But, in practice, software systems are subject to considerable concept drifts, i.e., the same distribution assumption usually does not hold. This can lead to inaccurate predictions of a learned supervised model on the target code as time progresses. To tackle these problems, in this paper, we propose a Coverage-Based Unsupervised Approach (CBUA) for evaluating the effectiveness of a test suite. Given a production code under test, the corresponding mutants, and a test suite, CBUA first collects the coverage information of the mutated statements in the target production code under the execution of the test suite. Then, CBUA employs coverage to estimate the probability of each mutant being alive. As such, a mutation score is computed to evaluate the test suite effectiveness and the predicted labels (i.e., killed or alive) are obtained. The whole process only requires a one-time execution of the test suite against the target production code, without involving any mutant execution and any training data. CBUA can ensure the score monotonicity property (i.e., adding test cases to a test suite does not decrease its mutation score), which may be violated by a supervised approach. The experimental results show that CBUA is very competitive with the state-of-the-art supervised approaches in prediction accuracy. In particular, CBUA is shown to be more effective in finding mutants that are covered but not killed by a test suite, which is helpful in identifying the weaknesses in the current test suite and generating new test cases accordingly. Since CBUA is an easy-to-implement approach with a low cost, we suggest that it should be used as a baseline approach for comparison when any novel prediction approach is proposed in future studies.
Peng Zhang 0083, Yanhui Li 0001, Wanwangying Ma, Yibiao Yang, Lin Chen 0015, Hongmin Lu, Yuming Zhou, Baowen Xu
IEEE Trans. Software Eng.8
2021 PyART: Python API Recommendation in Real-Time
abstract
API recommendation in real-time is challenging for dynamic languages like Python. Many existing API recommendation techniques are highly effective, but they mainly support static languages. A few Python IDEs provide API recommendation functionalities based on type inference and training on a large corpus of Python libraries and third-party libraries. As such, they may fail to recommend or make poor recommendations when type information is missing or target APIs are project-specific. In this paper, we propose a novel approach, PyART, to recommend APIs for Python programs in real-time. It features a light-weight analysis to derives so-called optimistic data-flow, which is neither sound nor complete, but simulates the local data-flow information humans can derive. It extracts three kinds of features: data-flow, token similarity, and token co-occurrence, in the context of the program point where a recommendation is solicited. A predictive model is trained on these features using the Random Forest algorithm. Evaluation on 8 popular Python projects demonstrates that PyART can provide effective API recommendations. When historic commits can be leveraged, which is the target scenario of a state-of-the-art tool ARIREC, our average top-1 accuracy is over 50% and average top-10 accuracy over 70%, outperforming APIREC and Intellicode (i.e., the recommendation component in Visual Studio) by 28.48%-39.05% for top-1 accuracy and 24.41%-30.49% for top-10 accuracy. In other applications such as when historic comments are not available and cross-project recommendation, PyART also shows better overall performance. The time to make a recommendation is less than a second on average, satisfying the real-time requirement.
Xincheng He, Lei Xu 0003, Xiangyu Zhang 0001, Yang Feng 0003, Baowen Xu
ICSE6
2021 Measuring Discrimination to Boost Comparative Testing for Multiple Deep Learning Models
abstract
The boom of DL technology leads to massive DL models built and shared, which facilitates the acquisition and reuse of DL models. For a given task, we encounter multiple DL models available with the same functionality, which are considered as candidates to achieve this task. Testers are expected to compare multiple DL models and select the more suitable ones w.r.t. the whole testing context. Due to the limitation of labeling effort, testers aim to select an efficient subset of samples to make an as precise rank estimation as possible for these models. To tackle this problem, we propose Sample Discrimination based Selection (SDS) to select efficient samples that could discriminate multiple models, i.e., the prediction behaviors (right/wrong) of these samples would be helpful to indicate the trend of model performance. To evaluate SDS, we conduct an extensive empirical study with three widely-used image datasets and 80 real world DL models. The experiment results show that, compared with state-of-the-art baseline methods, SDS is an effective and efficient sample selection method to rank multiple DL models.
Linghan Meng, Yanhui Li 0001, Lin Chen 0015, Di Wu 0014, Yuming Zhou, Baowen Xu
ICSE7
2021 Automated Testing for Machine Translation via Constituency Invariance
abstract
With the development of deep neural networks, machine translation has achieved significant progress and integrated with people’s daily lives to assist in various tasks. However, machine translators, which are essentially one kind of software, also suffer from software defects. Translation errors might cause misunderstanding or even lead to marketing blunders, and political crisis. Thus, almost all translation service providers have feedback channels of incorrect translations to collect training data and improve product performance. Inspired by the syntax structure analysis, we introduce the constituency invariance, which reflects the structural similarity between a simple sentence and sentences derived from it, to test machine translators. We implement it into an automated tool CIT to detect translation errors by checking the constituency invariance relation between the translation results. CIT adopts constituency parse trees to represent the syntactic structures of sentences and employs an efficient data augmentation method to derive multiple new sentences based on one sentence. To validate CIT, we experiment with three widely-used machine translators, i.e., Bing Microsoft Translator, Google Translate, and Youdao Translator. With 600 seed sentences as input, CIT detects 2212, 1910, and 1590 translation errors with around 77% precision. We have submitted detected errors to the development teams. Until we submit this paper, Google, Bing, and Youdao have fixed 15.4%, 32.0%, 14.3% of reported errors, respectively.
Pin Ji, Yang Feng 0003, Jia Liu 0008, Baowen Xu
ASE5
2021 Heterogeneous Defect Prediction through Joint Metric Selection and Matching
abstract
Defect prediction is one of the hot topics in software engineering. To relax the restriction on metrics, heterogeneous defect prediction (HDP) arises and aims to conduct the prediction across projects with different metrics. Among existing HDP methods, (1) one type of them construct a common metric space for heterogeneous source and target data by metric matching regardless of removing redundant metrics; (2) the other type of them generally consist of two phases that are conducted individually, i.e., metric selection and matching, which makes the whole process likely suboptimal. To solve these issues, we propose a novel approach Jointly optimizing Metric Selection and Matching (JMSM). Specifically, JMSM employs maximum mean discrepancy to reduce the distribution difference between source and target data while filtering out redundant metrics by introducing the${l_{2,1}}$-norm regularization. Experiments on 22 projects from three datasets demonstrate the significant superiority of JMSM over baselines in performance and verify the effectiveness of introducing${l_{2,1}}$-norm regularization.
Xiaoyuan Jing, Baowen Xu
QRS3
2021 Leveraging Stack Overflow to Detect Relevant Tutorial Fragments of APIs
abstract
Developers often use learning resources such as API tutorials and Stack Overflow (SO) to learn how to use an unfamiliar API. An API tutorial can be divided into a number of consecutive units that describe the same topic, denoted as tutorial fragments. We consider a tutorial fragment explaining the API usage knowledge as a relevant fragment of the API. Discovering relevant tutorial fragments of APIs can facilitate API understanding and learning. However, existing approaches, based on supervised or unsupervised approaches, often suffer from either high manual efforts or lack of consideration of the relevance information. In this paper, we propose a novel approach, called SO2RT, to detect relevant tutorial fragments of APIs based on SO posts. SO2RT first automatically extracts relevant and irrelevant 〈API,QA〉 pairs based on heuristic rules of SO, and constructs 〈API, FRA〉 pairs (FRA stands out fragment) by using tutorial fragments and APIs. SO2RT then trains a semi-supervised transfer learning based detection model, which can transfer the API usage knowledge in SO Q&A pairs to tutorial fragments by utilizing the easy-to-extract relevance of 〈API, QA〉 pairs. Finally, relevant fragments of APIs can be discovered by consulting the trained model. In this way, the effort for labeling the relevance between tutorial fragments and APIs can be reduced. We evaluate SO2RT on Java and Android datasets containing 21,008 〈API, QA〉 pairs. Experimental results show that SO2RT improves the state-of-the-art approaches in terms of F-Measure on both datasets. Our user study further confirms the effectiveness of SO2RT in practice.
Di Wu 0014, Xiaoyuan Jing, Hongyu Zhang 0002, Yuming Zhou, Baowen Xu
SANER5
2021 Matching weak informative ontologies
Peng Wang 0004, Baowen Xu
Sci. China Inf. Sci.2
2021 Generating API tags for tutorial fragments from Stack Overflow
Di Wu 0014, Xiaoyuan Jing, Hongyu Zhang 0002, Baowen Xu
Empir. Softw. Eng.6
2021 Prioritizing code documentation effort: Can we do it simpler but better?
Shiran Liu, Zhaoqiang Guo, Yanhui Li 0001, Hongmin Lu, Lin Chen 0015, Lei Xu 0003, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.8
2021 Boundary sampling to boost mutation testing for deep learning models
Weijun Shen, Yanhui Li 0001, Yuanlei Han, Lin Chen 0015, Di Wu 0014, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.7
2021 Smart Contract Development: Challenges and Opportunities
abstract
Smart contract, a term which was originally coined to refer to the automation of legal contracts in general, has recently seen much interest due to the advent of blockchain technology. Recently, the term is popularly used to refer to low-level code scripts running on a blockchain platform. Our study focuses exclusively on this subset of smart contracts. Such smart contracts have increasingly been gaining ground, finding numerous important applications (e.g., crowdfunding) in the real world. Despite the increasing popularity, smart contract development still remains somewhat a mystery to many developers largely due to its special design and applications. Are there any differences between smart contract development and traditional software development? What kind of challenges are faced by developers during smart contract development? Questions like these are important but have not been explored by researchers yet. In this paper, we performed an exploratory study to understand the current state and potential challenges developers are facing in developing smart contracts on blockchains, with a focus on Ethereum (the most popular public blockchain platform for smart contracts). Toward this end, we conducted this study in two phases. In the first phase, we conducted semi-structured interviews with 20 developers from GitHub and industry professionals who are working on smart contracts. In the second phase, we performed a survey on 232 practitioners to validate the findings from the interviews. Our interview and survey results revealed several major challenges developers are facing during smart contract development: (1) there is no effective way to guarantee the security of smart contract code; (2) existing tools for development are still very basic; (3) the programming languages and the virtual machines still have a number of limitations; (4) performance problems are hard to handle under resource constrained running environment; and (5) online resources (including advanced/updated documents and community support) are still limited. Our study suggests several directions that researchers and practitioners can work on to help improve developers’ experience on developing high-quality smart contracts.
Weiqin Zou, David Lo 0001, Pavneet Singh Kochhar, Bach Le 0001, Xin Xia 0001, Yang Feng 0003, Zhenyu Chen 0001, Baowen Xu
IEEE Trans. Software Eng.8
2020 Impact analysis of cross-project bugs on software ecosystems
abstract
Software projects are increasingly forming social-technical ecosystems within which individual projects rely on the infrastructures or functional components provided by other projects, leading to complex inter-dependencies. Through inter-project dependencies, a bug in an upstream project may have profound impact on a large number of downstream projects, resulting in cross-project bugs. This emerging type of bugs has brought new challenges in bug fixing due to their unclear influence on downstream projects. In this paper, we present an approach to estimating the impact of a cross-project bug within its ecosystem by identifying the affected downstream modules (classes/methods). Note that a downstream project that uses a buggy upstream function may not be affected as the usage does not satisfy the failure inducing preconditions. For a reported bug with the known root cause function and failure inducing preconditions, we first collect the candidate downstream modules that call the upstream function through an ecosystem-wide dependence analysis. Then, the paths to the call sites of the buggy upstream function are encoded as symbolic constraints. Solving the constraints, together with the failure inducing preconditions, identifies the affected downstream modules. Our evaluation of 31 existing upstream bugs on the scientific Python ecosystem containing 121 versions of 22 popular projects (with a total of 16 millions LOC) shows that the approach is highly effective: from the 25490 candidate downstream modules that invoke the buggy upstream functions, it identifies 1132 modules where the upstream bugs can be triggered, pruning 95.6% of the candidates. The technique has no false negatives and an average false positive rate of 7.9%. Only 49 downstream modules (out of the 1132 we found) were reported before to be affected.
Wanwangying Ma, Lin Chen 0015, Xiangyu Zhang 0001, Yang Feng 0003, Zhaogui Xu, Zhifei Chen, Yuming Zhou, Baowen Xu
ICSE8
2020 An Empirical Study on Dynamic Typing Related Practices in Python Systems
abstract
The dynamic typing discipline of Python allows developers to program at a high level of abstraction. However, type related bugs are commonly encountered in Python systems due to the lack of type declaration and static type checking. Especially, the misuse of dynamic typing discipline produces underlying bugs and increases maintenance efforts. In this paper, we introduce six types of dynamic typing related practices in Python programs, which are the common but potentially risky usage of dynamic typing discipline by developers. We also implement a tool named PYDYPE to detect them. Based on this tool, we conduct an empirical study on nine real-world Python systems (with the size of more than 460KLOC) to understand dynamic typing related practices. We investigate how widespread the dynamic typing related practices are, why they are introduced into the systems, whether their usage correlates with increased likelihood of bug occurring, and how developers fix dynamic typing related bugs. The results show that: (1) dynamic typing related practices exist inconsistently in different systems and Inconsistent Variable Types is most prevalent; (2) they are introduced into systems mainly during early development phase to promote development efficiency; (3) they have a significant positive correlation with bug occurring; (4) developers tend to add type checks or exception handling to fix dynamic typing related bugs. These results benefit future research in coding convention, language design, bug detection and fixing.
Zhifei Chen, Yanhui Li 0001, Bihuan Chen 0001, Wanwangying Ma, Lin Chen 0015, Baowen Xu
ICPC6
2020 Stay Professional and Efficient: Automatically Generate Titles for Your Bug Reports
abstract
Bug reports in a repository are generally organized line by line in a list-view, with their titles and other meta-data displayed. In this list-view, a concise and precise title plays an important role that enables project practitioners to quickly and correctly digest the core idea of the bug, without carefully reading the corresponding details. However, the quality of bug report titles varies in open-source communities, which may be due to the limited time and unprofessionalism of authors. To help report authors efficiently draft good-quality titles, we propose a method, named iTAPE, to automatically generate titles for their bug reports. iTAPE formulates title generation into a one-sentence summarization task. By properly tackling two domain-specific challenges (i.e. lacking off-the-shelf dataset and handling the low-frequency human-named tokens), iTAPE then generates titles using a Seq2Seq-based model. A comprehensive experimental study shows that iTAPE can obtain fairly satisfactory results, in terms of the comparison with three latest one-sentence summarization works, as well as the feedback from human evaluation.
Songqiang Chen, Xiaoyuan Xie, Bangguo Yin, Yuanxiang Ji, Lin Chen 0015, Baowen Xu
ASE6
2020 Multiple-Boundary Clustering and Prioritization to Promote Neural Network Retraining
abstract
With the increasing application of deep learning (DL) models in many safety-critical scenarios, effective and efficient DL testing techniques are much in demand to improve the quality of DL models. One of the major challenges is the data gap between the training data to construct the models and the testing data to evaluate them. To bridge the gap, testers aim to collect an effective subset of inputs from the testing contexts, with limited labeling effort, for retraining DL models.
Weijun Shen, Yanhui Li 0001, Lin Chen 0015, Yuanlei Han, Yuming Zhou, Baowen Xu
ASE6
2020 Boosting crash-inducing change localization with rank-performance-based feature subset selection
Zhaoqiang Guo, Yanhui Li 0001, Wanwangying Ma, Yuming Zhou, Hongmin Lu, Lin Chen 0015, Baowen Xu
Empir. Softw. Eng.7
2020 Examining the effects of developer familiarity on bug fixing
Chuanqi Wang, Yanhui Li 0001, Lin Chen 0015, Wen-Chin Huang, Yuming Zhou, Baowen Xu
J. Syst. Softw.6
2020 How C++ Templates Are Used for Generic Programming: An Empirical Study on 50 Open Source Systems
abstract
Generic programming is a key paradigm for developing reusable software components. The inherent support for generic constructs is therefore important in programming languages. As for C++, the generic construct, templates, has been supported since the language was first released. However, little is currently known about how C++ templates are actually used in developing real software. In this study, we conduct an experiment to investigate the use of templates in practice. We analyze 1,267 historical revisions of 50 open source systems, consisting of 566 million lines of C++ code, to collect the data of the practical use of templates. We perform statistical analyses on the collected data and produce many interesting results. We uncover the following important findings: (1) templates are practically used to prevent code duplication, but this benefit is largely confined to a few highly used templates; (2) function templates do not effectively replace C-style generics, and developers with a C background do not show significant preference between the two language constructs; (3) developers seldom convert dynamic polymorphism to static polymorphism by using CRTP (Curiously Recursive Template Pattern); (4) the use of templates follows a power-law distribution in most cases, and C++ developers who prefer using templates are those without other language background; (5) C developer background seems to override C++ project guidelines. These findings are helpful not only for researchers to understand the tendency of template use but also for tool builders to implement better tools to support generic programming.
Lin Chen 0015, Di Wu 0014, Wanwangying Ma, Yuming Zhou, Baowen Xu, Hareton K. N. Leung
ACM Trans. Softw. Eng. Methodol.5
2020 METTLE: A METamorphic Testing Approach to Assessing and Validating Unsupervised Machine Learning Systems
abstract
Unsupervised machine learning is the training of an artificial intelligence system using information that is neither classified nor labeled, with a view to modeling the underlying structure or distribution in a dataset. Since unsupervised machine learning systems are widely used in many real-world applications, assessing the appropriateness of these systems and validating their implementations with respect to individual users' requirements and specific application scenarios/contexts are indisputably two important tasks. Such assessments and validation tasks, however, are fairly challenging due to the absence of a priori knowledge of the data. In view of this challenge, in this article, we develop a METamorphic Testing approach to assessing and validating unsupervised machine LEarning systems, abbreviated as mettle. Our approach provides a new way to unveil the (possibly latent) characteristics of various machine learning systems, by explicitly considering the specific expectations and requirements of these systems from individual users' perspectives. To support mettle, we have further formulated 11 generic metamorphic relations (MRs), covering users' generally expected characteristics that should be possessed by machine learning systems. We have performed an experiment and a user evaluation study to evaluate the viability and effectiveness of mettle. Our experiment and user evaluation study have shown that, guided by user-defined MR-based adequacy criteria, end users are able to assess, validate, and select appropriate clustering systems in accordance with their own specific needs. Our investigation has also yielded insightful understanding and interpretation of the behavior of the machine learning systems from an end-user software engineering's perspective, rather than a designer's or implementor's perspective, who normally adopts a theoretical approach.
Xiaoyuan Xie, Zhiyi Zhang 0005, Tsong Yueh Chen, Yang Liu 0003, Pak-Lok Poon, Baowen Xu
IEEE Trans. Reliab.6
2020 How Practitioners Perceive Automated Bug Report Management Techniques
abstract
Bug reports play an important role in the process of debugging and fixing bugs. To reduce the burden of bug report managers and facilitate the process of bug fixing, a great amount of software engineering research has been invested toward automated bug report management techniques. However, the verdict is still open whether such techniques are actually required and applicable outside the domain of theoretical research. To fill this gap, we conducted a survey among 327 practitioners to gain their insights into various categories of automated bug report management techniques. Specifically, we asked the respondents to rate the importance of such techniques and provide the rationale. To get deeper insights into practitioners' perspective, we conducted follow-up interviews with 25 interviewees selected from the survey respondents. Through the survey and the interviews, we gained a better understanding of the perceived usefulness (or its lack) of different categories of automated bug report management techniques. Based on our findings, we summarized some potential research directions in developing techniques to help developers better manage bug reports.
Weiqin Zou, David Lo 0001, Zhenyu Chen 0001, Xin Xia 0001, Yang Feng 0003, Baowen Xu
IEEE Trans. Software Eng.6
2019 Hunting for bugs in code coverage tools via randomized differential testing
abstract
Reliable code coverage tools are critically important as it is heavily used to facilitate many quality assurance activities, such as software testing, fuzzing, and debugging. However, little attention has been devoted to assessing the reliability of code coverage tools. In this study, we propose a randomized differential testing approach to hunting for bugs in the most widely used C code coverage tools. Specifically, by generating random input programs, our approach seeks for inconsistencies in code coverage reports produced by different code coverage tools, and then identifies inconsistencies as potential code coverage bugs. To effectively report code coverage bugs, we addressed three specific challenges: (1) How to filter out duplicate test programs as many of them triggering the same bugs in code coverage tools; (2) how to automatically reduce large test programs to much smaller ones that have the same properties; and (3) how to determine which code coverage tools have bugs? The extensive evaluations validate the effectiveness of our approach, resulting in 42 and 28 confirmed/fixed bugs for gcov and llvm-cov, respectively. This case study indicates that code coverage tools are not as reliable as it might have been envisaged. It not only demonstrates the effectiveness of our approach, but also highlights the need to continue improving the reliability of code coverage tools. This work opens up a new direction in code coverage validation which calls for more attention in this area.
Yibiao Yang, Yuming Zhou, Hao Sun 0021, Zhendong Su 0001, Zhiqiang Zuo 0002, Lei Xu 0003, Baowen Xu
ICSE7
2019 Automatic Self-Validation for Code Coverage Profilers
abstract
Code coverage as the primitive dynamic program behavior information, is widely adopted to facilitate a rich spectrum of software engineering tasks, such as testing, fuzzing, debugging, fault detection, reverse engineering, and program understanding. Thanks to the widespread applications, it is crucial to ensure the reliability of the code coverage profilers. Unfortunately, due to the lack of research attention and the existence of testing oracle problem, coverage profilers are far away from being tested sufficiently. Bugs are still regularly seen in the widely deployed profilers, like gcov and llvm-cov, along with gcc and llvm, respectively. This paper proposes Cod, an automated self-validator for effectively uncovering bugs in the coverage profilers. Starting from a test program (either from a compiler's test suite or generated randomly), Cod detects profiler bugs with zero false positive using a metamorphic relation in which the coverage statistics of that program and a mutated variant are bridged. We evaluated Cod over two of the most well-known code coverage profilers, namely gcov and llvm-cov. Within a four-month testing period, a total of 196 potential bugs (123 for gcov, 73 for llvm-cov) are found, among which 23 are confirmed by the developers.
Yibiao Yang, Yanyan Jiang 0001, Zhiqiang Zuo 0002, Yang Wang 0165, Hao Sun 0021, Hongmin Lu, Yuming Zhou, Baowen Xu
ASE8
2019 Heterogeneous defect prediction with two-stage ensemble learning
Zhiqiang Li 0003, Xiaoyuan Jing, Xiaoke Zhu, Hongyu Zhang 0002, Baowen Xu
Autom. Softw. Eng.5
2019 Predictive analysis for race detection in software-defined networks
Gongzheng Lu, Lei Xu 0003, Yibiao Yang, Baowen Xu
Sci. China Inf. Sci.4
2019 How does code style inconsistency affect pull request integration? An exploratory study on 117 GitHub projects
Weiqin Zou, Jifeng Xuan, Xiaoyuan Xie, Zhenyu Chen 0001, Baowen Xu
Empir. Softw. Eng.5
2019 On the analysis of spectrum based fault localization using hitting sets
Jingxuan Tu, Xiaoyuan Xie, Tsong Yueh Chen, Baowen Xu
J. Syst. Softw.4
2019 On the Multiple Sources and Privacy Preservation Issues for Heterogeneous Defect Prediction
abstract
Heterogeneous defect prediction (HDP) refers to predicting defect-proneness of software modules in a target project using heterogeneous metric data from other projects. Existing HDP methods mainly focus on predicting target instances with single source. In practice, there exist plenty of external projects. Multiple sources can generally provide more information than a single project. Therefore, it is meaningful to investigate whether the HDP performance can be improved by employing multiple sources. However, a precondition of conducting HDP is that the external sources are available. Due to privacy concerns, most companies are not willing to share their data. To facilitate data sharing, it is essential to study how to protect the privacy of data owners before they release their data. In this paper, we study the above two issues in HDP. Specifically, to utilize multiple sources effectively, we propose a multi-source selection based manifold discriminant alignment (MSMDA) approach. To protect the privacy of data owners, a sparse representation based double obfuscation algorithm is designed and applied to HDP. Through a case study of 28 projects, our results show that MSMDA can achieve better performance than a range of baseline methods. The improvement is 3.4-15.3 percent in g-measure and 3.0-19.1 percent in AUG.
Zhiqiang Li 0003, Xiaoyuan Jing, Xiaoke Zhu, Hongyu Zhang 0002, Baowen Xu
IEEE Trans. Software Eng.5
2018 Predicting the Breakability of Blocking Bug Pairs
abstract
Software systems becomes increasingly complex for the wide use of social-software-development platforms, such as GitHub. Complicated inter-dependencies within ecosystems impose new challenges in resolving the blocking bug pairs, in which the upstream bugs prevent the downstream bugs to be fixed. Generally, the downstream bugs cannot be fixed until the upstream bugs are fixed in blocking bug pairs, which keeps the downstream developers waiting for a long time. However, previous research found that some blocking pairs could be "broken" through a workaround, i.e., a temporary solution proposed by the downstream developers before the upstream bugs get fixed. In this paper, we propose an approach to describe and predict the breakability of the blocking bug pairs. Our goal is to help the ecosystem developers to predict whether the given blocking bug pair can be broken. We evaluate our approach on two real world ecosystems: Mozilla Firefox and Netbeans, and have the following two main findings. First, the participants within the blocking bug pair and the vitality of the downstream bug have much impact on the breakability. Second, we can build breakability predication models with the accuracy of approximate 80%. Moreover, for predicting unbreakable pairs which affect the downstream projects seriously, our approach achieves a precision over 92%. It can be used to effectively remind the upstream developers to fix these bugs as quickly as possible.
Wanwangying Ma, Lin Chen 0015, Yuming Zhou, Baowen Xu
COMPSAC (1)5
2018 Speedoo: prioritizing performance optimization opportunities
abstract
Performance problems widely exist in modern software systems. Existing performance optimization techniques, including profiling-based and pattern-based techniques, usually fail to consider the architectural impacts among methods that easily slow down the overall system performance. This paper contributes a new approach, named Speedoo, to identify groups of methods that should be treated together and deserve high priorities for performance optimization. The uniqueness of Speedoo is to measure and rank the performance optimization opportunities of a method based on 1) the architectural impact and 2) the optimization potential. For each highly ranked method, we locate a respective Optimization Space based on 5 performance patterns generalized from empirical observations. The top ranked optimization spaces are suggested to developers as potential optimization opportunities. Our evaluation on three real-life projects has demonstrated that 18.52% to 42.86% of methods in the top ranked optimization spaces indeed undertook performance optimization in the projects. This outperforms one of the state-of-the-art profiling tools YourKit by 2 to 3 times. An important implication of this study is that developers should treat methods in an optimization space together as a group rather than as individuals in performance optimization. The proposed approach can provide guidelines and reduce developers' manual effort.
Zhifei Chen, Bihuan Chen 0001, Lu Xiao 0001, Xiao Wang 0030, Lin Chen 0015, Yang Liu 0003, Baowen Xu
ICSE7
2018 Debugging with intelligence via probabilistic inference
abstract
We aim to debug a single failing execution without the assistance from other passing/failing runs. In our context, debugging is a process with substantial uncertainty - lots of decisions have to be made such as what variables shall be inspected first. To deal with such uncertainty, we propose to equip machines with human-like intelligence. Specifically, we develop a highly automated debugging technique that aims to couple human-like reasoning (e.g., dealing with uncertainty and fusing knowledge) with program semantics based analysis, to achieve benefits from the two and mitigate their limitations. We model debugging as a probabilistic inference problem, in which the likelihood of each executed statement instance and variable being correct/faulty is modeled by a random variable. Human knowledge, human-like reasoning rules and program semantics are modeled as conditional probability distributions, also called probabilistic constraints. Solving these constraints identifies the most likely faulty statements. Our results show that the technique is highly effective. It can precisely identify root causes for a set of real-world bugs in a very small number of interactions with developers, much smaller than a recent proposal that does not encode human intelligence. Our user study also confirms that it substantially improves human productivity.
Zhaogui Xu, Shiqing Ma, Xiangyu Zhang 0001, Shuofei Zhu, Baowen Xu
ICSE5
2018 How Many Versions does a Bug Live in? An Empirical Study on Text Features for Bug Lifecycle Prediction
abstract
During the software system's maintenance and evolution, finding and removing software bugs is a very important part that consumes a large amount of money and effort.To analyze different bugs' character, it is very essential to know how long or which period of versions does the bug live in.In this study, we define version-based bug lifecycle and propose a text features based classification model to predict the versionlength of bug lifecycle.We collect 57000+ bugs from 10 well-know Apache Software Foundation projects to construct our dataset, and use the tf-idf method to collect our text features from bug report's summary and description.Our experimental results show that the text feature based method performs better than other baseline methods on 10 projects.The text feature based Naive Bayes classifiers outperforms all other methods with different features and classifiers.
Chuanqi Wang, Baowen Xu
SEKE3
2018 A Gated Hierarchical LSTMs for Target-based Sentiment Analysis
abstract
The deep neural model combining attention mechanism has achieved remarkable success in the task of targetbased sentiment analysis.In current research, the attention mechanism is more broadly combined with LSTM(Long Short-Term Memory) networks, however, such neural network-based architectures generally rely on complex computation and only focus on the single target.We propose a gated hierarchical LSTMs(GH-LSTM) model of combining regional LSTM and sentence-level LSTM via a gated operation for the task of targetbased sentiment analysis.This approach can distinguish different polarities of sentiment of different targets in the same sentence through a regional LSTM, and is able to concentrate on the long dependency of target in the whole sentence via a sentence-level LSTM.The experimental results on multi-domain datasets of two languages from SemEval2016 indicate that, our approach yields better performance than SVM(Support Vector Machine) and several typical neural network models.
Baowen Xu
SEKE5
2018 Connecting software metrics across versions to predict defects
abstract
Accurate software defect prediction could help software practitioners allocate test resources to defect-prone modules effectively and efficiently. In the last decades, much effort has been devoted to build accurate defect prediction models, including developing quality defect predictors and modeling techniques. However, current widely used defect predictors such as code metrics and process metrics could not well describe how software modules change over the project evolution, which we believe is important for defect prediction. In order to deal with this problem, in this paper, we propose to use the Historical Version Sequence of Metrics (HVSM) in continuous software versions as defect predictors. Furthermore, we leverage Recurrent Neural Network (RNN), a popular modeling technique, to take HVSM as the input to build software prediction models. The experimental results show that, in most cases, the proposed HVSM-based RNN model has significantly better effort-aware ranking effectiveness than the commonly used baseline models.
Yanhui Li 0001, Jianbo Guo, Yuming Zhou, Baowen Xu
SANER5
2018 Cost-sensitive transfer kernel canonical correlation analysis for heterogeneous defect prediction
Zhiqiang Li 0003, Xiaoyuan Jing, Fei Wu 0004, Xiaoke Zhu, Baowen Xu
Autom. Softw. Eng.5
2018 A study on the changes of dynamic feature code when fixing bugs: towards the benefits and costs of Python dynamic features
Zhifei Chen, Wanwangying Ma, Lin Chen 0015, Yanhui Li 0001, Baowen Xu
Sci. China Inf. Sci.6
2018 Gated Hierarchical LSTMs for Target-Based Sentiment Analysis
abstract
In the field of target-based sentiment analysis, the deep neural model combining attention mechanism is a remarkable success. In current research, it is commonly seen that attention mechanism is combined with Long Short-Term Memory (LSTM) networks. However, such neural network-based architectures generally rely on complex computation and only focus on single target. In this paper, we propose a gated hierarchical LSTM (GH-LSTMs) model which combines regional LSTM and sentence-level LSTM via a gated operation for the task of target-based sentiment analysis. This approach can distinguish different polarities of sentiment of different targets in the same sentence through a regional LSTM. Furthermore, it is able to concentrate on the long-distance dependency of target in the whole sentence via a sentence-level LSTM. The final results of our experiments on multi-domain datasets of two languages from SemEval 2016 indicate that our approach yields better performance than Support Vector Machine (SVM) and several typical neural network models. A case study of some typical examples also makes a supplement to this conclusion.
Baowen Xu
Int. J. Softw. Eng. Knowl. Eng.5
2018 Understanding metric-based detectable smells in Python software: A comparative study
Zhifei Chen, Lin Chen 0015, Wanwangying Ma, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.6
2018 How Far We Have Progressed in the Journey? An Examination of Cross-Project Defect Prediction
abstract
Background. Recent years have seen an increasing interest in cross-project defect prediction (CPDP), which aims to apply defect prediction models built on source projects to a target project. Currently, a variety of (complex) CPDP models have been proposed with a promising prediction performance. Problem. Most, if not all, of the existing CPDP models are not compared against those simple module size models that are easy to implement and have shown a good performance in defect prediction in the literature. Objective. We aim to investigate how far we have really progressed in the journey by comparing the performance in defect prediction between the existing CPDP models and simple module size models. Method. We first use module size in the target project to build two simple defect prediction models, ManualDown and ManualUp, which do not require any training data from source projects. ManualDown considers a larger module as more defect-prone, while ManualUp considers a smaller module as more defect-prone. Then, we take the following measures to ensure a fair comparison on the performance in defect prediction between the existing CPDP models and the simple module size models: using the same publicly available data sets, using the same performance indicators, and using the prediction performance reported in the original cross-project defect prediction studies. Result. The simple module size models have a prediction performance comparable or even superior to most of the existing CPDP models in the literature, including many newly proposed models. Conclusion. The results caution us that, if the prediction performance is the goal, the real progress in CPDP is not being achieved as it might have been envisaged. We hence recommend that future studies should include ManualDown/ManualUp as the baseline models for comparison when developing new CPDP models to predict defects in a complete target project.
Yuming Zhou, Yibiao Yang, Hongmin Lu, Lin Chen 0015, Yanhui Li 0001, Junyan Qian, Baowen Xu
ACM Trans. Softw. Eng. Methodol.8
2017 An Empirical Study on Downstream Workarounds for Cross-Project Bugs
abstract
GitHub has fostered complicated and enormous software ecosystems, in which projects depend on and co-evolve with each other. An error in an upstream project may affect its downstream projects through inter-dependencies, forming crossproject bugs. Though the upstream developers should fix the bugs on their side, proposing a workaround, i.e., a temporary solution in the downstream project is a common practice for the downstream developers. In this study, we empirically investigated the characteristics of downstream workarounds in the scientific Python ecosystem. Combining the statistical comparisons and manual inspection, we have the following three main findings. First, in general, the workarounds and the corresponding upstream fixes are significantly different in code size and code structure. Second, there are three kinds of crossproject bugs that the downstream developers usually work around. Last, four types of common patterns are identified from the investigated workarounds. The findings of this study lead to better understanding of cross-project bugs and the practices of developers in software ecosystems.
Wanwangying Ma, Lin Chen 0015, Yuming Zhou, Baowen Xu
APSEC5
2017 Training Data Selection for Cross-Project Defection Prediction: Which Approach Is Better?
abstract
Background: Many relevancy filters have been proposed to select training data for building cross-project defect prediction (CPDP) models. However, up to now, there is no consensus about which relevancy filter is better for CPDP. Goal: In this paper, we conduct a thorough experiment to compare nine relevancy filters proposed in the recent literature. Method: Based on 33 publicly available data sets, we compare not only the retaining ratio of the original training data and the overlapping degree among the retained data but also the prediction performance of the resulting CPDP models under the ranking and classification scenarios. Results: In terms of retaining ratio and overlapping degree, there are important differences among these filters. According to the defect prediction performance, global filter always stays in the first level. Conclusions: For practitioners, it appears that there is no need to filter source project data, as this may lead to better defect prediction results.
Yi Bin, Hongmin Lu, Yuming Zhou, Baowen Xu
ESEM5
2017 Code Churn: A Neglected Metric in Effort-Aware Just-in-Time Defect Prediction
abstract
Background: An increasing research effort has devoted to just-in-time (JIT) defect prediction. A recent study by Yang et al. at FSE'16 leveraged individual change metrics to build unsupervised JIT defect prediction model. They found that many unsupervised models performed similarly to or better than the state-of-the-art supervised models in effort-aware JIT defect prediction. Goal: In Yang et al.'s study, code churn (i.e. the change size of a code change) was neglected when building unsupervised defect prediction models. In this study, we aim to investigate the effectiveness of code churn based unsupervised defect prediction model in effort-aware JIT defect prediction. Methods: Consistent with Yang et al.'s work, we first use code churn to build a code churn based unsupervised model (CCUM). Then, we evaluate the prediction performance of CCUM against the state-of-the-art supervised and unsupervised models under the following three prediction settings: cross-validation, time-wise cross-validation, and cross-project prediction. Results: In our experiment, we compare CCUM against the state-of-the-art supervised and unsupervised JIT defect prediction models. Based on six open-source projects, our experimental results show that CCUM performs better than all the prior supervised and unsupervised models. Conclusions: The result suggests that future JIT defect prediction studies should use CCUM as a baseline model for comparison when a novel model is proposed.
Yuming Zhou, Yibiao Yang, Hongmin Lu, Baowen Xu
ESEM5
2017 How do developers fix cross-project correlated bugs?: a case study on the GitHub scientific python ecosystem
abstract
GitHub, a popular social-software-development platform, has fostered a variety of software ecosystems where projects depend on one another and practitioners interact with each other. Projects within an ecosystem often have complex inter-dependencies that impose new challenges in bug reporting and fixing. In this paper, we conduct an empirical study on cross-project correlated bugs, i.e., causally related bugs reported to different projects, focusing on two aspects: 1) how developers track the root causes across projects, and 2) how the downstream developers coordinate to deal with upstream bugs. Through manual inspection of bug reports collected from the scientific Python ecosystem and an online survey with developers, this study reveals the common practices of developers and the various factors in fixing cross-project bugs. These findings provide implications for future software bug analysis in the scope of ecosystem, as well as shed light on the requirements of issue trackers for such bugs.
Wanwangying Ma, Lin Chen 0015, Xiangyu Zhang 0001, Yuming Zhou, Baowen Xu
ICSE5
2017 Fault Interference and Coupling Effect
abstract
Any program may contain more than one fault, and these faults may interfere with each other in a variety of ways.Software behavior may be affected by the interference, resulting in some uncertain results.Such results have negative impact on many software engineering tasks, including regression testing, fault localization, debugging, fault clustering etc.Therefore, understanding the interference becomes an important topic.This paper investigates the fault interference from the perspective of software construction.We introduce the coupling of software construction in order to explain the reasons for fault interference.We observed that different types of coupling may cause three kinds of fault interference and have different probabilities to make the software strike the fault interference traps.We conducted a preliminary experiment on four industrial programs.The results show that our approach gives a good explanation on fault interference.
Chunrong Fang, Yang Feng 0003, Qingkai Shi, Zicong Liu, Baowen Xu
SEKE6
2017 Predicate Interpretation Analysis Based on Soot
abstract
Symbolic execution maintains a path condition pc for every possible path of a program.It is challenging to construct a pc if some complex issues are involved in the path.A predicate interpretation pi is a subexpression of a pc and a pc of a path is a conjunction of all pis in the path.Predicate interpretation has been widely used in theoretical analysis on domain testing and related fields.It recently emerges new impact on software testing by using partial path constraints to generate test data.In this paper, we propose an approach to produce pis in a program.A tool for predicate interpretation analysis for Java programs is implemented based on the data-flow framework of Soot.Most of Java features can be handled in our tool.Moreover, a formal rule of predicate interpretation analysis is presented for more applications in the future.The experimental results show that our tool can produce pis of a program effectively and efficiently.
Chunrong Fang, Qingkai Shi, Yang Feng 0003, Zicong Liu, Baowen Xu
SEKE6
2017 An empirical investigation into the cost-effectiveness of test effort allocation strategies for finding faults
abstract
In recent years, it has been shown that fault prediction models could effectively guide test effort allocation in finding faults if they have a high enough fault prediction accuracy (Norm(Popt) > 0.78). However, it is often difficult to achieve such a high fault prediction accuracy in practice. As a result, fault-prediction-model-guided allocation (FPA) methods may be not applicable in real development environments. To attack this problem, in this paper, we propose a new type of test effort allocation strategy: reliability-growth-model-guided allocation (RGA) method. For a given project release V, RGA attempts to predict the optimal test effort allocation for V by learning the fault distribution information from the previous releases. Based on three open-source projects, we empirically investigate the cost-effectiveness of three test effort allocation strategies for finding faults: RGA, FPA, and structural-complexity-guided allocation (SCA) method. The experimental results show that RGA shows a promising performance in finding faults when compared with SCA and FPA.
Yiyang Feng, Wanwangying Ma, Yibiao Yang, Hongmin Lu, Yuming Zhou, Baowen Xu
SANER6
2017 Understanding the value of considering client usage context in package cohesion for fault-proneness prediction
Yibiao Yang, Hongmin Lu, Hareton K. N. Leung, Yansong Wu, Yuming Zhou, Baowen Xu
Autom. Softw. Eng.8
2017 An empirical study on constraint optimization techniques for test generation
Zhiyi Zhang 0004, Zhenyu Chen 0001, Ruizhi Gao, W. Eric Wong, Baowen Xu
Sci. China Inf. Sci.5
2017 Software effort estimation based on open source projects: Case study of Github
Fumin Qi, Xiaoyuan Jing, Xiaoke Zhu, Xiaoyuan Xie, Baowen Xu
Inf. Softw. Technol.5
2017 Towards an understanding of change types in bug fixing code
Hareton K. N. Leung, Yibiao Yang, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.5
2017 An Improved SDA Based Defect Prediction Framework for Both Within-Project and Cross-Project Class-Imbalance Problems
abstract
Background.Solving the class-imbalance problem of within-project software defect prediction (SDP) is an important research topic. Although some class-imbalance learning methods have been presented, there exists room for improvement. For cross-project SDP, we found that the class-imbalanced source usually leads to misclassification of defective instances. However, only one work has paid attention to this cross-project class-imbalance problem.Objective.We aim to provide effective solutions for both within-project and cross-project class-imbalance problems.Method.Subclass discriminant analysis (SDA), an effective feature learning method, is introduced to solve the problems. It can learn features with more powerful classification ability from original metrics. For within-project prediction, we improve SDA for achieving balanced subclasses and propose the improved SDA (ISDA) approach. For cross-project prediction, we employ the semi-supervised transfer component analysis (SSTCA) method to make the distributions of source and target data consistent, and propose the SSTCA+ISDA prediction approach.Results. Extensive experiments on four widely used datasets indicate that: 1) ISDA-based solution performs better than other state-of-the-art methods for within-project class-imbalance problem; 2) SSTCA+ISDA proposed for cross-project class-imbalance problem significantly outperforms related methods.Conclusion. Within-project and cross-project class-imbalance problems greatly affect prediction performance, and we provide a unified and effective prediction framework for both problems.
Xiaoyuan Jing, Fei Wu 0004, Xiwei Dong, Baowen Xu
IEEE Trans. Software Eng.4
2016 Code Coverage-Based Failure Proximity without Test Oracles
abstract
Failure indexing technique plays an important role in modern software maintenance. It can facilitate duplicated failure removal, failure assignment, etc. Failure proximity is a crucial part that underpins failure indexing techniques. It is comprised of two components: a fingerprinting function extracting failure signatures from failures and a distance function computing pairwise distances between failures. Failure proximity usually assumes the existence of test oracle. However, in many real-life application domains, test oracles do not always exist. Hence, the applicability of existing failure proximity techniques is limited. In our paper, we focus on investigating how to apply metamorphic testing on code coverage-based failure proximity without test oracles. In our approach, instead of using the testing results of failure, the results of violation or non-violation for metamorphic test groups are used. Specifically, the fingerprinting function extracts signatures from metamorphic slices rather than execution slices and the distance function computes the pairwise distance between violations rather than between failures. Thereby, the applicability of failure proximity is extended to the situations without test oracles. The experimental results on 50 two-fault mutants show that the quality of proximity matrix obtained through our approach is statistical comparable to traditional code coverage-based failure proximity with test oracle.
Jingxuan Tu, Xiaoyuan Xie, Baowen Xu
COMPSAC3
2016 Missing data imputation based on low-rank recovery and semi-supervised regression for software effort estimation
abstract
Software effort estimation (SEE) is a crucial step in software development. Effort data missing usually occurs in real-world data collection. Focusing on the missing data problem, existing SEE methods employ the deletion, ignoring, or imputation strategy to address the problem, where the imputation strategy was found to be more helpful for improving the estimation performance. Current imputation methods in SEE use classical imputation techniques for missing data imputation, yet these imputation techniques have their respective disadvantages and might not be appropriate for effort data. In this paper, we aim to provide an effective solution for the effort data missing problem. Incompletion includes the drive factor missing case and effort label missing case. We introduce the low-rank recovery technique for addressing the drive factor missing case. And we employ the semi-supervised regression technique to perform imputation in the case of effort label missing. We then propose a novel effort data imputation approach, named low-rank recovery and semi-supervised regression imputation (LRSRI). Experiments on 7 widely used software effort datasets indicate that: (1) the proposed approach can obtain better effort data imputation effects than other methods; (2) the imputed data using our approach can apply to multiple estimators well.
Xiaoyuan Jing, Fumin Qi, Fei Wu 0004, Baowen Xu
ICSE4
2016 Revisit of automatic debugging via human focus-tracking analysis
abstract
In many fields of software engineering, studies on human behavior have attracted a lot of attention; however, few such studies exist in automated debugging. Parnin and Orso conducted a pioneering study comparing the performance of programmers in debugging with and without a ranking-based fault localization technique, namely Spectrum-Based Fault Localization (SBFL). In this paper, we revisit the actual helpfulness of SBFL, by addressing some major problems that were not resolved in Parnin and Orso's study. Our investigation involved 207 participants and 17 debugging tasks. A user-friendly SBFL tool was adopted. It was found that SBFL tended not to be helpful in improving the efficiency of debugging. By tracking and analyzing programmers' focus of attention, we characterized their source code navigation patterns and provided in-depth explanations to the observations. Results indicated that (1) a short "first scan" on the source code tended to result in inefficient debugging; and (2) inspections on the pinpointed statements during the "follow-up browsing" were normally just quick skimming. Moreover, we found that the SBFL assistance may even slightly weaken programmers' abilities in fault detection. Our observations imply interference between the mechanism of automated fault localization and the actual assistance needed by programmers in debugging. To resolve this interference, we provide several insights and suggestions.
Xiaoyuan Xie, Zicong Liu, Shuo Song, Zhenyu Chen 0001, Jifeng Xuan, Baowen Xu
ICSE6
2016 An Empirical Study on the Characteristics of Python Fine-Grained Source Code Change Types
abstract
Software has been changing during its whole life cycle. Therefore, identification of source code changes becomes a key issue in software evolution analysis. However, few current change analysis research focus on dynamic language software. In this paper, we pay attention to the fine-grained source code changes of Python software. We implement an automatic tool named PyCT to extract 77 kinds of fine-grained source code change types from commit history information. We conduct an empirical study on ten popular Python projects from five domains, with 132294 commits, to investigate the characteristics of dynamic software source code changes. Analyzing the source code changes in four aspects, we distill 11 findings, which are summarized into two insights on software evolution: change prediction and fault code fix. In addition, we provide direct evidence on how developers use and change dynamic features. Our results provide useful guidance and insights for improving the understanding of source code evolution of dynamic language software.
Zhifei Chen, Wanwangying Ma, Lin Chen 0015, Lei Xu 0003, Baowen Xu
ICSME6
2016 Statically Detect Data Races for WS-BPEL Web Services by Constraint Solver
abstract
Nowadays, Web services are widely used because of their interoperability and reusability. Multiple Web services can be composed following some business logic specified by BPEL (Business Process Execution Language) scripts. Since BPEL scripts allow specifying concurrent workflow, typical concurrency problems, such as data race, atomicity violation and order violation, also commonly occur in BPEL scripts. These issues are hard to detect and reproduce due to their non-determinism and the special language features of BPEL. In this paper, we implement a tool to detect data races for WS-BPEL based on static analysis approach and constraints solver. Our system is based on three key concepts: (1) a preprocess model to record necessary information, (2) a thorough Happens-Before model of WS-BPEL concurrency, (3) constraint encoding to transfer Happens-Before relationship to constraints and check if there is a feasible solution (namely data races) by Z3-Str solver. We evaluate the usability and performance of our tool on 10 benchmark programs with effective results.
Lei Xu 0003, Baowen Xu, Weifeng Zhang 0001
ICWS3
2016 An empirical study on dependence clusters for effort-aware fault-proneness prediction
abstract
A dependence cluster is a set of mutually inter-dependent program elements. Prior studies have found that large dependence clusters are prevalent in software systems. It has been suggested that dependence clusters have potentially harmful effects on software quality. However, little empirical evidence has been provided to support this claim. The study presented in this paper investigates the relationship between dependence clusters and software quality at the function-level with a focus on effort-aware fault-proneness prediction. The investigation first analyzes whether or not larger dependence clusters tend to be more fault-prone. Second, it investigates whether the proportion of faulty functions inside dependence clusters is significantly different from the proportion of faulty functions outside dependence clusters. Third, it examines whether or not functions inside dependence clusters playing a more important role than others are more fault-prone. Finally, based on two groups of functions (i.e., functions inside and outside dependence clusters), the investigation considers a segmented fault-proneness prediction model. Our experimental results, based on five well-known open-source systems, show that (1) larger dependence clusters tend to be more fault-prone; (2) the proportion of faulty functions inside dependence clusters is significantly larger than the proportion of faulty functions outside dependence clusters; (3) functions inside dependence clusters that play more important roles are more fault-prone; (4) our segmented prediction model can significantly improve the effectiveness of effort-aware fault-proneness prediction in both ranking and classification scenarios. These findings help us better understand how dependence clusters influence software quality.
Yibiao Yang, Mark Harman, Jens Krinke, Syed S. Islam, Dave W. Binkley, Yuming Zhou, Baowen Xu
ASE7
2016 Python predictive analysis for bug detection
abstract
Python is a popular dynamic language that allows quick software development. However, Python program analysis engines are largely lacking. In this paper, we present a Python predictive analysis. It first collects the trace of an execution, and then encodes the trace and unexecuted branches to symbolic constraints. Symbolic variables are introduced to denote input values, their dynamic types, and attribute sets, to reason about their variations. Solving the constraints identifies bugs and their triggering inputs. Our evaluation shows that the technique is highly effective in analyzing real-world complex programs with a lot of dynamic features and external library calls, due to its sophisticated encoding design based on traces. It identifies 46 bugs from 11 real-world projects, with 16 new bugs. All reported bugs are true positives.
Zhaogui Xu, Peng Liu 0010, Xiangyu Zhang 0001, Baowen Xu
SIGSOFT FSE4
2016 Python probabilistic type inference with natural language support
abstract
We propose a novel type inference technique for Python programs. Type inference is difficult for Python programs due to their heavy dependence on external APIs and the dynamic language features. We observe that Python source code often contains a lot of type hints such as attribute accesses and variable names. However, such type hints are not reliable. We hence propose to use probabilistic inference to allow the beliefs of individual type hints to be propagated, aggregated, and eventually converge on probabilities of variable types. Our results show that our technique substantially outperforms a state-of-the-art Python type inference engine based on abstract interpretation.
Zhaogui Xu, Xiangyu Zhang 0001, Lin Chen 0015, Kexin Pei, Baowen Xu
SIGSOFT FSE5
2016 Effort-aware just-in-time defect prediction: simple unsupervised models could be better than supervised models
abstract
Unsupervised models do not require the defect data to build the prediction models and hence incur a low building cost and gain a wide application range. Consequently, it would be more desirable for practitioners to apply unsupervised models in effort-aware just-in-time (JIT) defect prediction if they can predict defect-inducing changes well. However, little is currently known on their prediction effectiveness in this context. We aim to investigate the predictive power of simple unsupervised models in effort-aware JIT defect prediction, especially compared with the state-of-the-art supervised models in the recent literature. We first use the most commonly used change metrics to build simple unsupervised models. Then, we compare these unsupervised models with the state-of-the-art supervised models under cross-validation, time-wise-cross-validation, and across-project prediction settings to determine whether they are of practical value. The experimental results, from open-source software systems, show that many simple unsupervised models perform better than the state-of-the-art supervised models in effort-aware JIT defect prediction.
Yibiao Yang, Yuming Zhou, Hongmin Lu, Lei Xu 0003, Baowen Xu, Hareton K. N. Leung
SIGSOFT FSE7
2016 Empirical analysis of network measures for predicting high severity software faults
Lin Chen 0015, Wanwangying Ma, Yuming Zhou, Lei Xu 0003, Ziyuan Wang 0001, Zhifei Chen, Baowen Xu
Sci. China Inf. Sci.7
2016 Empirical analysis of network measures for effort-aware fault-proneness prediction
Wanwangying Ma, Lin Chen 0015, Yibiao Yang, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.5
2016 An extensive empirical study on C++ concurrency constructs
Di Wu 0014, Lin Chen 0015, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.4
2016 An empirical investigation into the effect of slice types on slice-based cohesion metrics
Yibiao Yang, Changsong Liu, Hongmin Lu, Yuming Zhou, Baowen Xu
Inf. Softw. Technol.6
2016 A machine learning based software process model recommendation method
Qinbao Song, Xiaoyan Zhu 0003, Guangtao Wang, Heli Sun, Chenhao Xue, Baowen Xu
J. Syst. Softw.7
2016 Measuring the Diversity of a Test Set With Distance Entropy
abstract
Most existing metrics that we call white-box metrics, such as coverage metrics, require white-box information, like program structure information, and historical runtime information, to evaluate the fault detection capability of a test set. In practice, such white-box information is usually unavailable or difficult to obtain, which means they often cannot be used. In this paper, we propose a black-box metric, distance entropy, based on the diversification idea behind many published diversity-based techniques. Distance entropy provides a possible solution for test set evaluation when white-box information is not available. The empirical study illustrates that distance entropy can effectively evaluate test sets if the distance metric between tests is well defined. Meanwhile, distance entropy outperforms simple diversity metrics without increasing time complexity.
Qingkai Shi, Zhenyu Chen 0001, Chunrong Fang, Yang Feng 0003, Baowen Xu
IEEE Trans. Reliab.5
2016 Verifying Synchronization for Atomicity Violation Fixing
abstract
Atomicity is a fundamental property to guarantee the isolation of a work unit (i.e., a sequence of related events in a thread) from concurrent threads. However, ensuring atomicity is often very challenging due to complex thread interactions. We present an approach to help developers verify whether such work units, which have triggered bugs due to certain violations of atomicity, are sufficiently synchronized or not by locks introduced for fixing the bugs. A key feature of our approach is that it combines the fortes of both bug-driven and change-aware techniques, which enables it to effectively verify synchronizations by testing only a minimal set of suspicious atomicity violations without any knowledge on the to-be-isolated work units, thus being more efficient and practical than other approaches. Besides, unlike existing approaches, our approach effectively utilizes all the inferred execution traces even they may not be completely feasible, such that the verification algorithm can converge much faster. We demonstrate via extensive evaluation that our approach is much more effective and efficient than the state-of-the-arts. Besides, we show that although there have existed sound automatic fixing techniques for atomicity violations, our approach is still necessary and useful for quality assurance of concurrent programs, because the assumption behind our approach is much weaker. We have also investigated one of the largest bug databases and found that insufficient synchronizations are common and difficult to be found in software development.
Qingkai Shi, Jeff Huang 0001, Zhenyu Chen 0001, Baowen Xu
IEEE Trans. Software Eng.4
2015 Generating Test Cases for Composite Web Services by Parsing XML Documents and Solving Constraints
abstract
Web services are widely used nowadays for their interoperability and reusability. Since Web services only provide interface information for users and source codes are encapsulated, generating test cases for Web services in the view of users has more challenges than traditional software. We develop a constraint-solver based method to generate test cases for composite Web services. The technique first parses the related files, such as XSD (XML Schema Definition), WSDL (Web Service Description Language) and BPEL (Business Process Executing Language) scripts to obtain the constraints for variable types, in-out relations, conditions and orders. Then, by using the Z3-str solver, test cases are generated according to different testing coverage criterions. Our evaluation results indicate that our method is effective to generate test cases for Web services with high coverage and low redundancy.
Lei Xu 0003, Baowen Xu
COMPSAC3
2015 Super-resolution Person re-identification with semi-coupled low-rank discriminant dictionary learning
abstract
Person re-identification has been widely studied due to its importance in surveillance and forensics applications. In practice, gallery images are high-resolution (HR) while probe images are usually low-resolution (LR) in the identification scenarios with large variation of illumination, weather or quality of cameras. Person re-identification in this kind of scenarios, which we call super-resolution (SR) person re-identification, has not been well studied. In this paper, we propose a semi-coupled low-rank discriminant dictionary learning (SLD2L) approach for SR person re-identification. For the given training image set which consists of HR gallery and LR probe images, we aim to convert the features of LR images into discriminating HR features. Specifically, our approach learns a pair of HR and LR dictionaries and a mapping from the features of HR gallery images and LR probe images. To ensure that the converted features using the learned dictionaries and mapping have favorable discriminative capability, we design a discriminant term which requires the converted HR features of LR probe images should be close to the features of HR gallery images from the same person, but far away from the features of HR gallery images from different persons. In addition, we apply low-rank regularization in dictionary learning procedure such that the learned dictionaries can well characterize intrinsic feature space of HR and LR images. Experimental results on public datasets demonstrate the effectiveness of SLD2L.
Xiaoyuan Jing, Xiaoke Zhu, Fei Wu 0004, Xinge You, Qinglong Liu, Dong Yue 0001, Ruimin Hu, Baowen Xu
CVPR8
2015 An Empirical Study on C++ Concurrency Constructs
abstract
Nowadays concurrent programming is in large demand. The inherent support for concurrency is therefore increasingly important in programming languages. As for C++, an abundance of standard concurrency constructs have been supported since C++11. However, to date there is little work investigating how these constructs are actually used in developing real software. In this paper, we perform an empirical study to investigate the adoption of C++ concurrency constructs in open-source applications, with the goal to provide insightful information for practitioners to use concurrency constructs efficiently. To this end, we analyze 127 open-source applications that adopt C++ concurrency constructs, comprising 34 million lines of C++ code, to conduct the experiment. The experimental results show that: (1) to implement concurrency code, thread-based constructs are significantly more often used than atomics-based constructs and task-based constructs; (2) to manage synchronization, lock-based constructs are significantly more often used than lock-free constructs and blocking constructs; (3) among the key thread-based constructs and task-based constructs (i.e. mutex, promise, and future), there is not a construct significantly more commonly misused than others; (4) small-size applications introduce concurrency constructs more intensively and more quickly than medium-size applications and large-size applications; and (5) an increasing use of standard concurrency constructs does not result in a substantially decreasing use of unstandardized concurrency constructs. Based on these findings, we make actionable suggestions for language designers, developers, and novices to assist them in designing and using C++ concurrency constructs.
Di Wu 0014, Lin Chen 0015, Yuming Zhou, Baowen Xu
ESEM4
2015 Web Page Classification Based on Uncorrelated Semi-Supervised Intra-View and Inter-View Manifold Discriminant Feature Extraction
Xiaoyuan Jing, Qian Liu 0010, Fei Wu 0004, Baowen Xu, Yang-Ping Zhu, Songcan Chen
IJCAI4
2015 Are Anti-patterns Coupled? An Empirical Study
abstract
The interactions between anti-patterns are claimed to affect maintenance. However, little work has been conducted to examine how anti-patterns interact. In this paper, we aim to investigate which pairs of anti-patterns tend to be coupled, i.e., interact with each other. We employ Fisher's exact test and Wilcoxon rank-sum test to identify coupled anti-patterns in the same class and coupled classes. Analyzing the relationships amongst 10 kinds of anti-patterns in five open-source projects, our results show that 1) several kinds of anti-patterns tend to be coupled, but some are conflicting, 2) the effect of anti-patterns on their dependent or co-changed ones are significant but small, 3) in ArgoUML, Xalan and Xerces-J, the classes infected with dependent anti-patterns are mostly (69.9% ~ 100%) modified in maintenance activities. Our findings offer empirical evidences for the existence of anti-pattern interactions, which provides valuable implications for practitioners and researchers.
Wanwangying Ma, Lin Chen 0015, Yuming Zhou, Baowen Xu
QRS4
2015 Predicting Vulnerable Components via Text Mining or Software Metrics? An Effort-Aware Perspective
abstract
In order to identify vulnerable software components, developers can take software metrics as predictors or use text mining techniques to build vulnerability prediction models. A recent study reported that text mining based models have higher recall than software metrics based models. However, this conclusion was drawn without considering the sizes of individual components which affects the code inspection effort to determine whether a component is vulnerable. In this paper, we investigate the predictive power of these two kinds of prediction models in the context of effort-aware vulnerability prediction. To this end, we use the same data sets, containing 223 vulnerabilities found in three web applications, to build vulnerability prediction models. The experimental results show that: (1) in the context of effort-aware ranking scenario, text mining based models only slightly outperform software metrics based models, (2) in the context of effort-aware classification scenario, text mining based models perform similarly to software metrics based models in most cases, and (3) most of the effect sizes (i.e. the magnitude of the differences) between these two kinds of models are trivial. These results suggest that, from the viewpoint of practical application, software metrics based models are comparable to text mining based models. Therefore, for developers, software metrics based models are practical choices for vulnerability prediction, as the cost to build and apply these models is much lower.
Yaming Tang, Yibiao Yang, Hongmin Lu, Yuming Zhou, Baowen Xu
QRS6
2015 Is Learning-to-Rank Cost-Effective in Recommending Relevant Files for Bug Localization?
abstract
Software bug localization aiming to determine the locations needed to be fixed for a bug report is one of the most tedious and effort consuming activities in software debugging. Learning-to-rank (LR) is the state-of-the-art approach proposed by Ye et al. to recommending relevant files for bug localization. Ye et al.'s experimental results show that the LR approach significantly outperforms previous bug localization approaches in terms of "precision" and "accuracy". However, this evaluation does not take into account the influence of the size of the recommended files on the efficiency in detecting bugs. In practice, developers will generally spend more code inspection effort to detect bugs if larger files are recommended. In this paper, we use six large-scale open-source Java projects to evaluate the LR approach in the context of effort-aware bug localization. Our results, surprisingly, show that, when taking into account the code inspection effort to detect bugs, the LR approach is similar to or even worse than the standard VSM (Vector Space Model), a naïve IR-based bug localization approach.
Yaming Tang, Yibiao Yang, Hongmin Lu, Yuming Zhou, Baowen Xu
QRS6
2015 An empirical study on the impact of Python dynamic features on change-proneness
abstract
The dynamic features of programming languages are useful constructs that bring developers convenience and flexibility, but they are also perceived to lead to difficulties in software maintenance.Figuring out whether the use of dynamic features affects maintenance is significant for both researchers and practitioners, yet little work has been done to investigate it.In this paper, we conduct an empirical study to explore whether program source code files using dynamic features are more change-prone and whether particular categories of dynamic features are more correlated to change-proneness than others.To this end, we statically analyze historical data from 4 to 7 years of the development of seven open-source systems.We employ Fisher and Mann-Whitney hypothetical test methods, along with logistic regression model to solve three research questions.The results show that: (1) files with dynamic features are more change-prone, (2) files with a higher number of dynamic features are more change-prone, and (3) Introspection is shown to be more correlated to change-proneness than the other three categories in most systems.This innovative work can give some inspirations and references to researchers who are always focusing their eyes on how and why the dynamic features are used.For practitioners, we suggest them to be wary of files with dynamic features because they are more likely to be the subject of their maintenance effort.
Lin Chen 0015, Wanwangying Ma, Zhifei Chen, Baowen Xu
SEKE5
2015 How do developers use C++ libraries? An empirical study
abstract
C++ libraries provide an abundance of reusable components for writing high-quality programs and are thus widely adopted by software developers.However, to date there is little work investigating how these libraries are actually used in real software.In this paper, we perform an empirical study to investigate the adoption of C++ standard libraries in open-source applications, with the goal to provide actionable information for developers to help them employ libraries more efficiently.To this end, we analyze 379 historical revisions of 30 applications, containing 149 million lines of C++ code, to conduct the experiment.The experimental results show that: (1) three standard libraries (i.e.Containers Library, Utilities Library, and Strings Library) are significantly more often used than other libraries; (2) the new libraries of C++11 (i.e.Regular Expressions Library, Atomic Operations Library, and Thread Support Library) are significantly less often used than the formerlyestablished libraries; (3) the deprecated library constructs (i.e. auto pointers, function objects, and array I/O operations) are not used at a declining frequency; and (4) applications with a larger size do not adopt libraries more frequently.Based on these results, we propose four suggestions, which could help developers learn and use C++ libraries in an efficient way.
Di Wu 0014, Lin Chen 0015, Yuming Zhou, Baowen Xu
SEKE4
2015 A metrics-based comparative study on object-oriented programming languages
abstract
There has been a long debate on which programming language can help write better object-oriented programs.However, to date little response is given to this issue with empirical evidence.In this paper, we perform a comparative study on C++, C#, and Java programs by using object-oriented metrics, which comprise measures for class size, complexity, coupling, cohesion, inheritance, encapsulation, polymorphism, and reusability.Our experiment is conducted on 78 tasks in Rosetta Code, a code repository providing solutions to the same programming tasks in different languages.The experimental results show that: (1) C++ classes are significantly larger than C# and Java classes in size, but their complexity does not differ significantly; (2) C# classes are significantly more likely to be coupled than C++ and Java classes through inter-class method invocations instead of direct data access; (3) C# and Java classes tend to be more cohesive than C++ classes; (4) C# and Java significantly outperform C++ in building deep inheritance trees; and (5) programs written in C++, C#, and Java do not show a significant difference in class encapsulation, polymorphism, and reusability.These findings could help practitioners choose suitable languages to develop object-oriented systems. 1
Di Wu 0014, Lin Chen 0015, Yuming Zhou, Baowen Xu
SEKE4
2015 Test report prioritization to assist crowdsourced testing
abstract
In crowdsourced testing, users can be incentivized to perform testing tasks and report their results, and because crowdsourced workers are often paid per task, there is a financial incentive to complete tasks quickly rather than well. These reports of the crowdsourced testing tasks are called "test reports" and are composed of simple natural language and screenshots. Back at the software-development organization, developers must manually inspect the test reports to judge their value for revealing faults. Due to the nature of crowdsourced work, the number of test reports are often difficult to comprehensively inspect and process. In order to help with this daunting task, we created the first technique of its kind, to the best of our knowledge, to prioritize test reports for manual inspection. Our technique utilizes two key strategies: (1) a diversity strategy to help developers inspect a wide variety of test reports and to avoid duplicates and wasted effort on falsely classified faulty behavior, and (2) a risk strategy to help developers identify test reports that may be more likely to be fault-revealing based on past observations. Together, these strategies form our DivRisk strategy to prioritize test reports in crowd- sourced testing. Three industrial projects have been used to evaluate the effectiveness of test report prioritization methods. The results of the empirical study show that: (1) DivRisk can significantly outperform random prioritization; (2) DivRisk can approximate the best theoretical result for a real-world industrial mobile application. In addition, we provide some practical guidelines of test report prioritization for crowdsourced testing based on the empirical study and our experiences.
Yang Feng 0003, Zhenyu Chen 0001, James A. Jones, Chunrong Fang, Baowen Xu
ESEC/SIGSOFT FSE5
2015 Heterogeneous cross-company defect prediction by unified metric representation and CCA-based transfer learning
abstract
Cross-company defect prediction (CCDP) learns a prediction model by using training data from one or multiple projects of a source company and then applies the model to the target company data. Existing CCDP methods are based on the assumption that the data of source and target companies should have the same software metrics. However, for CCDP, the source and target company data is usually heterogeneous, namely the metrics used and the size of metric set are different in the data of two companies. We call CCDP in this scenario as heterogeneous CCDP (HCCDP) task. In this paper, we aim to provide an effective solution for HCCDP. We propose a unified metric representation (UMR) for the data of source and target companies. The UMR consists of three types of metrics, i.e., the common metrics of the source and target companies, source-company specific metrics and target-company specific metrics. To construct UMR for source company data, the target-company specific metrics are set as zeros, while for UMR of the target company data, the source-company specific metrics are set as zeros. Based on the unified metric representation, we for the first time introduce canonical correlation analysis (CCA), an effective transfer learning method, into CCDP to make the data distributions of source and target companies similar. Experiments on 14 public heterogeneous datasets from four companies indicate that: 1) for HCCDP with partially different metrics, our approach significantly outperforms state-of-the-art CCDP methods; 2) for HCCDP with totally different metrics, our approach obtains comparable prediction performances in contrast with within-project prediction results. The proposed approach is effective for HCCDP.
Xiaoyuan Jing, Fei Wu 0004, Xiwei Dong, Fumin Qi, Baowen Xu
ESEC/SIGSOFT FSE5
2015 Link prediction in social networks: the state-of-the-art
Peng Wang 0004, Baowen Xu, Yurong Wu
Sci. China Inf. Sci.2
2015 Insecurity of an Efficient Identity-Based Proxy Signature in the Standard Model
abstract
Recently, Gu et al. proposed an efficient identity-based proxy signature scheme and demonstrated their scheme was provably secure in the standard model. In this paper, we show their scheme is not secure against the malicious user through proposing three concrete attacks.
Debiao He, Mingwu Zhang, Baowen Xu
Comput. J.3
2015 EFSM-Based Test Case Generation: Sequence, Data, and Oracle
abstract
Model-based testing has been intensively and extensively studied in the past decades. Extended Finite State Machine (EFSM) is a widely used model of software testing in both academy and industry. This paper provides a survey on EFSM-based test case generation techniques in the last two decades. All techniques in EFSM-based test case generation are mainly classified into three parts: test sequence generation, test data generation, and test oracle construction. The key challenges, such as coverage criterion and feasibility analysis in EFSM-based test case generation are discussed. Finally, we summarize the research work and present several possible research areas in the future.
Zhenyu Chen 0001, Zhiyi Zhang 0004, Baowen Xu
Int. J. Softw. Eng. Knowl. Eng.4
2015 An empirical analysis of package-modularization metrics: Implications for software fault-proneness
Yibiao Yang, Hongmin Lu, Yuming Zhou, Qinbao Song, Baowen Xu
Inf. Softw. Technol.6
2015 A novel ensemble method for classifying imbalanced data
Zhongbin Sun, Qinbao Song, Xiaoyan Zhu 0003, Heli Sun, Baowen Xu, Yuming Zhou
Pattern Recognit.5
2015 An Efficient Identity-Based Conditional Privacy-Preserving Authentication Scheme for Vehicular Ad Hoc Networks
abstract
By broadcasting messages about traffic status to vehicles wirelessly, a vehicular ad hoc network (VANET) can improve traffic safety and efficiency. To guarantee secure communication in VANETs, security and privacy issues must be addressed before their deployment. The conditional privacy-preserving authentication (CPPA) scheme is suitable for solving security and privacy-preserving problems in VANETs, because it supports both mutual authentication and privacy protection simultaneously. Many identity-based CPPA schemes for VANETs using bilinear pairings have been proposed over the last few years to enhance security or to improve performance. However, it is well known that the bilinear pairing operation is one of the most complex operations in modern cryptography. To achieve better performance and reduce computational complexity of information processing in VANET, the design of a CPPA scheme for the VANET environment that does not use bilinear paring becomes a challenge. To address this challenge, we propose a CPPA scheme for VANETs that does not use bilinear paring and we demonstrate that it could supports both the mutual authentication and the privacy protection simultaneously. Our proposed CPPA scheme retains most of the benefits obtained with the previously proposed CPPA schemes. Moreover, the proposed CPPA scheme yields a better performance in terms of computation cost and communication cost making it be suitable for use by the VANET safety-related applications.
Debiao He, Sherali Zeadally, Baowen Xu, Xinyi Huang 0001
IEEE Trans. Inf. Forensics Secur.3
2015 Are Slice-Based Cohesion Metrics Actually Useful in Effort-Aware Post-Release Fault-Proneness Prediction? An Empirical Study
abstract
Background. Slice-based cohesion metrics leverage program slices with respect to the output variables of a module to quantify the strength of functional relatedness of the elements within the module. Although slice-based cohesion metrics have been proposed for many years, few empirical studies have been conducted to examine their actual usefulness in predicting fault-proneness. Objective. We aim to provide an in-depth understanding of the ability of slice-based cohesion metrics in effort-aware post-release fault-proneness prediction, i.e. their effectiveness in helping practitioners find post-release faults when taking into account the effort needed to test or inspect the code. Method. We use the most commonly used code and process metrics, including size, structural complexity, Halstead's software science, and code churn metrics, as the baseline metrics. First, we employ principal component analysis to analyze the relationships between slice-based cohesion metrics and the baseline metrics. Then, we use univariate prediction models to investigate the correlations between slice-based cohesion metrics and post-release fault-proneness. Finally, we build multivariate prediction models to examine the effectiveness of slice-based cohesion metrics in effort-aware post-release fault-proneness prediction when used alone or used together with the baseline code and process metrics. Results. Based on open-source software systems, our results show that: 1) slice-based cohesion metrics are not redundant with respect to the baseline code and process metrics; 2) most slice-based cohesion metrics are significantly negatively related to post-release fault-proneness; 3) slice-based cohesion metrics in general do not outperform the baseline metrics when predicting post-release fault-proneness; and 4) when used with the baseline metrics together, however, slice-based cohesion metrics can produce a statistically significant and practically important improvement of the effectiveness in effort-aware post-release fault-proneness prediction. Conclusion. Slice-based cohesion metrics are complementary to the most commonly used code and process metrics and are of practical value in the context of effort-aware post-release fault-proneness prediction.
Yibiao Yang, Yuming Zhou, Hongmin Lu, Lin Chen 0015, Zhenyu Chen 0001, Baowen Xu, Hareton K. N. Leung, Zhenyu Zhang 0004
IEEE Trans. Software Eng.6
2014 Dynamic Slicing of Python Programs
abstract
Python is widely used for web programming and GUI development. Due to the dynamic features of Python, Python programs may contain various unlimited errors. Dynamic slicing extracts those statements from a program which affect the variables in a slicing criterion with a particular input. Dynamic slicing of Python programs is essential for program debugging and fault location. In this paper, we propose an approach of dynamic slicing for Python programs which combines static analysis and dynamic tracing of the Python byte code. It precisely handles the dynamic features of Python, such as dynamic typing of variables, heavy usage of first-class objects, and dynamic modifications of classes and instances. Finally, we evaluate our approach on several Python programs. Experimental results show that the whole dynamic slicing for each subject program spends at most about 13 seconds on the average and costs at most 7.58 mb memory space overhead. Furthermore, the average slice ratio of Python source code ranges from 9.26% to 59.42%. According to it, our dynamic slicing approach can be effectively and efficiently performed. To the best of our knowledge, it is the first one of dynamic slicing for Python programs.
Zhifei Chen, Lin Chen 0015, Yuming Zhou, Zhaogui Xu, William C. Chu, Baowen Xu
COMPSAC6
2014 A Unified Semi-supervised Framework for Author Disambiguation in Academic Social Network
Peng Wang 0004, Baowen Xu
DEXA (2)4
2014 An empirical study on the adoption of C++ templates: Library templates versus user defined templates
Di Wu 0014, Lin Chen 0015, Yuming Zhou, Baowen Xu
SEKE4
2014 Identifying extract class refactoring opportunities for internetware
Lin Chen 0015, Ju Qian, Yuming Zhou, Peng Wang 0004, Baowen Xu
Sci. China Inf. Sci.5
2014 Source code size estimation approaches for object-oriented systems from UML class diagrams: A comparative study
Yuming Zhou, Yibiao Yang, Baowen Xu, Hareton K. N. Leung
Inf. Softw. Technol.3
2014 An in-depth study of the potentially confounding effect of class size in fault prediction
abstract
Background. The extent of the potentially confounding effect of class size in the fault prediction context is not clear, nor is the method to remove the potentially confounding effect, or the influence of this removal on the performance of fault-proneness prediction models.Objective. We aim to provide an in-depth understanding of the effect of class size on the true associations between object-oriented metrics and fault-proneness.Method. We first employ statistical methods to examine the extent of the potentially confounding effect of class size in the fault prediction context. After that, we propose a linear regression-based method to remove the potentially confounding effect. Finally, we empirically investigate whether this removal could improve the prediction performance of fault-proneness prediction models.Results. Based on open-source software systems, we found: (a) the confounding effect of class size on the associations between object-oriented metrics and fault-proneness in general exists; (b) the proposed linear regression-based method can effectively remove the confounding effect; and (c) after removing the confounding effect, the prediction performance of fault prediction models with respect to both ranking and classification can in general be significantly improved.Conclusion. We should remove the confounding effect of class size when building fault prediction models.
Yuming Zhou, Baowen Xu, Hareton K. N. Leung, Lin Chen 0015
ACM Trans. Softw. Eng. Methodol.2
2013 Generating Partial Covering Array for Locating Faulty Interactions in Combinatorial Testing
Ziyuan Wang 0001, Wujie Zhou, Weifeng Zhang 0001, Baowen Xu
SEKE5
2013 A fuzzy extension for SHOIQ based on comparisons between degrees of membership
Dazhou Kang, Baowen Xu
Sci. China Inf. Sci.2
2013 Finding shrink critical section refactoring opportunities for the evolution of concurrent code in trustworthy software
Ju Qian, Lin Chen 0015, Baowen Xu
Sci. China Inf. Sci.3
2013 Metamorphic slice: An application in spectrum-based fault localization
Xiaoyuan Xie, W. Eric Wong, Tsong Yueh Chen, Baowen Xu
Inf. Softw. Technol.4
2013 A Feature Subset Selection Algorithm Automatic Recommendation Method
abstract
Many feature subset selection (FSS) algorithms have been proposed, but not all of them are appropriate for a given feature selection problem. At the same time, so far there is rarely a good way to choose appropriate FSS algorithms for the problem at hand. Thus, FSS algorithm automatic recommendation is very important and practically useful. In this paper, a meta learning based FSS algorithm automatic recommendation method is presented. The proposed method first identifies the data sets that are most similar to the one at hand by the k-nearest neighbor classification algorithm, and the distances among these data sets are calculated based on the commonly-used data set characteristics. Then, it ranks all the candidate FSS algorithms according to their performance on these similar data sets, and chooses the algorithms with best performance as the appropriate ones. The performance of the candidate FSS algorithms is evaluated by a multi-criteria metric that takes into account not only the classification accuracy over the selected features, but also the runtime of feature selection and the number of selected features. The proposed recommendation method is extensively tested on 115 real world data sets with 22 well-known and frequently-used different FSS algorithms for five representative classifiers. The results show the effectiveness of our proposed FSS algorithm recommendation method.
Guangtao Wang, Qinbao Song, Heli Sun, Baowen Xu, Yuming Zhou
J. Artif. Intell. Res.5
2013 Selecting feature subset for high dimensional data via the propositional FOIL rules
Guangtao Wang, Qinbao Song, Baowen Xu, Yuming Zhou
Pattern Recognit.3
2013 A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization
abstract
An important research area of Spectrum-Based Fault Localization (SBFL) is the effectiveness of risk evaluation formulas. Most previous studies have adopted an empirical approach, which can hardly be considered as sufficiently comprehensive because of the huge number of combinations of various factors in SBFL. Though some studies aimed at overcoming the limitations of the empirical approach, none of them has provided a completely satisfactory solution. Therefore, we provide a theoretical investigation on the effectiveness of risk evaluation formulas. We define two types of relations between formulas, namely, equivalent and better. To identify the relations between formulas, we develop an innovative framework for the theoretical investigation. Our framework is based on the concept that the determinant for the effectiveness of a formula is the number of statements with risk values higher than the risk value of the faulty statement. We group all program statements into three disjoint sets with risk values higher than, equal to, and lower than the risk value of the faulty statement, respectively. For different formulas, the sizes of their sets are compared using the notion of subset. We use this framework to identify the maximal formulas which should be the only formulas to be used in SBFL.
Xiaoyuan Xie, Tsong Yueh Chen, Fei-Ching Kuo, Baowen Xu
ACM Trans. Softw. Eng. Methodol.4
2012 A New Approach to Evaluate Path Feasibility and Coverage Ratio of EFSM Based on Multi-objective Optimization
Zhenyu Chen 0001, Baowen Xu, Zhiyi Zhang 0004, Wujie Zhou
SEKE3
2012 Comparing logic coverage criteria on test case prioritization
Chunrong Fang, Zhenyu Chen 0001, Baowen Xu
Sci. China Inf. Sci.3
2012 An in-depth investigation into the relationships between structural metrics and unit testability in object-oriented systems
Yuming Zhou, Hareton K. N. Leung, Qinbao Song, Jianjun Zhao 0001, Hongmin Lu, Lin Chen 0015, Baowen Xu
Sci. China Inf. Sci.7
2012 The ability of object-oriented metrics to predict change-proneness: a meta-analysis
Hongmin Lu, Yuming Zhou, Baowen Xu, Hareton K. N. Leung, Lin Chen 0015
Empir. Softw. Eng.3
2011 Web Service Discovery Based on User Requirements
abstract
With the rapid development of Web services, Web service discovery becomes a significant challenge in the matching precision and efficiency. In this paper, we present a novel method in the view of users' requirements for Web Service discovery. We set up the requirement model firstly, so as to present users' requirements in details, then cluster the Web Services due to users' common requirements, and obtain corresponding Web services' QoS values. Thus, users can find their really needed Web services in an ordered list. The case study indicates the effect of our method, namely, in the view of users' requirements, we sort the candidate Services due to their functions and their QoS attributes in descending order.
Lei Xu 0003, Baowen Xu, Lianjie Chen
HPCC2
2011 Using semi-supervised clustering to improve regression test selection techniques
abstract
Cluster test selection is proposed as an efficient regression testing approach. It uses some distance measures and clustering algorithms to group tests into some clusters. Tests in a same cluster are considered to have similar behaviors. A certain sampling strategy for the clustering result is used to build up a small subset of tests, which is expected to approximate the fault detection capability of the original test set. All existing cluster test selection methods employ unsupervised clustering. The previous test results are not used in the process of clustering. It may lead to unsatisfactory clustering results in some cases. In this paper, a semi-supervised clustering method, namely semi-supervised K-means (SSKM), is introduced to improve cluster test selection. SSKM uses limited supervision in the form of pair wise constraints: Must-link and Cannot-link. These pair wise constraints are derived from previous test results to improve clustering results as well as test selection results. The experiment results illustrate the effectiveness of cluster test selection methods with SSKM. Two useful observations are made by analysis. (1) Cluster test selection with SSKM has a better effectiveness when the failed tests are in a medium proportion. (2) A strict definition of pair wise constraint can improve the effectiveness of cluster test selection with SSKM.
Songyu Chen, Zhenyu Chen 0001, Baowen Xu, Yang Feng 0003
ICST4
2011 Extracting Academic Information from Conference Web Pages
abstract
Conference Web pages are the main platforms to share the conference information and organize conference events. To discover the academic knowledge from such Web pages for building academic ontologies or social networks, it is necessary to extract academic information from conference Web pages. This paper proposes an approach to extract academic information from conference Web pages. Firstly, Web pages are segmented into text blocks by analyzing the visual feature and DOM structure. Then Bayes Network is used to classify these text blocks into predefined categories, and the quality of initial classification results are improved after post-processing. Finally, the academic information is extracted from the classified text blocks. Our experimental results on the real world datasets show that the proposed method is highly effective and efficient for extracting academic information from conference Web pages, and it has average 90% precision and 89% recall.
Peng Wang 0004, Yue You, Baowen Xu
ICTAI3
2011 Matching Large Ontologies Based on Reduction Anchors
Peng Wang 0004, Yuming Zhou, Baowen Xu
IJCAI3
2011 Using Program Slicing to Improve the Efficiency and Effectiveness of Cluster Test Selection
abstract
Cluster test selection is a new successful approach to select a subset of the existing test suite in regression testing. In this paper, program slicing is introduced to improve the efficiency and effectiveness of cluster test selection techniques. A static slice is computed on the modified code. The execution profile of each test case is filtered by the program slice to highlight the parts of software affected by modification, called slice filtering. The slice filtering reduces the data dimensions for cluster analysis, such that the cost of cluster test selection is saved dramatically. The experiment results show that the slice filtering techniques could reduce the cost of cluster test selection significantly and could also improve the effectiveness of cluster test selection modestly. Therefore, cluster test selection by filtering has more potential scalability to deal with large software.
Zhenyu Chen 0001, Yongwei Duan, Baowen Xu, Ju Qian
Int. J. Softw. Eng. Knowl. Eng.4
2011 Cost-Cognizant Combinatorial Test Case Prioritization
abstract
Combinatorial testing has been widely used in practice. People usually assume all test cases in combinatorial test suite will run completely. However, in many scenarios where combinatorial testing is needed, for example the regression testing, the entire combinatorial test suite is not run completely as a result of test resource constraints. To improve the efficiency of testing, combinatorial test case prioritization technique is required. For the scenario of regression testing, this paper proposes a new cost-cognizant combinatorial test case prioritization technique, which takes both combination weights and test costs into account. Here we propose a series of metrics with physical meaning, which assess the combinatorial coverage efficiency of test suite, to guide the prioritization of combinatorial test cases. And two heuristic test case prioritization algorithms, which are based on total and additional techniques respectively, are utilized in our technique. Simulation experimental results illustrate some properties and advantages of proposed technique.
Ziyuan Wang 0001, Lin Chen 0015, Baowen Xu
Int. J. Softw. Eng. Knowl. Eng.3
2011 Contribution-based call stack abstraction for call string based pointer analysis
Ju Qian, Lin Chen 0015, Baowen Xu
Inf. Softw. Technol.3
2011 Testing and validating machine learning classifiers by metamorphic testing
Xiaoyuan Xie, Joshua W. K. Ho, Christian Murphy, Gail E. Kaiser, Baowen Xu, Tsong Yueh Chen
J. Syst. Softw.5
2011 A revisit of fault class hierarchies in general boolean specifications
abstract
Recently, Kapoor and Bowen [2007] have extended the works by Kuhn [1999], Tsuchiya and Kikuno [2002], and Lau and Yu [2005]. However, their proofs overlook the possibility that a mutant of the Boolean specifications under test may be equivalent. Hence, each of their fault relationships is either incorrect or has an incorrect proof. In this article, we give counterexamples to the incorrect fault relationships and provide new proofs for the valid fault relationships. Furthermore, a co-stronger fault relation is introduced to establish a new fault class hierarchy for general Boolean specifications.
Zhenyu Chen 0001, Tsong Yueh Chen, Baowen Xu
ACM Trans. Softw. Eng. Methodol.3
2010 Cost-Effective Combinatorial Test Case Prioritization for Varying Combination Weights
Ziyuan Wang 0001, Baowen Xu, Lin Chen 0015, Zhenyu Chen 0001
SEKE2
2010 On the ability of complexity metrics to predict fault-prone classes in object-oriented systems
Yuming Zhou, Baowen Xu, Hareton K. N. Leung
J. Syst. Softw.2
2009 Contribution-Based Call Stack Abstraction and Its Application in Pointer Analysis of AspectJ Programs
abstract
Different method calls may have different contributions to the precision of the final application when abstracted into the call strings. The existing call string based pointer analysis algorithms do not consider such contribution difference and hence often can not achieve best cost-effectiveness. To solve the problem, this paper firstly proposes a contribution-based call stack abstraction method which abstracts the call stacks to the call strings with the contribution information under consideration. Then, we apply the new call stack abstraction method to the pointer analysis of AspectJ programs and propose a concern-sensitive points-to analysis method. The concern-sensitive points-to analysis is more cost-effective than the ordinary call string based approaches for an application that detects harmful advices. It more concretely and more clearly shows that the contribution-based call stack abstraction can lead to better cost-effectiveness for the given applications.
Ju Qian, Zifeng Cui, Baowen Xu
APSEC3
2009 A Constraint Based Bug Checking Approach for Python
abstract
Python is a powerful dynamically typed programming language. Dynamic typing brings great flexibility for programming. However, lack of static type checking, it is hard to detect some bugs before run time. We present a constraint framework based on Python’s structural equivalence type system. The framework does not introduce any new language features, thus without losing benefits of Python’s dynamic typing. Constraints are extracted from source code via static analysis and are used to check bugs, such as passing wrong parameters to function. A case study shows how to use the framework to check validity of function calls.
Lin Chen 0015, Baowen Xu, Tianlin Zhou
COMPSAC (2)2
2009 A New Mutation Analysis Method for Testing Java Exception Handling
abstract
Java exception mechanism can effectively free a program from abnormal exits and help developers locate faults with the exception tracing stacks. It is necessary to verify whether the exception handling constructs are arranged appropriately. Some approaches have been developed to evaluate the test sets and improve the quality of them, so that they can raise more number of exceptions in programs. Mutation analysis is a practical method to evaluate the quality of test sets. This paper presents some new mutation operators for Java exception handling constructs. Moreover, equivalent mutants can be identified by our approach. A case study illustrates the effectiveness and characteristic features of these mutation operators.
Changbin Ji, Zhenyu Chen 0001, Baowen Xu, Ziyuan Wang 0001
COMPSAC (2)3
2009 Improving Side-Effect Analysis with Lazy Access Path Resolving
abstract
For scalability, many side-effect analysis methods choose inclusion-based context-insensitive (IBCI) pointer analysis as their basis. However, such a pointer analysis is known to be imprecise, which often results in over-conservative side-effect sets. In this paper, we present a lightweight approach that exploits lazy access path resolving to improve the precision of side-effect analysis under IBCI pointer analysis. The approach partly represents and propagates side-effects in the access path form with the help of interstatement must aliases. All access paths can finally be resolved to the accessed locations, but during the side-effect propagation phase, an access path will never be resolved as long as it could be mapped to another access path in the caller. Since in inclusion-based points-to analysis, points-to sets of variables in the callers tend to be smaller than the ones in the callees, such lazy resolving mechanism can lead to more precision. The experimental results show that the lazy access path resolving approach is effective in improving the precision of IBCI pointer analysis based side-effect analysis methods.
Ju Qian, Yuming Zhou, Baowen Xu
SCAM3
2009 A Novel Method of Mutation Clustering Based on Domain Analysis
Changbin Ji, Zhenyu Chen 0001, Baowen Xu
SEKE3
2009 Examining the Potentially Confounding Effect of Class Size on the Associations between Object-Oriented Metrics and Change-Proneness
abstract
Previous research shows that class size can influence the associations between object-oriented (OO) metrics and fault-proneness and therefore proposes that it should be controlled as a confounding variable when validating OO metrics on fault-proneness. Otherwise, their true associations may be distorted. However, it has not been determined whether this practice is equally applicable to other external quality attributes. In this paper, we use three size metrics, two of which are available during the high-level design phase, to examine the potentially confounding effect of class size on the associations between OO metrics and change-proneness. The OO metrics that are investigated include cohesion, coupling, and inheritance metrics. Our results, based on Eclipse, indicate that: 1) The confounding effect of class size on the associations between OO metrics and change-proneness, in general, exists, regardless of whichever size metric is used; 2) the confounding effect of class size generally leads to an overestimate of the associations between OO metrics and change-proneness; and 3) for many OO metrics, the confounding effect of class size completely accounts for their associations with change-proneness or results in a change of the direction of the associations. These results strongly suggest that studies validating OO metrics on change-proneness should also consider class size as a confounding variable.
Yuming Zhou, Hareton K. N. Leung, Baowen Xu
IEEE Trans. Software Eng.3
2008 Fast algorithm for 4-qubit reversible logic circuits synthesis
abstract
Owing to the exponential nature of the memory or run-tune complexity, many existing methods can only synthesize 3-qubit circuits, however, (G.W. Yang et al., 2005) can achieve 12 steps for the CNP (controlled-Not gate, NOT gate and Peres gate) library in 4-qubit circuit synthesis with mini-length by using an enhanced bi-directional synthesis approach. We mainly absorb the ideas of our 3-qubit synthesis algorithms based on hash table and present a novel and efficient algorithm which can construct almost all optimal 4-qubit reversible logic circuits with various types of gates and mini-length cost based on constructing the shortest coding and the specific topological compression, whose lossless compression ratios of the space of n-qubit circuits is near 2timesn!. Our algorithm has created all 3120218828 optimal 4-qubit circuits whose length is less than 9 for the CNT (Toffoli gate) library, and it can quickly achieve 16 steps through cascading created circuits. To the best of our knowledge, there are no other algorithms to achieve the contribution.
Zhiqiang Li 0001, Hanwu Chen, Baowen Xu, Wenjie Liu 0001, Xilin Xue
IEEE Congress on Evolutionary Computation3
2008 Combining MDE and UML to Reverse Engineer Web-Based Legacy Systems
abstract
The research in this paper focuses on an approach to reverse engineering Web-based legacy systems with the integration of model-driven engineering and UML. Three types of link-based models of Web-based legacy systems are presented. Web-based legacy systems are parsed to find judgement conditions of model, and UML diagrams are described based on the modelling rules.
Jianjun Pu, Baowen Xu, Lei Xu 0003, William C. Chu
COMPSAC3
2008 A Degraded ILP Approach for Test Suite Reduction
Zhenyu Chen 0001, Baowen Xu
SEKE3
2008 A Dynamic Adjusting Method for Test Case Prioritization
Bo Qu, Changhai Nie, Baowen Xu
SEKE3
2007 Comparing Fault-based Testing Strategies of General Boolean Specifications
abstract
Testing Boolean specifications in general form (GF) by the IDNF-oriented approaches always results in superabundant cost and missing detection of some faults. This paper proposes GF-oriented approaches to improve them. The experimental results show that the GF-oriented strategies could enhance the fault detection capability and reduce the sizes of test sets.
Zhenyu Chen 0001, Baowen Xu, Changhai Nie
COMPSAC (1)2
2007 Test Case Prioritization for Black Box Testing
abstract
Test case prioritization is an effective and practical technique that helps to increase the rate of regression fault detection when software evolves. Numerous techniques have been reported in the literature on prioritizing test cases for regression testing. However, existing prioritization techniques implicitly assume that source or binary code is available when regression testing is performed, and therefore cannot be implemented when there is no program source or binary code to be analyzed. In this paper, we presented a new technique for black box regression testing, and we performed an experiment to measure our technique. Our results show that the new technique is helpful to improve the effectiveness of fault detection when performing regression test in black box environment.
Bo Qu, Changhai Nie, Baowen Xu
COMPSAC (1)3
2007 Applying Agent into Intelligent Web Application Testing
abstract
Web application testing is concerned with numerous and complicated testing objects, methods and processes. In order to improve the testing efficiency, we firstly analyze the necessity and feasibility of the automatic and intelligent testing for Web applications; Then, we discuss several scenes of applying agent into Web application testing, such as using agent to obtain users' visiting actions, carry out performance testing, regression testing and usability evolvement; next, we adopt agent to execute the testing, including the testing process and the detailed actions, so as to monitor, manage and handler exceptions during the whole testing execution. Thus, in this way, the Web application testing can be completed more automatically and intelligently.
Lei Xu 0003, Baowen Xu
CW2
2007 Interstatement must aliases for data dependence analysis of heap locations
abstract
Data dependences are of critical importance in many software engineering activities. Due to the dynamic allocation mechanism, it is still difficult to extract them precisely for heap locations. This paper firstly proposes two notion of interstatement must aliases and then exploits these aliases in improving data depend-ence analysis for heap locations. We carry out a preliminary ex-periment on some programs, the result of which indicates that the new technique can effectively improve the precision of depend-ence analysis for heap locations with an endurable cost.
Ju Qian, Baowen Xu, Hongbo Min
PASTE2
2007 TCP Performance Dynamics and Link-Layer Adaptation Based Optimization Methods for Wireless Networks
abstract
Almost a decade long research on the performance of TCP in wireless networks has resulted in many proposals and solutions to the problem of TCP throughput degradation. Several of these measures, however, have their share of drawbacks. With the continuing emergence of wireless technologies ever since the work on TCP performance over wireless began, smart link-layer mechanisms like adaptive modulation and coding, power control, and incremental redundancy have been designed and deployed. In this work, we outline a cross-layer optimization framework based on the congestion control dynamics of a bulk-transfer TCP flow and demonstrate its application to networks which offer link-layer adaptive measures. We begin by observing that the TCP's congestion window dynamics are comprised of certain recurring patterns which we term as cycles. We then overlay a TCP throughput optimization methodology that selects link-layer transmission modes (e.g. modulation scheme, coding rate, transmission power, or a combination thereof) in accordance with TCP dynamics and wireless channel conditions. We provide insights into the working of the optimization procedure which protects TCP segments against losses on the wireless channel when the TCP congestion window size (in bytes) is below the bandwidth-delay product of the network. The protection against wireless channel losses is rendered by the link-layer by employing robust modulation and coding schemes, high transmission power, etc. We show that TCP dynamics aware link adaptation measures lead to substantial enhancement of TCP throughput in EGPRS and IEEE 802.11a networks
Jatinder Pal Singh, Yan Li 0069, Nicholas Bambos, Ahmad Bahai, Baowen Xu, Gerd Zimmermann
IEEE Trans. Wirel. Commun.5
2006 Mapping Ontology Relations: An Approach Based on Best Approximations
Peng Wang 0004, Baowen Xu, Jianjiang Lu, Dazhou Kang
APWeb2
2006 Reasoning Technique for Extended Fuzzy ALCQ
Baowen Xu, Jianjiang Lu, Dazhou Kang
ICCSA (2)2
2006 A Fuzzy Extension of Description Logic ALC with Comparison Expressions
Dazhou Kang, Baowen Xu, Jianjiang Lu
KES (1)2
2006 A Distributed and Fuzzy Extension of Description Logics
Baowen Xu, Jianjiang Lu, Dazhou Kang
KES (1)2
2006 A New Heuristic for Test Suite Generation for Pair-wise Testing
Changhai Nie, Baowen Xu, Ziyuan Wang 0001
SEKE2
2005 A Dynamic Optimization Strategy for Evolutionary Testing
abstract
Evolutionary testing (ET) is an efficient technique of automated test case generation. ET uses a kind of metaheuristic search technique, genetic algorithm (GA), to convert the task of test case generation into an optimal problem. The configuration strategies of GA have notable influences upon the performance of ET. In this paper, represent a dynamic self-adaptation strategy for evolutionary structural testing. It monitors evolution process dynamically, detects the symptom of prematurity by analyzing the population, and adjusts the mutation possibility to recover the diversity of the population. The empirical results show that the strategy can greatly improve the performance of the ET in many cases. Besides, some valuable advices are provided for the configuration strategies of ET by the empirical study.
Xiaoyuan Xie, Changhai Nie, Yanxiang He, Baowen Xu
APSEC5
2005 A Family of Extended Fuzzy Description Logics
abstract
Typical description logics are limited to dealing with crisp concepts and crisp roles. However, Web applications based on description logics should allow the treatment of the inherent imprecision. Therefore, it is necessary to add fuzzy features to description logics. A family of extended fuzzy description logics is proposed to enable representation and reasoning for complex fuzzy information. The extended fuzzy description logics introduce the cut sets of fuzzy concepts and fuzzy roles as atomic concepts and atomic roles, and inherit the concept and role constructors from description logics. The definitions of syntax, semantics, reasoning tasks, and reasoning properties are given for the extended fuzzy description logic. The extended fuzzy description logics adopt a special fuzzify-method with more expressive power than the previous fuzzy description logics.
Baowen Xu, Jianjiang Lu, Dazhou Kang, Peng Wang 0004
COMPSAC (1)2
2005 Configuration Strategies for Evolutionary Testing
abstract
This paper presents a new approach to generating configuration-oriented executable symbolic test sequences from extended finite state machine (EFSM) models. The information about the values of the context variables and the domain intervals of the input parameters are exploited to guide the derivation of the test sequences. Meanwhile, the transition guards along the test sequences are continually used to reduce the domain intervals of the input parameters. Experiments indicate that this method significantly reduces the EFSM state space to be explored and the number of non-executable symbolic test sequences to be generated. Since parameterized input events are allowed to occur in EFSM cycles, this method is suitable for testing the open reactive systems that interact with the environments via parameterized input events.
Xiaoyuan Xie, Baowen Xu, Changhai Nie, Lei Xu 0003
COMPSAC (2)2
2005 Approximate Information Retrieval for Heterogeneity Ontologies
abstract
Ontology-based information retrieval is precise and effective but suffers from the problem of ontology heterogeneity. This paper focuses on the approximate information retrieval approach to solve the heterogeneity problem of both common ontologies as well as fuzzy ontologies on the semantic Web. Approximate information retrieval needs to find approximations of concepts. However, current methods cannot find the best approximations of concepts for common ontologies, and there is still no published work for fuzzy ontologies. This paper firstly proposes a method of approximate information retrieval between common ontologies. It defines multielement least upper bounds and multielement greatest lower bounds, and then simplifies the multielement bounds to remove redundancy. It provides effective algorithms to find the simplified multielement bounds, and get the best approximations of concepts from the bounds. Then for the fuzzy ontologies, the paper defines cut concepts to transform fuzzy concepts into common concepts, and then applies the proposed method for approximate information retrieval between fuzzy ontologies. The improved algorithms for fuzzy ontologies are given to make the method more feasible and effective.
Dazhou Kang, Hanwu Chen, Baowen Xu, Jianjiang Lu, Keyue Li, William C. Chu
CW3
2005 Research on the Analysis and Measurement for Testing Results of Web Applications
abstract
Reasonable analysis and corrective measurement for the testing results of Web applications can effectively judge the effect and efficiency of the testing. Therefore, based on the previous work, we propose a new method for testing results analysis and comparison, which uses the semantic label and XML description technique to realize the information separation between data and display in the Web pages, so as to directly compare the testing results and the expected results. Furthermore, combined with the realities, we determine the metric indexes of Web application testing, so as to provide the criterions and guidelines for the evaluations of the Web applications and their testing processes. And we introduce the feedback control mechanism into the development and evolvement of Web applications, so as to further improve the system quality.
Lei Xu 0003, Baowen Xu, Yanxiang He, Hanwu Chen, Qiaoming Zhu
CW2
2005 A Document Classification Approach By GA Feature Extraction Based Corner Classification Neural Network
abstract
The CC4 neural network is a new type of corner classification training algorithm for three-layered feed forward neural networks. CC4 is now successfully used in meta search engine Anvish. When the documents are almost of the same size, CC4 neural network is an effective document classification algorithm. However, there is great difference in document sizes in general, and CC4 use the whole dictionary as the space of vector which leads to a lot of documents represented by sparse vectors. This paper brings forward feature extraction based neural network GA-CC4. The method of GA feature extraction extracts the feature items really representing the documents in the document set, which are constructed as the set of feature items. Based on the set of feature items and combining the document frequency, the document can be represented. By this method, the dimensions representing the documents can be reduced, which can solve the precise problem caused by the different document sizes, and it can also map the scalar features to the Boolean input of the neural network by binary coding, by which the quality of input data of neural network is improved.
Weifeng Zhang 0001, Baowen Xu, Zifeng Cui
CW2
2005 Approximations of Concept Based on Multielement Bounds
Jianjiang Lu, Baowen Xu, Dazhou Kang, Peng Wang 0004
DEXA2
2005 Model Checking for Timed Statecharts
Junyan Qian, Baowen Xu
FORTE2
2005 A Slice Monad Transformer and Its Applications in Program Slicing
abstract
Monad transformers, each representing a single notion of computation, can be designed once and for all. In this paper we abstract the computation of program slicing as slice monad transformer, which allows program slices to be computed on any type of computation represented by an arbitrary monad. We define and verify the slice monad transformer. With the use of the slice monad transformer, we propose a new approach for program slicing based on modular monadic semantics, called modular monadic slicing. It could compute slices directly on abstract syntax, without explicit construction of intermediate structures such as dependence graphs in slicers. Moreover, it could have excellent flexibility and reusability properties.
Yingzhou Zhang, Baowen Xu
ICECCS2
2005 Reasoning Technique for Extended Fuzzy Description Logics
abstract
A family of extended fuzzy description logics, which includes a framework of syntax, semantics, knowledge base form and reasoning tasks, is proposed to enable representation and reasoning for complex fuzzy information. This paper discusses the reasoning technique for reasoning tasks of extended fuzzy description logics, which adopts classical description logics to discretely simulate extended fuzzy description logic in polynomial time and reuses the existing reasoning result to prove the complexity of reasoning tasks of extended fuzzy description logics
Baowen Xu, Jianjiang Lu, Dazhou Kang
ICTAI2
2005 Manage Distributed Ontologies on the Semantic Web
Peng Wang 0004, Baowen Xu, Jianjiang Lu, Dazhou Kang
ISPA2
2005 A Framework of Checking Subsumption Relations Between Composite Concepts in Different Ontologies
Dazhou Kang, Jianjiang Lu, Baowen Xu, Peng Wang 0004
KES (1)3
2005 Extended Fuzzy Description Logic ALCN
Baowen Xu, Jianjiang Lu, Dazhou Kang, Peng Wang 0004
KES (4)2
2005 Mapping Fuzzy Concepts Between Fuzzy Ontologies
Baowen Xu, Dazhou Kang, Jianjiang Lu, Jixiang Jiang
KES (3)1
2005 An Aspect Transformation Approach with Refactoring
Chaohong Zhou, Baowen Xu, Tianlin Zhou
SEKE2
2005 DMC: a more precise cohesion measure for classes
Jianmin Wang 0001, Yuming Zhou, Lijie Wen 0001, Yujian Chen, Hongmin Lu, Baowen Xu
Inf. Softw. Technol.6
2005 An improved accuracy measure for rough sets
Baowen Xu, Yuming Zhou, Hongmin Lu
J. Comput. Syst. Sci.1
2004 Agentification for Web Services
abstract
We report our effort on the AgenEvo project, which develops an evolution approach to re-engineer legacy systems into agent-based Web services. We first survey the key technologies, which are adopted in this paper. After discussing the basic features of the Web services and agent, we focus on agent-based Web services, which are hot spot in web-based research area. We argue that agent-based Web services are well suited to building software solutions for distributed, open and dynamic web-based systems. Next, we introduce our approach on re-engineering framework and working flow. The method that integrates agents with Web services for legacy system evolution is proposed and an example on how to use agent-based Web services software evolution framework and methodology to re-engineer the legacy system is illustrated. Finally, we conclude the paper and suggest the directions of the possible future research.
Feng Chen 0004, He Guo 0001, Baowen Xu
COMPSAC4
2004 Modular Monadic Program Slicing
abstract
Program slicing is widely used in applications such as program comprehension, software testing, debugging, measurement, and reengineering. This paper proposes a new approach for program slicing, called modular monadic slicing, basing on modular monadic semantics of the program analysed. We abstract the computation of program slicing as a language-independence entity: slice monad transformer. On the basis of this, we present and illustrate modular monadic dynamic and static slice algorithms in detail. We conclude that modular monadic slicing has excellent flexibility and reusability properties comparing with the existing program slicing algorithms. It computes program slices on abstract syntax directly without intermediate structures such as dependence graphs.
Yingzhou Zhang, Baowen Xu, Bixin Li
COMPSAC2
2004 Slicing Web Application Based on Hyper Graph
abstract
Program slicing is an available method that is widely used in program understanding, analyzing, debugging, testing, maintaining. There are many solutions for slicing procedural program and object-oriented program. But traditional slicing method usually based on PDG and SDG that is not suitable to a Web application because of Web's special characteristics. This paper suggests a kind of slicing method that use hyper graph to define dependency of elements named PDSG (program dependence hyper graph). PDSG can describe dependence of the Web elements better than PDG. This method also makes the slicing algorithm simpler and the slice captured is integrated in semantics.
Baowen Xu, Jixiang Jiang
CW2
2004 Bridge Ontology and Its Role in Semantic Annotation
abstract
Multiontologies environment is common such as the semantic annotation applications based on multiontologies. Based on analyzing and classifying the relationships between multiontologies, we propose the idea of bridge ontology, and present its detailed structure too. To deal with the semantic annotation problem based on multiontologies, a new approach is proposed which employing bridge ontology to express the complex relationships between multiontologies. The bridge ontology is a peculiar ontology, which can be created and maintained conveniently, and is effective in the applications based on multiontologies. The approach using bridge ontology has the advantages of low-cost, scalable, robust in the Web circumstance, avoiding the unnecessary ontology extending and integration, and promoting ontology reuse.
Baowen Xu, Peng Wang 0004, Jianjiang Lu, Dazhou Kang
CW1
2004 A Framework for Web Applications Testing
abstract
Web application testing is concerned with numerous and complicated testing objects, methods and processes. So a testing framework fitting for the properties of Web application is needed to guide and organize all the testing tasks. Based on the analysis for Web application characters and traditional software testing process, the process for Web application testing is modeled, which describes a series of testing flows such as the testing requirement analysis, test cases generation and selection, testing execution, and testing results analysis and measurement. Furthermore, the realization techniques are also investigated so as to integrate each testing step and implement the whole testing process harmoniously and effectively. Thus the framework is suitable for the Internet environment and can guide the Web application testing actively and availably.
Lei Xu 0003, Baowen Xu
CW2
2004 Measuring Aspect Cohesion
Jianjun Zhao 0001, Baowen Xu
FASE2
2004 Theory and Semantic Refinement of Bridge Ontology Based on Multi-Ontologies
abstract
Multiontologies environments are common in semantic Web and knowledge representation applications. The key problem of these applications is how to represent the complex relationships between ontologies. For the purpose of solving the problem, This work analyzed and classified the relationships between multiontologies, then proposed the theory of bridge ontology. The bridge ontology is a peculiar ontology, has four-layer structures, and is able to express the twelve kinds of relations between multiontologies. Subsequently, on the premise of keeping the semantic consistency, the detailed discussions focused on the semantic checking and refining methods for the multiontologies with bridge ontology. Bridge ontology can be created and maintained conveniently, and is effective in the applications based on multiontologies. It has the advantages of low-cost, scalable, robust in the Web circumstance, avoiding the unnecessary ontology extending and integration, and promoting ontology reuse.
Baowen Xu, Peng Wang 0004, Jianjiang Lu, Dazhou Kang
ICTAI1
2004 Local Nonnegative Matrix Factorization for Mining Typical User Session Profile
Jixiang Jiang, Baowen Xu, Jianjiang Lu
ICWE2
2004 Measuring Class Cohesion Based on Dependence Analysis
Zhenqiang Chen, Baowen Xu, Yuming Zhou
J. Comput. Sci. Technol.2
2003 DRC: A Dependence Relationships Based Cohesion Measure for Classes
abstract
A large number of cohesion measures based on method-attribute references have been proposed. However, virtually no attention has been paid to the abstract representation that objectively depicts the relationships among the members of a class. Specially, the flow dependence relationship among attributes, the indirect and potential dependence relationships among class members, and the direction of method-attribute references are ignored. To address this problem, we first identifies four types of basic dependence relationships and uses a class member dependence graph to represent all dependences among the members of a class. Then, a dependence relationships based measure for measuring the class cohesiveness is proposed. Finally, we compare our class cohesion measure with typical cohesion measures.
Yuming Zhou, Lijie Wen 0001, Jianmin Wang 0001, Yujian Chen, Hongmin Lu, Baowen Xu
APSEC6
2003 Bridging Legacy Systems to Model Driven Architecture
abstract
System evolution can be achieved effectively from architectural point of view, and one of the most exciting outcomes of those efforts on software architecture is OMG' Model Driven Architecture (MDA) which aims at a unified framework for system evolution targeting middleware-based modern distributed system. The advance of technologies in software design and implementation, however, cannot completely avoid the need for deep understanding of legacy systems for evolution. We are still stuck with incomplete high abstraction views when evolving the legacy systems. This paper presents an approach to bridging legacy systems to MDA, which has three contributions: a suitable architecture description language for architecture recovery, the relevant abstraction rules and the integration of reverse engineering with MDA.
Bing Qiao, William C. Chu, Baowen Xu
COMPSAC4
2003 Regression Testing for Web Applications Based on Slicing
abstract
Web applications have rapid developing speed and changeable user demands, so the regression testing is much important. Since the changed demands result in different versions of Web applications, and the faults usually hiding in the adjusted contents, the regression testing must cover all the related pages. In order to carry through the regression testing quickly and effectively, we make the simplification with the method of slicing. Firstly, we analyze the possible changes in the Web applications and the influences produced by these changes, discussing in the direct-dependent and indirect-dependent way; next, we give the regression testing method based on slicing emphasized on the indirect-dependent among data, i.e., obtaining the dependent set of changed variables by forward and backward search method and generating the testing suits; conclusion remarks and future work are given at last.
Lei Xu 0003, Baowen Xu, Zhenqiang Chen, Jixiang Jiang, Huowang Chen
COMPSAC2
2003 Parallel Algorithm for Mining Fuzzy Association Rules
abstract
The principle and steps of the algorithm for mining fuzzy association rules is studied, and the parallel algorithm for mining fuzzy association rules is presented. In this parallel mining algorithm, quantitative attributes are partitioned into several fuzzy sets by the parallel fuzzy c-means algorithm, and fuzzy sets are applied to soften the partition boundary of the attributes. Then, the parallel algorithm for mining Boolean association rules is improved to discover frequent fuzzy attributes. Last, the fuzzy association rules with at least fuzzy confidence are generated on all processors. The parallel mining algorithm is implemented on the distributed linked PC/workstation. The experiment results show that the parallel mining algorithm has fine scaleup, sizeup and speedup.
Baowen Xu, Jianjiang Lu, Yingzhou Zhang, Lei Xu 0003, Huowang Chen
CW1
2003 Mining Association Rules with Linguistic Terms
abstract
Some problems of mining association rules with linguistic terms are discussed. First, an incremental updating algorithm of association rules with linguistic terms is presented. The collection of frequent linguistic attribute sets and its negative border along with their support count are maintained, which makes scan the entire database once at most in the process of updating association rules. The experiment shows that the updating algorithm can not only update association rules effectively but also avoid the repeated cost. Secondly, the parallel algorithm for mining association rules with linguistic terms is presented. The Boolean parallel mining algorithm is improved to discover frequent linguistic attribute sets, and the association rules with at least confidence are generated on all processors. This parallel mining algorithm has fine scale-up, size-up and speed-up.
Jianjiang Lu, Baowen Xu, Dazhou Kang, Huowang Chen
ICTAI2
2003 A Browser Compatibility Testing Method Based on Combinatorial Testing
Lei Xu 0003, Baowen Xu, Changhai Nie, Huowang Chen
ICWE2
2003 Partial Slicing for Large Programs
Zhenqiang Chen, Baowen Xu, William C. Chu, Jianjun Zhao 0001
SEKE2
2003 Matrix Dimensionality Reduction for Mining Web Logs
abstract
Web-based logs contain potentially useful data with which designers can assess the usability and effectiveness of their choices. Clustering techniques have been used to automatically discover typical user profiles from Web access logs recently. But it is a challenging problem to design effective similarity measure between the session vectors, which are usually high dimensional and sparse. Nonnegative matrix factorisation approaches are applied to dimensionality reduction of the session-URL matrix, and the spherical k-means algorithm is used to partition the projecting vectors of the user session vectors into several clusters. Two methods for discovering typical user session profiles from the clusters are presented last. The results of experiment show that our algorithms can mine interesting user profiles effectively.
Jianjiang Lu, Baowen Xu
Web Intelligence2
2003 More comments on 'A cohesion measure for object-oriented classes' by Heung-Seok Chae, Yong-Rae Kwon and Doo-Hwan Bae
abstract
Abstract Chae et al. believe that the improved CBMC measures class cohesion from the viewpoint of the usage criteria of instance variables and that it cannot allow meaningful interpretations about classes. This paper exemplifies that it characterizes the interaction patterns better than the original one does and that it could also be used as a guideline for quality evaluation so as to enable the restructuring of poorly designed classes. Copyright © 2003 John Wiley & Sons, Ltd.
Baowen Xu, Yuming Zhou
Softw. Pract. Exp.1
2002 Software Maintainability Improvement: Integrating Standards and Models
abstract
Software standards are highly recommended because they promise faster and more efficient ways for software development with proven techniques and standard notations. Designers who adopt standards like UML and design patterns to construct models and designs in the processes of development suffer from a lack of communication and integration of various models and designs. Also, the problem of implicit inconsistency caused by making changes to components of the models and designs will significantly increase the cost and error for the process of maintenance. In this paper, an XML-based unified model is proposed to solve the problems and to improve both software development and maintenance through unification and integration.
William C. Chu, Chih-Wei Lu, Chih-Hung Chang, Yeh-Ching Chung, Yueh-Min Huang, Baowen Xu
COMPSAC6
2002 Parallel Genetic Algorithms with Schema Migration
abstract
Genetic algorithms (GAs) are efficient non-gradient stochastic search methods. Parallel GAs are proposed to overcome the deficiencies of sequential GAs, such as low speed and aptness to locally converge. However the tremendous communication cost incurred offsets the advantages of parallel GAs. Hence reducing communication cost is the key issue of this problem. Instead of reducing the communication cost simply by compressing the size of the messages, we tackle the problem by improving the effectiveness of the schema to be disseminated. We propose a new schema migration scheme (SMS). This SMS consists of a schema extracting mechanism and a schema disseminating mechanism. This SMS is valid and requires less communication cost.
Baowen Xu, Zhenqiang Chen, Karl R. P. H. Leung
COMPSAC1
2002 Result Integration in a Meta Web Search Engine
abstract
A meta Web search engine first sends a user's search requests to its referenced search engines. The results returned by these search engines are then integrated by one result-integrating algorithm and returned to the user. Query precision, completeness and response speed are directly affected by the choice of result integration algorithm. By analyzing common result-integrating algorithms, this paper recommends several unproved algorithms to improve the coherence of search results.
Baowen Xu, Weifeng Zhang 0001
CW1
2002 Detecting Deadlock in Ada Rendezvous Flow Structure Based on Process Algebra
Baowen Xu, Zhenqiang Chen
ICFEM2
2002 A Novel Approach to Measuring Class Cohesion Based on Dependence Analysis
abstract
Classes are the basic modules in object-oriented (OO) software, which consist of attributes and methods. Thus, in an OO environment, cohesion mainly concerns how tight the attributes and methods of classes are. This paper discusses the relationships between attributes and attributes, attributes and methods, and methods and methods of a class based on dependence analysis. Then we discuss the properties of these relationships. According to these properties, this paper proposes a novel approach to measuring class cohesion. Our approach overcomes the limitations of previous class cohesion measures, which consider only one or two of the three relationships in a class. We also prove that this measure satisfies the properties that a good measurement should have.
Zhenqiang Chen, Yuming Zhou, Baowen Xu, Jianjun Zhao 0001
ICSM3
2002 ICBMC: An Improved Cohesion Measure for Classes
abstract
Class cohesion could be used to evaluate the design quality of classes, to develop test measures for object-oriented software and to restructure poorly designed classes. Among a number of class cohesion measures proposed in the last decade, Chae's measure is based on the structure of the reference graph of a class, which overcomes the limitations of most class cohesion measures. However, it only considers the patterns of interactions among the members of a class partly and hence does not satisfy monotonicity, which may cause the measurement results to be inconsistent with intuition in some cases. This paper first analyzes the limitations of typical cohesion measures for classes in detail, and then proposes an improved cohesion measure ICBMC. Finally, this paper exemplifies the advantages and applications of ICBMC.
Yuming Zhou, Baowen Xu, Jianjun Zhao 0001
ICSM2
2002 Concurrent Ada dead statements detection
Zhenqiang Chen, Baowen Xu, Jianjun Zhao 0001
Inf. Softw. Technol.2
2002 Change impact analysis to support architectural evolution
abstract
Abstract Change impact analysis is a useful technique in software maintenance and evolution. Many techniques have been proposed to support change impact analysis at the code level of software systems, but little effort has been made for change impact analysis at the architectural level. In this paper, we present an approach to supporting change impact analysis at the architectural level of software systems based on an architectural slicing and chopping technique. The main feature of our approach is to assess the effect of changes in a software architecture by analyzing its formal architectural specification, and, therefore, the process of change impact analysis can be automated completely. Copyright © 2002 John Wiley & Sons, Ltd.
Jianjun Zhao 0001, Liming Xiang, Baowen Xu
J. Softw. Maintenance Res. Pract.4
2001 A Rough Set Based Self-Adaptive Web Search Engine
abstract
Web search engines are very useful information service tools in the Internet. The current Web search engines produce search results relating to the search terms and the actual information collected by them. Since the selections of the search results cannot affect the future ones, they may not cover most people's interests. In the paper, feedback information produced by the users' accessing lists is represented by a rough set and can influence the search results. Thus the search engines can provide self-adaptability.
Baowen Xu, Weifeng Zhang 0001, William C. Chu
COMPSAC1
2001 Extracting Objects from Ada83 Programs: A Case Study
Baowen Xu, Yuming Zhou
J. Comput. Sci. Technol.1
2001 Comments on A cohesion measure for object-oriented classes by Heung Seok Chae, Yong Rae Kwon and Doo Hwan Bae
abstract
Abstract Although H. S. Chae's class cohesion measure considers not only the number of interactions, but also the patterns of the interactions among the constitute members of a class (which overcomes the limitations of previous class cohesion measures) it, however, only partly considers the patterns of interactions, and might cause the measuring results to be inconsistent with intuition in some cases. This paper discusses the demerits and proposes constructive amendments to Chae's cohesion measure. Copyright © 2001 John Wiley & Sons, Ltd.
Baowen Xu, Yuming Zhou
Softw. Pract. Exp.1
2000 ConC++: A Concurrent C++
abstract
We propose a programming language known as ConC++ which is extended of C++ to support multithread and concurrent programming using concurrent classes and protected classes. A concurrent class has an active function, which executes immediately when an object is instantiated. A protected class encapsulates a group of data and operations on them and it is used to implement synchronization and mutual-exclusion among objects of concurrent classes, with centralized object concurrency control. The approach achieves object autonomy, decreases context switches and deadlocks and improves program performance.
Bangqing Li, Baowen Xu, William C. Chu
COMPSAC2
2000 Data Mining Algorithms for Web Pre-Fetching
abstract
To speed up fetching web pages, this paper gives an intelligent technology of web pre-fetching. We use a simplified WWW data model to represent the data in the cache of web browser to mine the association rules. We store these rules in a knowledge base so as to predict the user's actions. Intelligent agents are responsible for mining the users' interest and pre-fetching web pages, based on the interest association repository. In this way user browsing time has been reduced transparently.
Weifeng Zhang 0001, Baowen Xu, William Song
WISE (2)2
1999 Extracting Objects of Ada Programs Using Module Features
abstract
Reengineering legacy systems written in conventional procedural languages to equivalent OO systems makes software more maintainable and reliable. In this paper a method for extracting objects from legacy Ada 83 systems using module features is proposed. First, we develop metrics to measure module cohesion. Then, effects on cohesion from changing module components are discussed and rules on how to extract inheritance relations among objects are given. Finally, an object identification tool in APAUS is described.
Yuming Zhou, Baowen Xu
ICSM2