VLDB 2026 Research / reviewers in the wild / expert
Ahmet Çelik
dblp:15/1842
· DBLP profile ↗
14ranked-venue papers
8as first author
0since 2021 · last 2020
—ORCID · conflict
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 7 first-authorArtificial intelligence and machine learning · 1Security and privacy · 1Databases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous 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
9 papers |
Software testing · 59% Program verification · 24% Software maintenance and evolution · 10% | |
| Computer architecture, parallel and distributed computing, and storage systems
4 papers |
GPUs and heterogeneous computing · 77% Parallel and multicore computing · 12% Embedded and real-time systems · 12% |
Topics — the 18 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing › regression testing
regression test selection |
0.9 | 3 | 2018 | Regression test selection for TizenRT · ESEC/SIGSOFT FSE 2018 Towards refactoring-aware regression test selection · ICSE 2018 Regression test selection across JVM boundaries · ESEC/SIGSOFT FSE 2017 |
Program verification
proof assistants |
0.7 | 3 | 2019 | piCoq: parallel regression proving for large-scale verification projects · ISSTA 2018 iCoq: regression proof selection for large-scale verification projects · ASE 2017 Mutation Analysis for Coq · ASE 2019 |
Program verification › proof assistants
proof engineering |
0.7 | 2 | 2019 | Mutation Analysis for Coq · ASE 2019 iCoq: regression proof selection for large-scale verification projects · ASE 2017 |
Software testing
test generation |
0.7 | 2 | 2019 | Design, implementation, and application of GPU-based Java bytecode interpreters · Proc. ACM Program. Lang. 2019 Bounded exhaustive test-input generation on GPUs · Proc. ACM Program. Lang. 2017 |
GPUs and heterogeneous computing
GPU computing |
0.7 | 2 | 2019 | Design, implementation, and application of GPU-based Java bytecode interpreters · Proc. ACM Program. Lang. 2019 Bounded exhaustive test-input generation on GPUs · Proc. ACM Program. Lang. 2017 |
Software testing › test maintenance
test isolation |
0.4 | 1 | 2020 | Debugging the performance of Maven's test isolation: experience report · ISSTA 2020 |
Runtime systems and virtual machines › interpreter
bytecode interpretation |
0.4 | 1 | 2019 | Design, implementation, and application of GPU-based Java bytecode interpreters · Proc. ACM Program. Lang. 2019 |
Software testing
mutation testing |
0.4 | 1 | 2019 | Mutation Analysis for Coq · ASE 2019 |
Software testing › test generation
test sequence generation |
0.4 | 1 | 2019 | Design, implementation, and application of GPU-based Java bytecode interpreters · Proc. ACM Program. Lang. 2019 |
Software maintenance and evolution
refactoring |
0.3 | 1 | 2018 | Towards refactoring-aware regression test selection · ICSE 2018 |
Software testing
regression testing |
0.3 | 1 | 2018 | Towards refactoring-aware regression test selection · ICSE 2018 |
Software testing › combinatorial testing
bounded exhaustive testing |
0.3 | 1 | 2017 | Bounded exhaustive test-input generation on GPUs · Proc. ACM Program. Lang. 2017 |
Software testing › test generation
specification-based test generation |
0.3 | 1 | 2017 | Bounded exhaustive test-input generation on GPUs · Proc. ACM Program. Lang. 2017 |
Software maintenance and evolution
build systems |
0.1 | 1 | 2020 | Debugging the performance of Maven's test isolation: experience report · ISSTA 2020 |
Program verification › proof assistants
coq |
0.1 | 1 | 2019 | Mutation Analysis for Coq · ASE 2019 |
Software maintenance and evolution
software evolution |
0.1 | 1 | 2018 | Towards refactoring-aware regression test selection · ICSE 2018 |
Embedded and real-time systems
real-time operating systems |
0.1 | 1 | 2018 | Regression test selection for TizenRT · ESEC/SIGSOFT FSE 2018 |
Software maintenance and evolution › release engineering
continuous integration |
0.1 | 1 | 2017 | iCoq: regression proof selection for large-scale verification projects · ASE 2017 |
Methods — techniques the papers use, named apart from their topics
regression test selection · 0.9dependency tracking · 0.9scheduling · 0.8data layout optimization · 0.8regression proof selection · 0.7proof-level parallelism · 0.7parallel proof checking · 0.4mutation operators · 0.4dependency analysis · 0.3pruning · 0.3dynamic analysis · 0.3backtracking search · 0.3abstract representation · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Debugging the performance of Maven's test isolation: experience reportabstractTesting is the most common approach used in industry for checking software correctness. Developers frequently practice reliable testing-executing individual tests in isolation from each other-to avoid test failures caused by test-order dependencies and shared state pollution (e.g., when tests mutate static fields). A common way of doing this is by running each test as a separate process. Unfortunately, this is known to introduce substantial overhead. This experience report describes our efforts to better understand the sources of this overhead and to create a system to confirm the minimal overhead possible. We found that different build systems use different mechanisms for communicating between these multiple processes, and that because of this design decision, running tests with some build systems could be faster than with others. Through this inquiry we discovered a significant performance bug in Apache Maven’s test running code, which slowed down test execution by on average 350 milliseconds per-test when compared to a competing build system, Ant. When used for testing real projects, this can result in a significant reduction in testing time. We submitted a patch for this bug which has been integrated into the Apache Maven build system, and describe our ongoing efforts to improve Maven’s test execution tooling. Pengyu Nie 0001, Ahmet Çelik, Matthew Coley, Aleksandar Milicevic, Jonathan Bell 0001, Milos Gligoric 0001 |
ISSTA | 2 |
| 2020 | Practical Machine-Checked Formalization of Change Impact AnalysisabstractAbstract Change impact analysis techniques determine the components affected by a change to a software system, and are used as part of many program analysis techniques and tools, e.g., in regression test selection, build systems, and compilers. The correctness of such analyses usually depends both on domain-specific properties and change impact analysis, and is rarely established formally, which is detrimental to trustworthiness. We present a formalization of change impact analysis with machine-checked proofs of correctness in the Coq proof assistant. Our formal model factors out domain-specific concerns and captures system components and their interrelations in terms of dependency graphs. Using compositionality, we also capture hierarchical impact analysis formally for the first time, which, e.g., can capture when impacted files are used to locate impacted tests inside those files. We refined our verified impact analysis for performance, extracted it to efficient executable OCaml code, and integrated it with a regression test selection tool, one regression proof selection tool, and one build system, replacing their existing impact analyses. We then evaluated the resulting toolchains on several open source projects, and our results show that the toolchains run with only small differences compared to the original running time. We believe our formalization can provide a basis for formally proving domain-specific techniques using change impact analysis correct, and our verified code can be integrated with additional tools to increase their reliability. Karl Palmskog, Ahmet Çelik, Milos Gligoric 0001 |
TACAS (2) | 2 |
| 2019 | Mutation Analysis for CoqabstractMutation analysis, which introduces artificial defects into software systems, is the basis of mutation testing, a technique widely applied to evaluate and enhance the quality of test suites. However, despite the deep analogy between tests and formal proofs, mutation analysis has seldom been considered in the context of deductive verification. We propose mutation proving, a technique for analyzing verification projects that use proof assistants. We implemented our technique for the Coq proof assistant in a tool dubbed mCoq. mCoq applies a set of mutation operators to Coq definitions of functions and datatypes, inspired by operators previously proposed for functional programming languages. mCoq then checks proofs of lemmas affected by operator application. To make our technique feasible in practice, we implemented several optimizations in mCoq such as parallel proof checking. We applied mCoq to several medium and large scale Coq projects, and recorded whether proofs passed or failed when applying different mutation operators. We then qualitatively analyzed the mutants, finding many instances of incomplete specifications. For our evaluation, we made several improvements to serialization of Coq files and even discovered a notable bug in Coq itself, all acknowledged by developers. We believe mCoq can be useful both to proof engineers for improving the quality of their verification projects and to researchers for evaluating proof engineering techniques. Ahmet Çelik, Karl Palmskog, Marinela Parovic, Emilio Jesús Gallego Arias, Milos Gligoric 0001 |
ASE | 1 |
| 2019 | A Low-Complexity Solution to Angular Misalignments in Molecular Index ModulationabstractMultiple-input multiple-output (MIMO) transmission approaches have been recently considered in the context of molecular communications due to desirable improvements they provide in terms of communication efficiency. Among these methods, molecular index modulation (molecular-IM) schemes yield a significant improvement in throughput and show promising results for future molecular MIMO research. However, existing molecular-IM methods rely on perfect spatial alignment between corresponding antennas, which may not be the case in a possible practical scenario. Motivated by this practical constraint, this study proposes a novel receiver design for molecular-IM. The proposed decoder is an augmented version of the maximum count decoder (MCD) and operates by merging MCD with a simple linear combining technique. Our numerical results show that the proposed approach yields a desirable robustness against antenna misalignments while still maintaining a simplistic receiver structure. Ahmet Çelik, Mustafa Can Gursoy, Ertugrul Basar, Ali Emre Pusane, Tuna Tugcu |
PIMRC | 1 |
| 2019 | Design, implementation, and application of GPU-based Java bytecode interpretersabstractWe present the design and implementation of GVM, the first system for executing Java bytecode entirely on GPUs. GVM is ideal for applications that execute a large number of short-living tasks, which share a significant fraction of their codebase and have similar execution time. GVM uses novel algorithms, scheduling, and data layout techniques to adapt to the massively parallel programming and execution model of GPUs. We apply GVM to generate and execute tests for Java projects. First, we implement a sequence-based test generation on top of GVM and design novel algorithms to avoid redundant test sequences. Second, we use GVM to execute randomly generated test cases. We evaluate GVM by comparing it with two existing Java bytecode interpreters (Oracle JVM and Java Pathfinder), as well as with the Oracle JVM with just-in-time (JIT) compiler, which has been engineered and optimized for over twenty years. Our evaluation shows that sequence-based test generation on GVM outperforms both Java Pathfinder and Oracle JVM interpreter. Additionally, our results show that GVM performs as well as running our parallel sequence-based test generation algorithm using JVM with JIT with many CPU threads. Furthermore, our evaluation on several classes from open-source projects shows that executing randomly generated tests on GVM outperforms sequential execution on JVM interpreter and JVM with JIT. Ahmet Çelik, Pengyu Nie 0001, Christopher J. Rossbach, Milos Gligoric 0001 |
Proc. ACM Program. Lang. | 1 |
| 2018 | Towards refactoring-aware regression test selectionabstractRegression testing checks that recent project changes do not break previously working functionality. Although important, regression testing is costly when changes are frequent. Regression test selection (RTS) optimizes regression testing by running only tests whose results might be affected by a change. Traditionally, RTS collects dependencies (e.g., on files) for each test and skips the tests, at a new project revision, whose dependencies did not change. Existing RTS techniques do not differentiate behavior-preserving transformations (i.e., refactorings) from other code changes. As a result, tests are run more frequently than necessary. Chenguang Zhu 0002, Ahmet Çelik, Jongwook Kim, Don S. Batory, Milos Gligoric 0001 |
ICSE | 3 |
| 2018 | piCoq: parallel regression proving for large-scale verification projectsabstractLarge-scale verification projects using proof assistants typically contain many proofs that must be checked at each new project revision. While proof checking can sometimes be parallelized at the coarse-grained file level to save time, recent changes in some proof assistant in the LCF family, such as Coq, enable fine-grained parallelism at the level of proofs. However, these parallel techniques are not currently integrated with regression proof selection, a technique that checks only the subset of proofs affected by a change. We present techniques that blend the power of parallel proof checking and selection to speed up regression proving in verification projects, suitable for use both on users' own machines and in workflows involving continuous integration services. We implemented the techniques in a tool, piCoq, which supports Coq projects. piCoq can track dependencies between files, definitions, and lemmas and perform parallel checking of only those files or proofs affected by changes between two project revisions. We applied piCoq to perform regression proving over many revisions of several large open source projects and measured the proof checking time. While gains from using proof-level parallelism and file selection can be considerable, our results indicate that proof-level parallelism and proof selection is consistently much faster than both sequential checking from scratch and sequential checking with proof selection. In particular, 4-way parallelization is up to 28.6 times faster than the former, and up to 2.8 times faster than the latter. Karl Palmskog, Ahmet Çelik, Milos Gligoric 0001 |
ISSTA | 2 |
| 2018 | Regression test selection for TizenRTabstractRegression testing - running tests after code modifications - is widely practiced in industry, including at Samsung. Regression Test Selection (RTS) optimizes regression testing by skipping tests that are not affected by recent code changes. Recent work has developed robust RTS tools, which mostly target managed languages, e.g., Java and C#, and thus are not applicable to large C projects, e.g., TizenRT, a lightweight RTOS-based platform. Ahmet Çelik, Young-Chul Lee, Milos Gligoric 0001 |
ESEC/SIGSOFT FSE | 1 |
| 2017 | iCoq: regression proof selection for large-scale verification projectsabstractProof assistants such as Coq are used to construct and check formal proofs in many large-scale verification projects. As proofs grow in number and size, the need for tool support to quickly find failing proofs after revising a project increases. We present a technique for large-scale regression proof selection, suitable for use in continuous integration services, e.g., Travis CI. We instantiate the technique in a tool dubbed ICOQ. ICOQ tracks fine-grained dependencies between Coq definitions, propositions, and proofs, and only checks those proofs affected by changes between two revisions. ICOQ additionally saves time by ignoring changes with no impact on semantics. We applied ICOQ to track dependencies across many revisions in several large Coq projects and measured the time savings compared to proof checking from scratch and when using Coq's timestamp-based toolchain for incremental checking. Our results show that proof checking with ICOQ is up to 10 times faster than the former and up to 3 times faster than the latter. Ahmet Çelik, Karl Palmskog, Milos Gligoric 0001 |
ASE | 1 |
| 2017 | Regression test selection across JVM boundariesabstractModern software development processes recommend that changes be integrated into the main development line of a project multiple times a day. Before a new revision may be integrated, developers practice regression testing to ensure that the latest changes do not break any previously established functionality. The cost of regression testing is high, due to an increase in the number of revisions that are introduced per day, as well as the number of tests developers write per revision. Regression test selection (RTS) optimizes regression testing by skipping tests that are not affected by recent project changes. Existing dynamic RTS techniques support only projects written in a single programming language, which is unfortunate knowing that an open-source project is on average written in several programming languages. Ahmet Çelik, Marko Vasic, Aleksandar Milicevic, Milos Gligoric 0001 |
ESEC/SIGSOFT FSE | 1 |
| 2017 | Bounded exhaustive test-input generation on GPUsabstractBounded exhaustive testing is an effective methodology for detecting bugs in a wide range of applications. A well-known approach for bounded exhaustive testing is Korat. It generates all test inputs, up to a given small size, based on a formal specification that is written as an executable predicate and characterizes properties of desired inputs. Korat uses the predicate's executions on candidate inputs to implement a backtracking search based on pruning to systematically explore the space of all possible inputs and generate only those that satisfy the specification. This paper presents a novel approach for speeding up test generation for bounded exhaustive testing using Korat. The novelty of our approach is two-fold. One, we introduce a new technique for writing the specification predicate based on an abstract representation of candidate inputs, so that the predicate executes directly on these abstract structures and each execution has a lower cost. Two, we use the abstract representation as the basis to define the first technique for utilizing GPUs for systematic test generation using executable predicates. Moreover, we present a suite of optimizations that enable effective utilization of the computational resources offered by modern GPUs. We use our prototype tool KoratG to experimentally evaluate our approach using a suite of 7 data structures that were used in prior studies on bounded exhaustive testing. Our results show that our abstract representation can speed up test generation by 5.68 times on a standard CPU, while execution on a GPU speeds up the execution, on average, by 17.46 times. Ahmet Çelik, Sreepathi Pai, Sarfraz Khurshid, Milos Gligoric 0001 |
Proc. ACM Program. Lang. | 1 |
| 2016 | Build system with lazy retrieval for Java projectsabstractIn the modern-day development, projects use Continuous Integration Services (CISs) to execute the build for every change in the source code. To ensure that the project remains correct and deployable, a CIS performs a clean build each time. In a clean environment, a build system needs to retrieve the project's dependencies (e.g., guava.jar). The retrieval, however, can be costly due to dependency bloat: despite a project using only a few files from each library, the existing build systems still eagerly retrieve all the libraries at the beginning of the build. Ahmet Çelik, Alex Knaust, Aleksandar Milicevic, Milos Gligoric 0001 |
SIGSOFT FSE | 1 |
| 2012 | Mining Hate Crimes to Figure Out Reasons BehindabstractIn order to identify the reasons behind the hate crimes in Diyarbakir, Turkey a data mining research has been made. Various data mining algorithms are applied to data set containing forty big cases happened between 2009 and 2010. some algorithms helped us to model criminality in Diyarbakir, we learned which features for hatred crime features are important while dealing with cases. There has been also contribution for identifying habits of Diyarbakir people which makes them vulnerable for the hate crimes. Fatih Özgül, Murat Gök, Yakup Ozal, Ahmet Çelik |
ASONAM | 4 |
| 2011 | Incorporating data sources and methodologies for crime data miningabstractThis paper investigates sources of crime data mining, methodologies for knowledge discovery, by pointing out which forms knowledge discovery is suitable for which methodology. Furthermore, it identifies which data sources should be used for which knowledge discovery form in crime data mining. Similarities and differences between crime data mining methodologies show that some forms of knowledge discovery are suitable for particular crime data mining methodologies. It is offered that selecting the appropriate methodology depends on whether general or specific tasks required or high volume of crime data to be prepared. Fatih Özgül, Claus Atzenbeck, Ahmet Çelik, Zeki Erdem |
ISI | 3 |