Demo Data from EDBT 2026 / reviewers in the wild / expert
Chushu Gao
dblp:30/10529
· DBLP profile ↗
20ranked-venue papers
2as first author
1since 2021 · last 2025
0000-0003-1397-4536ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 20 · 2 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1Applied, interdisciplinary, general and emerging computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
4 papers |
Empirical software engineering · 55% Requirements engineering and software design · 17% Concurrent programming · 15% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Distributed systems · 50% Storage systems · 50% |
Topics — the 8 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering › software fault analysis
bug study |
0.3 | 1 | 2018 | An empirical study on crash recovery bugs in large-scale distributed systems · ESEC/SIGSOFT FSE 2018 |
Requirements engineering and software design
end-user software engineering |
0.3 | 1 | 2018 | How are spreadsheet templates used in practice: a case study on Enron · ESEC/SIGSOFT FSE 2018 |
Empirical software engineering
mining software repositories |
0.3 | 1 | 2018 | How are spreadsheet templates used in practice: a case study on Enron · ESEC/SIGSOFT FSE 2018 |
Empirical software engineering › end-user programming
spreadsheet analysis |
0.3 | 1 | 2018 | How are spreadsheet templates used in practice: a case study on Enron · ESEC/SIGSOFT FSE 2018 |
Storage systems
crash recovery |
0.3 | 1 | 2018 | An empirical study on crash recovery bugs in large-scale distributed systems · ESEC/SIGSOFT FSE 2018 |
Distributed systems
fault tolerance |
0.3 | 1 | 2018 | An empirical study on crash recovery bugs in large-scale distributed systems · ESEC/SIGSOFT FSE 2018 |
Concurrent programming
concurrency bugs |
0.3 | 1 | 2017 | A comprehensive study on real world concurrency bugs in Node.js · ASE 2017 |
Empirical software engineering › mining software repositories › bug report analysis
bug characterization |
0.1 | 1 | 2017 | A comprehensive study on real world concurrency bugs in Node.js · ASE 2017 |
Methods — techniques the papers use, named apart from their topics
empirical study · 0.9case study · 0.3bug case analysis · 0.3outlier detection · 0.2fingerprint-based clone detection · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | On the Effectiveness of Microservices Tactics and Patterns to Reduce Energy Consumption: An Experimental Study on Trade-OffsabstractContext: Microservice-based systems have established themselves in the software industry. However, sustainability-related legislation and the growing costs of energy-hungry software increase the importance of energy efficiency for these systems. While some proposals for architectural tactics and patterns exist, their effectiveness as well as potential trade-offs on other quality attributes (QAs) remain unclear.Goal: We therefore aim to study the effectiveness of microservices tactics and patterns to reduce energy consumption, as well as potential trade-offs with performance and maintainability.Method: Using the open-source Online Boutique system, we conducted a controlled experiment with three tactics (Distribute pods to different nodes, Distribute microservices to different containers, Use different proxies for different demands) and three patterns (Backends for Frontends, Request Bundle, Caching of Read Requests) and analyzed the impact of each technique compared to a baseline. We also tested with three levels of simulated request loads (low, medium, high).Results: Request load moderated the effectiveness of reducing energy consumption. All techniques (tactics and patterns) reduced the energy consumption for at least one load level, up to 5.6%. For performance, the techniques could negatively impact response time by increasing it by up to 25.9%, while some also decreased it by up to 72.5%. Two techniques increased the throughput, by 1.9% and 34.0%. For maintainability, three techniques had a negative, one a positive, and two no impact.Conclusion: Some techniques reduced energy consumption while also improving performance. However, these techniques usually involved a trade-off in maintainability, e.g., via more code duplication and module coupling. Overall, all techniques significantly reduced energy consumption at higher loads, but most of them sacrificed one of the other QAs. This highlights that the real challenge is not simply reducing energy consumption of microservices, but to achieve energy efficiency. Xingwen Xiao, Chushu Gao, Justus Bogner |
ICSA | 2 |
| 2018 | Context-Based Event Trace Reduction in Client-Side JavaScript Applications
Jie Wang 0035, Wensheng Dou, Chushu Gao, Yu Gao 0002, Jun Wei 0001 |
ICST | 3 |
| 2018 | Migrating Web Applications from Monolithic Structure to Microservices ArchitectureabstractIn the traditional software development and deployment, the centralized monolithic is always adopted, as the modules are tightly coupled, which caused many inconvenience in software DevOps. The modules with bottlenecks in monolithic application cannot be extend separately as the application is an integral part, and different module cannot use different technology stack. To prolong the lifecycle of the monolithic applications, its need to migrated it to microservice architecture. Due to the complex logic and large number of third party framework libraries depended, get an accurate comprehensive of the application characteristics is challenging. The existing research mostly based on the static characteristics, lack of consideration of the runtime dynamic characteristics, and the completeness and accuracy of the static analysis is inadequate. To resolve above problems, we combined static and dynamic analysis to get static structure and runtime behavior characteristics of monolithic application. We employed the coupling among functions to evaluate the degree of dependence, and through function clustering to achieve the migration of legacy monolithic applications and its data to microservices architecture. Through the empirical study of migrate the typical legacy project to microservices, it is proved that we proposed method can offer precise guidance and assistance in the migration procedure. Experiments show that the method has high accuracy and low performance cost. Zhongshan Ren, Wei Wang 0049, Guoquan Wu, Chushu Gao, Wei Chen 0018, Jun Wei 0001, Tao Huang 0001 |
Internetware | 4 |
| 2018 | An empirical study on crash recovery bugs in large-scale distributed systemsabstractIn large-scale distributed systems, node crashes are inevitable, and can happen at any time. As such, distributed systems are usually designed to be resilient to these node crashes via various crash recovery mechanisms, such as write-ahead logging in HBase and hinted handoffs in Cassandra. However, faults in crash recovery mechanisms and their implementations can introduce intricate crash recovery bugs, and lead to severe consequences. Yu Gao 0002, Wensheng Dou, Chushu Gao, Dong Wang 0048, Jun Wei 0001, Ruirui Huang, Yongming Wu |
ESEC/SIGSOFT FSE | 4 |
| 2018 | How are spreadsheet templates used in practice: a case study on EnronabstractTo reduce the effort of creating similar spreadsheets, end users may create expected spreadsheets from some predesigned templates, which contain necessary table layouts (e.g., headers and styles) and formulas, other than from scratch. When there are no explicitly predesigned spreadsheet templates, end users often take an existing spreadsheet as the instance template to create a new spreadsheet. However, improper template design and usage can introduce various issues. For example, a formula error in the template can be easily propagated to all its instances without users’ noticing. Since template design and usage are rarely documented in literature and practice, practitioners and researchers lack understanding of them to achieve effective improvement. In this paper, we conduct the first empirical study on the design and the usage of spreadsheet templates based on 47 predesigned templates (490 instances in total), and 21 instance template groups (168 template and instance pairs in total), extracted from the Enron corpus. Our study reveals a number of spreadsheet template design and usage issues in practice, and also sheds lights on several interesting research directions. Wensheng Dou, Chushu Gao, Jun Wei 0001, Tao Huang 0001 |
ESEC/SIGSOFT FSE | 4 |
| 2018 | Detecting faulty empty cells in spreadsheetsabstractSpreadsheets play an important role in various business tasks, such as financial reports and data analysis. In spreadsheets, empty cells are widely used for different purposes, e.g., separating different tables, or default value "0". However, a user may delete a formula unintentionally, and leave a cell empty. Such ad-hoc modification may introduce a faulty empty cell that should have a formula. We observe that the context of an empty cell can help determine whether the empty cell is faulty. For example, is the empty cell next to a cell array in which all cells share the same semantics? Does the empty cell have headers similar to other non-empty cells'? In this paper, we propose EmptyCheck, to detect faulty empty cells in spreadsheets. By analyzing the context of an empty cell, EmptyCheck validates whether the cell belong to a cell array. If yes, the empty cell is faulty since it does not contain a formula. We evaluate EmptyCheck on 100 randomly sampled EUSES spreadsheets. The experimental result shows that EmptyCheck can detect faulty empty cells with high precision (75.00%) and recall (87.04%). Existing techniques can detect only 4.26% of the true faulty empty cells that EmptyCheck detects. Wensheng Dou, Chushu Gao, Jun Wei 0001, Tao Huang 0001 |
SANER | 5 |
| 2018 | JSTrace: Fast reproducing web application errors
Jie Wang 0035, Wensheng Dou, Chushu Gao, Jun Wei 0001 |
J. Syst. Softw. | 3 |
| 2018 | Characterizing and diagnosing out of memory errors in MapReduce applications
Lijie Xu, Wensheng Dou, Chushu Gao, Jie Liu 0008, Jun Wei 0001 |
J. Syst. Softw. | 4 |
| 2017 | Mining API Type Specifications for JavaScriptabstractAPI specifications play an important role in software development. However, API specifications are often not well documented, especially for JavaScript. Many JavaScript API specifications lack of precise type information for API parameters and return values. In this paper, we propose a static approach for mining JavaScript type specifications automatically. We gather the usage information of return values and parameters statically, and infer types of return values based their usages, by identifying a known type which they are used most likely to be, and infer parameters by identifying the most used parameters. We evaluate the approach on the homepages of Alexa top 1000 websites, the experimental results show that our approach can gain high precision. Our case study on jQuery shows that our approach gains high precision and reasonable recall on jQuery, and we can use our inferred API type specifications to detect 2 jQuery misusage errors in real-world web sites, and 1 missing type error in jQuery documentations. Wensheng Dou, Chushu Gao, Jun Wei 0001, Tao Huang 0001 |
APSEC | 3 |
| 2017 | A Hierarchical Categorization Approach for Configuration Management ModulesabstractConfiguration management tools, CMTs for short, are a set of indispensable software for DevOps (Development and Operations). CMTs automate system deployment and configuration through CMT modules, which are reusable, shareable units of configuration code. Therefore, thousands of CMT modules have been developed for various systems, and are still growing fast. Although CMT repositories usually provide keyword-and tag-based search, a large number of search results could prevent users from finding desired CMT modules. CMT modules could be managed in a hierarchical categorization, which can limit the search scope in specified categories, and thus help to improve search performance. Unfortunately, there is no hierarchical categorization in all CMT repositories. In this paper, we propose a hierarchical categorization approach for CMT modules. Our approach first extracts frequently-used module tags as categories, and constructs the category hierarchy by mining the hierarchical relations among tags. We leverage online module profiles (names, descriptions and tags) as source information to do categorization. It trains a set of classifiers by taking TF-IDF (term frequency-inverse document frequency) of module profiles as features. Finally, our evaluation on more than 11,000 CMT modules shows that our approach could obtain 90 fine-grained and multi-layered categories, and does categorization for CMT modules with high precision (0.81), recall (0.88) and F-Measure (0.85). Wei Chen 0018, Peixing Xu, Wensheng Dou, Guoquan Wu, Chushu Gao, Jun Wei 0001 |
COMPSAC (1) | 5 |
| 2017 | A Hierarchical Categorization Approach for System Operation ServicesabstractOperation services are reusable and shareable units of configuration code executed by configuration management tools (CMTs), achieving continuous deployment and continuous delivery. With the prevalence of DevOps (Development and Operations), thousands of operation services have been developed for various software systems, and they are publicly available through the online repositories of popular CMTs. However, locating and retrieving desired operation services is challenging since keyword-and tag-based search provided by a repository is with low precision. In this paper, we implement a hierarchical categorization approach based search service, named OSFinder, which searches and locates desired operation services more accurately. OSFinder first constructs a category hierarchy for operation services across multiple repositories, and then it classifies over 13,000 operation services into 90 categories based on machine learning technique, finally it provides a search for users. With OSFinder, a user can narrow down his search scope by tracking the category hierarchy in a top-down way, and then searches in a small group with keywords. The evaluation shows that OSFinder outperforms keyword-and tag-based search. Wei Chen 0018, Peixing Xu, Guoquan Wu, Wensheng Dou, Chushu Gao, Jun Wei 0001 |
ICWS | 5 |
| 2017 | A comprehensive study on real world concurrency bugs in Node.jsabstractNode.js becomes increasingly popular in building server-side JavaScript applications. It adopts an event-driven model, which supports asynchronous I/O and non-deterministic event processing. This asynchrony and non-determinism can introduce intricate concurrency bugs, and leads to unpredictable behaviors. An in-depth understanding of real world concurrency bugs in Node.js applications will significantly promote effective techniques in bug detection, testing and fixing for Node.js. In this paper, we present NodeCB, a comprehensive study on real world concurrency bugs in Node.js applications. Specifically, we have carefully studied 57 real bug cases from open-source Node.js applications, and have analyzed their bug characteristics, e.g., bug patterns and root causes, bug impacts, bug manifestation, and fix strategies. Through this study, we obtain several interesting findings, which may open up many new research directions in combating concurrency bugs in Node.js. For example, one finding is that two thirds of the bugs are caused by atomicity violation. However, due to lack of locks and transaction mechanism, Node.js cannot easily express and guarantee the atomic intention. Jie Wang 0035, Wensheng Dou, Yu Gao 0002, Chushu Gao, Jun Wei 0001 |
ASE | 4 |
| 2017 | SpreadCluster: recovering versioned spreadsheets through similarity-based clusteringabstractVersion information plays an important role in spreadsheet understanding, maintaining and quality improving. However, end users rarely use version control tools to document spreadsheets' version information. Thus, the spreadsheets' version information is missing, and different versions of a spreadsheet coexist as individual and similar spreadsheets. Existing approaches try to recover spreadsheet version information through clustering these similar spreadsheets based on spreadsheet filenames or related email conversation. However, the applicability and accuracy of existing clustering approaches are limited due to the necessary information (e.g., filenames and email conversation) is usually missing. We inspected the versioned spreadsheets in VEnron, which is extracted from the Enron Corporation. In VEnron, the different versions of a spreadsheet are clustered into an evolution group. We observed that the versioned spreadsheets in each evolution group exhibit certain common features (e.g., similar table headers and worksheet names). Based on this observation, we proposed an automatic clustering algorithm, SpreadCluster. SpreadCluster learns the criteria of features from the versioned spreadsheets in VEnron, and then automatically clusters spreadsheets with the similar features into the same evolution group. We applied SpreadCluster on all spreadsheets in the Enron corpus. The evaluation result shows that SpreadCluster could cluster spreadsheets with higher precision (78.5% vs. 59.8%) and recall rate (70.7% vs. 48.7%) than the filename-based approach used by VEnron. Based on the clustering result by SpreadCluster, we further created a new versioned spreadsheet corpus VEnron2, which is much bigger than VEnron (12,254 vs. 7,294 spreadsheets). We also applied SpreadCluster on the other two spreadsheet corpora FUSE and EUSES. The results show that SpreadCluster can cluster the versioned spreadsheets in these two corpora with high precision (91.0% and 79.8%). Wensheng Dou, Chushu Gao, Jie Wang 0035, Jun Wei 0001, Hua Zhong 0001, Tao Huang 0001 |
MSR | 3 |
| 2016 | Detecting table clones and smells in spreadsheetsabstractSpreadsheets are widely used by end users for various business tasks, such as data analysis and financial reporting. End users may perform similar tasks by cloning a block of cells (table) in their spreadsheets. The corresponding cells in these cloned tables are supposed to keep the same or similar computational semantics. However, when spreadsheets evolve, thus cloned tables can become inconsistent due to ad-hoc modifications, and as a result suffer from smells. In this paper, we propose TableCheck to detect table clones and related smells due to inconsistency among them. We observe that two tables with the same header information at their corresponding cells are likely to be table clones. Inspired by existing fingerprint-based code clone detection techniques, we developed a detection algorithm to detect this kind of table clones. We further detected outliers among corresponding cells as smells in the detected table clones. We implemented our idea into TableCheck, and applied it to real-world spreadsheets from the EUSES corpus. Experimental results show that table clones commonly exist (21.8%), and 25.6% of the spreadsheets with table clones suffer from smells due to inconsistency among these clones. TableCheck detected table clones and their smells with a precision of 92.2% and 85.5%, respectively, while existing techniques detected no more than 35.6% true smells that TableCheck could detect. Wensheng Dou, Shing-Chi Cheung, Chushu Gao, Chang Xu 0001, Jun Wei 0001 |
SIGSOFT FSE | 3 |
| 2015 | Discovering User-Defined Event Handlers in Presence of JavaScript LibrariesabstractJavaScript libraries, such as JQuery, are widely used in web applications. In these libraries' event delegation models, a DOM element's event handler is usually bound to its parent nodes. This makes it difficult for developers to figure out the user-defined event handlers of a specified DOM element. In this paper, we propose an approach that identifies the user-defined event handlers of DOM elements in a web page. We dynamically collect the execution trace for each triggered event in a web page, and analyze how each function is used in the execution trace to discover the event handlers for each event. We evaluate our approach on seven real-world web applications. The result shows that our approach is effective, with an overall precision of 100% and recall of 99.8%. Wensheng Dou, Chushu Gao, Jun Wei 0001, Tao Huang 0001 |
APSEC | 3 |
| 2015 | Towards Web Application Mobilization via Efficient Web Control ExtractionabstractTraditional web applications are not suitable for mobile devices, because mobile devices are usually equipped with small screens and use slow and expensive mobile network. In order to adapt web applications to mobile devices, existing approaches reconstruct particular web applications, or adapt only partial views of web pages. They require a lot of additional reconstructing work or network bandwidth. In this paper we propose an approach that can extract a part of a web page as an executable web control efficiently. Our approach monitors the execution of user code, builds a dependency graph of executed user code, and performs slicing based on the dependency graph. The evaluation on two real-world web applications shows that our approach is able to extract executable web controls efficiently, and for the two web applications, visiting extracted web controls instead of the original web pages can save 98% and 23% of bandwidth respectively. Wensheng Dou, Guoquan Wu, Jie Wang 0035, Chushu Gao, Jun Wei 0001, Tao Huang 0001 |
Internetware | 5 |
| 2015 | Fast reproducing web application errorsabstractJavaScript has become the most popular language for client-side web applications. Due to JavaScript's highly-dynamic features and event-driven design, it is not easy to debug web application errors. Record-replay techniques are widely used to reproduce errors in web applications. However, the key events related to an error are hidden in the massive event trace collected during a long running. As a result, error diagnosis with the long event trace is exhausting and time-consuming. We present a tool JSTrace that can effectively cut down the web application error reproducing time and facilitate the diagnosis. Based on the dynamic dependencies of JavaScript and DOM instructions, we develop a novel dynamic slicing technique that can remove events irrelevant to the error reproducing. In this process, many events and related instructions are removed without losing the reproducing accuracy. Our evaluation shows that the reduced event trace can faithfully reproduce errors with an average reduction rate of 96%. Jie Wang 0035, Wensheng Dou, Chushu Gao, Jun Wei 0001 |
ISSRE | 3 |
| 2015 | Experience report: A characteristic study on out of memory errors in distributed data-parallel applicationsabstractOut of memory (OOM) errors occur frequently in data-intensive applications that run atop distributed data-parallel frameworks, such as MapReduce and Spark. In these applications, the memory space is shared by the framework and user code. Since the framework hides the details of distributed execution, it is challenging for users to pinpoint the root causes and fix these OOM errors. This paper presents a comprehensive characteristic study on 123 real-world OOM errors in Hadoop and Spark applications. Our major findings include: (1) 12% errors are caused by the large data buffered/cached in the framework, which indicates that it is hard for users to configure the right memory quota to balance the memory usage of the framework and user code. (2) 37% errors are caused by the unexpected large runtime data, such as large data partition, hotspot key, and large key/value record. (3) Most errors (64%) are caused by memory-consuming user code, which carelessly processes unexpected large data or generates large in-memory computing results. Among them, 13% errors are also caused by the unexpected large runtime data. (4) There are three common fix patterns (used in 34% errors), namely changing the memory/dataflow-related configurations, dividing runtime data, and optimizing user code logic. Our findings inspire us to propose potential solutions to avoid the OOM errors: (1) providing dynamic memory management mechanisms to balance the memory usage of the framework and user code at runtime; (2) providing users with memory+disk data structures, since accumulating large computing results in in-memory data structures is a common cause (15% errors). Lijie Xu, Wensheng Dou, Chushu Gao, Jie Liu 0008, Hua Zhong 0007, Jun Wei 0001 |
ISSRE | 4 |
| 2014 | Inferring Data Contract for Web-Based APIabstractWeb-based API is a new trend for publishing services. To correctly use the API, developers should follow certain service specifications. Data contract is a service specification to express the constraints over the data model used in the APIs. Data contracts, however are not always readily available in a formalized format if not undocumented at all. In this paper, we present an approach to infer formal data contracts for Web-based API. The approach integrates information of the parameters, error messages and testing result of Web-based API. We demonstrate how this approach infers complicated data preconditions for Web-based API in the real-world Web API platforms. Chushu Gao, Jun Wei 0001, Hua Zhong 0001, Tao Huang 0001 |
ICWS | 1 |
| 2010 | Sequential event pattern based context-aware adaptationabstractRecent pervasive systems are designed to be context-aware so that they are able to adapt to continual changes of their environments. Rule-based adaptation, which is commonly adopted by these applications, introduces new challenges in software design and verification. Recent research results have identified some faulty or unwanted adaptations caused by factors such as asynchronous context updating, and missing or faulty context reading. In addition, adaptation rules based on simple event models and propositional logic are not expressive enough to address these factors and to satisfy users' expectation in the design. We tackle these challenges at design stage by introducing sequential event patterns in adaptation rules to eliminate faulty and unwanted adaptations with features provided in the event pattern query language. We illustrate our approach using the recent published examples of adaptive applications, and show that it is promising on designing more reliable context-aware adaptive applications. Chushu Gao, Jun Wei 0001, Chang Xu 0001, Shing-Chi Cheung |
Internetware | 1 |