Visual Analytics for the Parameter Tuning Process of Symbolic Execution Engines
A visual analytics system that supports Human-in-the-Loop parameter tuning of symbolic execution engines (e.g., KLEE). Symetra helps analysts understand why certain configurations work well — not just which ones — by revealing how parameters affect branch coverage across tuning trials.
Published at the Eurographics Conference on Visualization (EuroVis) 2026 · Computer Graphics Forum, Vol. 45 (2026), No. 3.
Symetra turns thousands of tuning trials into an interactive workflow: Overview → Compare Configuration Groups → Inspect Hyperparameters → Trace Branches to Code.
-
Coverage View
- Visualizes branch coverage achieved across trials against the
baseandtotalbranch counts. - Surfaces which branches are newly covered, hard to reach, or consistently missed.
- Visualizes branch coverage achieved across trials against the
-
Hyperparameter View
- Compares the distribution and impact of each of the 61 KLEE parameters (boolean / numeric / categorical).
- Relates parameter values to coverage gains over the baseline.
-
Trial Group View (Collective Analysis)
- Contrasts groups of configurations to identify differences that affect branch coverage.
- Helps discover complementary configurations whose test cases cover different sets of branches.
- Area / Bidirectional / Overlapped charts for side-by-side group comparison.
-
Code View
- Links a selected branch back to its source location (file + line) in the target program.
- Lets analysts move from a coverage signal to the exact condition responsible for it.
Tuning experiments run KLEE against real C programs, optimizing configuration for branch coverage.
| Target | Program | Metric | Branches (covered / total) |
|---|---|---|---|
| grep | GNU grep |
Branch Coverage | base ≈ 1135 / 8225 |
| gcal | GNU gcal |
Branch Coverage | — / — |
Targets are defined in
src/data/targetConfig.json; trial and branch data live insrc/data/.
- Add an entry to
src/data/targetConfig.json(name,base,total,max, …). - Drop the tuning results as
src/data/tuned_parameters_<name>.jsonand branch metadata assrc/data/branch_info_<prefix>.json. - Describe parameters in
src/data/parameter_descriptions.csv.
The app loads these dynamically — see src/App.tsx and src/model/experiment.ts.
# 1. Install dependencies
pnpm install
# 2. Launch the dev server (HMR)
pnpm run dev
# 3. Build for production
pnpm run build
# 4. Preview the production build
pnpm run previewSymetra is a client-side application — the experiment data is bundled from
src/data/, so no backend server is required.
The public base path is set in vite.config.ts. For the GitHub Pages project site it is /Symetra/; for root/custom-domain hosting use /.
// vite.config.ts
export default defineConfig({
plugins: [react()],
base: "/Symetra/",
});Defined in src/data/config.json:
| Field | Description | Example |
|---|---|---|
metric.name |
Optimization metric | Coverage |
baseValue |
Baseline (default-config) coverage | 1473.37 |
totalBranch |
Total branches in the target program | 8225 |
src/data/*.json ──▶ Model layer ──▶ React + visx/D3/Plotly views
(trials, branch (Experiment, • Overview
info, config) Hyperparam, • Coverage View
Trial, Target) • Hyperparameter View
│ • Trial Group View
Zustand store ────▶ • Code View
Tech stack: React 18 · TypeScript 5 · Vite 5 (SWC) · Chakra UI · D3 / visx / Plotly.js · Zustand
- KLEE → KLEE: Unassisted and Automatic Generation of High-Coverage Tests
- ATMSeer → Increasing Transparency and Controllability in AutoML
- HyperTendril → User-driven Hyperparameter Optimization
If you use Symetra in your research, please cite:
@article{hong2026symetra,
title = {Symetra: Visual Analytics for the Parameter Tuning Process of Symbolic Execution Engines},
author = {Hong, Donghee and Kim, Minjong and Cha, Sooyoung and Jo, Jaemin},
journal = {Computer Graphics Forum},
volume = {45},
number = {3},
year = {2026},
note = {Proc. Eurographics Conference on Visualization (EuroVis)},
publisher = {The Eurographics Association and John Wiley \& Sons Ltd.}
}| Name | Affiliation | |
|---|---|---|
| Donghee Hong | Sungkyunkwan University | dh.hong@skku.edu |
| Minjong Kim | Sungkyunkwan University | minjong.kim@skku.edu |
| Sooyoung Cha | Sungkyunkwan University | sooyoung.cha@skku.edu |
| Jaemin Jo* | Sungkyunkwan University | jmjo@skku.edu |
* Corresponding author
This work was supported by the Institute of Information & Communications Technology Planning & Evaluation (IITP) grant funded by the Korea government (MSIT):
- RS-2019-II190421 — Artificial Intelligence Graduate School Program (Sungkyunkwan University)
- RS-2024-00438686 — Development of software reliability improvement technology through identification of abnormal open sources and automatic application of DevSecOps
and by the National Research Foundation of Korea (NRF) grant funded by the Korea government (RS-2025-24873100).
Released under the MIT License.

