Skip to content

glockyco/Teralizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

719 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teralizer - Replication Package

This (https://doi.org/10.5281/zenodo.17950380) is a replication package for the paper:

Teralizer: Semantics-Based Test Generalization from Conventional Unit Tests to Property-Based Tests

Our work proposes a semantics-based test generalization approach that automatically transforms conventional unit tests into property-based tests by extracting specifications from implementations via single-path symbolic analysis. We demonstrate this approach through Teralizer, a prototype tool for Java that transforms JUnit tests into property-based jqwik tests.


Contents


Links

Resource Location
Zenodo Archive 10.5281/zenodo.17950380
Paper (arXiv) arXiv:2512.14475
Artifact Repository glockyco/Teralizer
Paper Repository glockyco/Teralizer-Paper

Package Contents

Archive Size Contents
teralizer-results ~1 MB Tables, figures, HTML notebooks
teralizer-core ~250 MB Code, database dumps, reference outputs
teralizer-projects-primary ~45 MB EqBench + commons-utils source code
teralizer-projects-extended-sample ~170 MB 100 sampled RepoReapers projects
teralizer-projects-extended ~1.7 GB All 1161 RepoReapers projects
teralizer-data-primary ~1.1 GB Logs, tool reports, generalized tests
teralizer-data-extended ~260 MB Logs, tool reports, generalized tests

What to download:

  • Browse results only: teralizer-results
  • Verify analysis: teralizer-core
  • Verify pipeline: teralizer-core + teralizer-projects-extended-sample
  • Full reproduction: teralizer-core + teralizer-projects-primary + teralizer-projects-extended

Quick Start

See REQUIREMENTS.md for system requirements and INSTALL.md for detailed setup instructions.

cd replication
./quick-start.sh

This starts PostgreSQL, imports the database dumps, and launches Jupyter Lab.

Access points (open in browser after setup completes):

Stopping services:

docker compose down      # Stop containers (preserves data)
docker compose down -v   # Stop and remove all data

Verification Workflows

Three workflows verify the artifact at increasing levels of depth:

Workflow What it does Archives needed Output
1. Inspect Browse pre-computed results teralizer-results
2. Verify analysis Re-run notebooks on existing data teralizer-core verify/
3. Verify pipeline Re-run data collection teralizer-core + teralizer-projects-* replicate/

Workflow 2 should produce outputs identical to original/. Workflow 3 outputs may differ due to resource limits and external factors (see Complete Reproduction).

Workflow 1: Inspect Pre-computed Results (~5 min)

Browse the pre-computed results without re-running anything.

  1. Run quick-start:

    cd replication && ./quick-start.sh
  2. Verify database import:

    ./scripts/verify-results.sh
  3. Explore:

Workflow 2: Verify Analysis (~10 min)

Confirm the analysis code produces identical results on the same data.

  1. Re-run all notebooks:

    ./scripts/run-notebooks.sh verify
  2. Compare outputs:

    ./scripts/verify-outputs.sh original verify

Expected: All outputs match exactly. The analysis is deterministic.

Workflow 3: Verify Pipeline (~15 min)

Confirm the data collection pipeline executes successfully.

  1. Run pipeline on a subset of projects:

    ./scripts/run.sh --dataset extended --count 5
  2. Run analysis on the new data:

    ./scripts/run-notebooks.sh replicate
  3. Compare outputs (differences expected due to non-determinism):

    ./scripts/verify-outputs.sh original replicate

For full reproduction of all projects, see Complete Reproduction.

Analysis Notebooks

All evaluation figures and tables in the paper are generated by notebooks in analysis/notebooks/. Outputs are saved to analysis/output/ as LaTeX tables, PDF figures, and CSV data.

Notebook Paper Section Description
dataset-characteristics.ipynb Evaluation Setup Dataset statistics and characteristics
rq1-mutation-detection.ipynb RQ1, RQ2 Mutation scores, constraint complexity
rq2-test-suite-effects.ipynb RQ3 Test suite size and runtime effects
rq3-runtime-requirements.ipynb RQ4 Teralizer efficiency analysis
rq4-limitations.ipynb RQ5, RQ6 Exclusion causes (primary + extended)

Complete Reproduction

Full reproduction requires significant compute time and may produce non-identical results due to:

  • Machine-dependent resource limits (timeouts, memory)
  • Evaluated projects with unavailable dependencies (artifacts removed from repositories)
  • Evaluated projects with unpinned dependency versions (breaking changes in newer versions)

Extended Dataset (~15 hours)

./scripts/run.sh --dataset extended

Processes all 1161 RepoReapers projects. Runtime is relatively short because most projects fail to complete the full processing pipeline.

Primary Dataset (~100+ hours)

The primary dataset requires a two-phase workflow:

  1. Generate tests (EvoSuite):

    ./scripts/run.sh --dataset primary --phase generation
  2. Generalize tests:

    ./scripts/run.sh --dataset primary --phase generalization

Analyzing Reproduced Data

./scripts/run-notebooks.sh replicate
./scripts/verify-outputs.sh original replicate

Project Structure

teralizer/
├── README.md                   # This file
├── INSTALL.md                  # Installation instructions
├── REQUIREMENTS.md             # System requirements
├── LICENSE-MIT                 # MIT license (code)
├── LICENSE-CC-BY-4.0           # CC BY 4.0 license (data, docs)
├── src/                        # Teralizer Java source code
├── analysis/
│   ├── notebooks/              # Jupyter analysis notebooks
│   ├── src/                    # Python analysis modules
│   └── output/                 # Generated tables, figures, data
├── replication/
│   ├── docker-compose.yml      # Docker services configuration
│   ├── quick-start.sh          # One-command setup script
│   ├── datasets/               # Database dumps
│   └── scripts/                # Automation scripts
├── project-configs/            # Pipeline configuration files
└── docs/                       # Architecture documentation

Citation

@misc{glock_2025_teralizer,
  title={Teralizer: Semantics-Based Test Generalization from Conventional Unit Tests to Property-Based Tests},
  author={Johann Glock and Clemens Bauer and Martin Pinzger},
  year={2025},
  eprint={2512.14475},
  archivePrefix={arXiv},
  primaryClass={cs.SE},
  url={https://arxiv.org/abs/2512.14475},
}

License

This artifact uses dual licensing:

Component License
Source code (Java, Python, scripts) MIT
Data, documentation CC BY 4.0

Analyzed projects retain their original licenses.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors