VLDB 2026 Research / reviewers in the wild / expert
Jinru Hua
dblp:187/1596
· DBLP profile ↗
7ranked-venue papers
5as first author
0since 2021 · last 2019
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 5 first-author
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
2 papers |
Debugging and program repair · 100% |
Topics — the 2 heaviest of 2, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Debugging and program repair
automated program repair |
0.7 | 2 | 2018 | SketchFix: a tool for automated program repair approach using lazy candidate generation · ESEC/SIGSOFT FSE 2018 Towards practical program repair with on-demand candidate generation · ICSE 2018 |
Debugging and program repair › automated program repair
generate-and-validate repair |
0.3 | 1 | 2018 | SketchFix: a tool for automated program repair approach using lazy candidate generation · ESEC/SIGSOFT FSE 2018 |
Methods — techniques the papers use, named apart from their topics
test validation · 0.3lazy candidate generation · 0.3candidate generation · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2019 | EdSketch: execution-driven sketching for Java
Jinru Hua, Yushan Zhang, Yuqun Zhang, Sarfraz Khurshid |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2018 | Towards practical program repair with on-demand candidate generationabstractEffective program repair techniques, which modify faulty programs to fix them with respect to given test suites, can substantially reduce the cost of manual debugging. A common repair approach is to iteratively first generate candidate programs with possible bug fixes and then validate them against the given tests until a candidate that passes all the tests is found. While this approach is conceptually simple, due to the potentially high number of candidates that need to first be generated and then be compiled and tested, existing repair techniques that embody this approach have relatively low effectiveness, especially for faults at a fine granularity. Jinru Hua, Mengshi Zhang, Sarfraz Khurshid |
ICSE | 1 |
| 2018 | EdSynth: Synthesizing API Sequences with Conditionals and LoopsabstractGood API design enables many clients to effectively use the core functionality implemented by the APIs. For real-world applications however, correctly using the APIs and identifying what methods to use and how to invoke them appropriately can be challenging. Researchers have developed a number of API synthesis approaches that enable a semantically rich form of API completion where the client provides a description of desired functionality, e.g., in the form of test suites, and the automatic tools create method sequences using the desired APIs based on the given correctness criteria (e.g., all given tests pass). However, existing API synthesis approaches are largely limited to creating single basic blocks of code and do not readily handle multiple blocks in the presence of loops (or recursion) and complex test executions. A key issue with handling multiple blocks is the very large space of possible method sequences and their combinations. This paper introduces EdSynth, an API synthesis approach that explores the sequence spaces on-demand during the test execution; that is, the given tests not only provide a validation mechanism - as is common in test-driven API synthesis - but also play a vital role in guiding the space exploration by helping prune much of it. EdSynth follows the spirit of recent work on test-execution-driven synthesis and lazily initializes candidates during the execution of given tests where the part of the candidate completion that is actually executed directly determines the generation of future candidates. To further optimize the space exploration, EdSynth ranks API candidates based on a set of pre-defined heuristics. We evaluate EdSynth's ability to synthesize complex APIs in the presence of conditional statements, loops and multiple basic blocks. The experimental results show that EdSynth is effective at handling synthesis tasks with multiple API sequences in both the conditions and bodies of loops/branches; moreover, when applied to synthesis of straight-line code, EdSynth compares well with a state-of-the-art API synthesis tool that only handles straight-line code. The experiments show that EdSynth's ranking strategies help reduce synthesis time by 43%. Jinru Hua, Sarfraz Khurshid |
ICST | 2 |
| 2018 | SketchFix: a tool for automated program repair approach using lazy candidate generationabstractManually locating and removing bugs in faulty program is often tedious and error-prone. A common automated program repair approach called generate-and-validate (G&V) iteratively creates candidate fixes, compiles them, and runs these candidates against the given tests. This approach can be costly due to a large number of re-compilations and re-executions of the program. To tackle this limitation, recent work introduced the SketchFix approach that tightly integrates the generation and validation phases, and utilizes runtime behaviors to substantially prune a large amount of repair candidates. This tool paper describes our Java implementation of SketchFix, which is an open-source library that we released on Github. Our experimental evaluation using Defects4J benchmark shows that SketchFix can significantly reduce the number of re-compilations and re-executions compared to other approaches and work particularly well in repairing expression manipulation at the AST node-level granularity.The demo video is at: https://youtu.be/AO-YCH8vGzQ. Jinru Hua, Mengshi Zhang, Sarfraz Khurshid |
ESEC/SIGSOFT FSE | 1 |
| 2017 | EdSketch: execution-driven sketching for JavaabstractSketching is a relatively recent approach to program synthesis, which has shown much promise. The key idea in sketching is to allow users to write partial programs that have ''holes'' and provide test harnesses or reference implementations, and let synthesis tools create program fragments that fill the holes such that the resulting complete program has the desired functionality. Traditional solutions to the sketching problem perform a translation to SAT and employ CEGIS. While effective for a range of programs, when applied to real applications, such translation-based approaches have a key limitation: they require either translating all relevant libraries that are invoked directly or indirectly by the given sketch -- which can lead to impractical SAT problems -- or creating models of those libraries -- which can require much manual effort. Jinru Hua, Sarfraz Khurshid |
SPIN | 1 |
| 2016 | A Sketching-Based Approach for Debugging Using Test Cases
Jinru Hua, Sarfraz Khurshid |
ATVA | 1 |
| 2016 | Repairing Intricate Faults in Code Using Machine Learning and Path ExplorationabstractDebugging remains costly and tedious, especially for code that performs intricate operations that are conceptually complex to reason about. We present MLR, a novel approach for repairing faults in such operations, specifically in the context of complex data structures. Our focus is on faults in conditional statements. Our insight is that an integrated approach based on machine learning and systematic path exploration can provide effective repairs. MLR mines the data-spectra of the passing and failing executions of conditional branches to prune the search space for repair and generate patches that are likely valid beyond the existing test-suite. We apply MLR to repair faults in small but complex data structure subjects to demonstrate its efficacy. Experimental results show that MLR has the potential to repair this fault class more effectively than state-of-the-art repair tools. Divya Gopinath, Jinru Hua, Sarfraz Khurshid |
ICSME | 3 |