Replication Package for: "Teralizer: Semantics-Based Test Generalization from Conventional Unit Tests to Property-Based Tests"
Abstract
This replication package supports reproduction of our research on automated test generalization, i.e., automated transformation of conventional unit tests into property-based tests. Our prototytpe implementation, Teralizer, uses single-path symbolic analysis to extract path-exact specifications from tests and implementation, enabling transformation to property-based tests that validate assertions across entire input partitions rather than individual input-output pairs. arXiv preprint: https://doi.org/10.48550/arXiv.2512.14475GitHub repository: https://github.com/glockyco/Teralizer/tree/10.5281/zenodo.18242626 Package 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 (both files are also part of teralizer-core). cd replication./quick-start.sh This starts PostgreSQL, imports the database dumps, and launches Jupyter Lab. Access points (open in browser after setup completes): Jupyter Lab: http://localhost:8888 Database UI (Adminer): http://localhost:18080 System: PostgreSQL Server: postgres Username: teralizer Password: teralizer Database: postgres_dev (or postgres_test) 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" below for further details). 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: Jupyter: http://localhost:8888 - browse notebooks Adminer: http://localhost:18080 - query databases Files: analysis/output/original/ - pre-computed tables and figures 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" below. 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 (Teralizer):./scripts/run.sh --dataset primary --phase generalization Analyzing Reproduced Data ./scripts/run-notebooks.sh replicate./scripts/verify-outputs.sh original replicate 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.
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 14 January 2026