VLDB 2026 Research / reviewers in the wild / expert
Charaka Geethal
dblp:255/6114 · also Charaka Geethal Kapugama
· DBLP profile ↗
4ranked-venue papers
3as first author
3since 2021 · last 2023
0000-0003-1599-731XORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 3 first-author · 3 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Human-in-the-Loop Automatic Program RepairabstractLEARN2FIXis ahuman-in-the-loop interactive program repairtechnique, which can be applied when no bug oracle—except the user who is reporting the bug—is available. This approach incrementally learns the condition under which the bug is observed by systematic negotiation with the user. In this process,LEARN2FIXgenerates alternative test inputs and sends some of those to the user for obtaining their labels. A limited query budget is assigned to the user for this task. Aqueryis aYes/Noquestion: “When executing this alternative test input, the program under test produces the following output; is the bug observed?”. Using the labelled test inputs,LEARN2FIXincrementally learns anautomatic bugoracle to predict the user’s response. A classification algorithm in machine learning is used for this task. Our key challenge is to maximise the oracle’s accuracy in predicting the tests that expose the bug given a practical, small budget of queries. After learning the automatic oracle, an existing program repair tool attempts to repair the bug using the alternative tests that the user has labelled. Our experiments demonstrate thatLEARN2FIXtrains a sufficiently accurate automatic oracle with a reasonably low labelling effort (lt. 20 queries), and the oracles represented byinterpolation-basedclassifiers produce more accurate predictions than those represented byapproximation-basedclassifiers. Given the user-labelled test inputs, generated using the interpolation-based approach, theGenProgandAngelixautomatic program repair tools produce patches that pass a much larger proportion of validation tests than the manually constructed test suites provided by the repair benchmark. Charaka Geethal, Marcel Böhme, Van-Thuan Pham |
IEEE Trans. Software Eng. | 1 |
| 2022 | Human-in-the-loop oracle learning for semantic bugs in string processing programsabstractHow can we automatically repair semantic bugs in string-processing programs? A semantic bug is an unexpected program state: The program does not crash (which can be easily detected). Instead, the program processes the input incorrectly. It produces an output which users identify as unexpected. We envision a fully automated debugging process for semantic bugs where a user reports the unexpected behavior for a given input and the machine negotiates the condition under which the program fails. During the negotiation, the machine learns to predict the user's response and in this process learns an automated oracle for semantic bugs. Charaka Geethal, Van-Thuan Pham, Aldeida Aleti, Marcel Böhme |
ISSTA | 1 |
| 2021 | Training Automated Test Oracles to Identify Semantic BugsabstractCan a machine find and fix a Semantic Bug? A Semantic Bug is a deviation from the expected program behaviour that causes to produce incorrect outputs for certain inputs. To identify this category of bugs, the knowledge on the expected program behaviour is essential. The reason is that a program with a semantic bug does not fail (i.e., crash or hang) in the middle of the execution in most scenarios. Thus, only a human (a user or a developer) knowing the correct program behaviour can detect this kind of bug by observing the output. However, identifying bugs solely through human effort is not practical for all software. A Test Oracle is any procedure used to differentiate the correct and incorrect behaviours of a program. This dissertation mainly focuses on developing learning techniques to produce Automated Test Oracles for programs with semantic bugs. Also, discovering methods to incorporate human knowledge effectively for the learning techniques is another concern. The automated test oracles could make semantic bug detection more efficient. Also, such test oracles could guide Automated Program Repair tools to generate more accurate fixes for semantic bugs. Charaka Geethal |
ASE | 1 |
| 2020 | Human-In-The-Loop Automatic Program RepairabstractWe introduce LEARN2FIX, the first human-in-the-loop, semi-automatic repair technique when no bug oracle-except for the user who is reporting the bug-is available. Our approach negotiates with the user the condition under which the bug is observed. Only when a budget of queries to the user is exhausted, it attempts to repair the bug. A query can be thought of as the following question: “When executing this alternative test input, the program produces the following output; is the bug observed”? Through systematic queries, LEARN2FIX trains an automatic bug oracle that becomes increasingly more accurate in predicting the user's response. Our key challenge is to maximize the oracle's accuracy in predicting which tests are bug-revealing given a small budget of queries. From the alternative tests that were labeled by the user, test-driven automatic repair produces the patch. Our experiments demonstrate that LEARN2FIX learns a sufficiently accurate automatic oracle with a reasonably low labeling effort (lt. 20 queries). Given LEARN2FIX's test suite, the GenProg test-driven repair tool produces a higher-quality patch (i.e., passing a larger proportion of validation tests) than using manual test suites provided with the repair benchmark. Marcel Böhme, Charaka Geethal, Van-Thuan Pham |
ICST | 2 |