Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[TS PBT] Guide relational and metamorphic properties across multiple executions

Geschlossen
#401 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv

Rechercherichtung

Start by reading the completed core assessment in #405 and the observation/projection contracts in #396/#398, then review the related work in #395, #351/#352/#353 and #397. Define focused experiments for correlated multi-execution relations, shrinking and feedback, using the listed fixtures and original oracles. Done means the round-trip, idempotence and one additional relation have meaningful examples and separate held-out evaluation is prepared for #356/#357.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Current state (2026-10-14)

Audited against usvm main at 19866c959d.

Original predicates can already make multiple ordinary calls in one invocation. Dedicated cross-execution pairing, relational/metamorphic search contexts and feedback are not delivered by that baseline.

Remaining acceptance boundary

Add bounded execution/context pairing and replay-preserving relational targets with explicit alias/state isolation. Reuse original relational oracles and report observation/search capability without claiming a general persistent-state framework.

Original report and acceptance context, retained for traceability

Part of the full #345 delivery. Builds on #395, #351/#352/#353 and the observation/projection contracts in #396/#398.

Delivery stage

This is a stage-two extension of #345. Complete and record the core assessment in #405 before accepting this extension's end-to-end integration and results. Literature, interface design and focused experiments may start earlier; the extension never blocks #355 or #405.

Reuse the completed core contracts. This issue owns any extension-specific changes to observation, binding, scheduling, replay, shrinking and feedback integration, with focused follow-up PRs; do not retroactively broaden #351/#352 or require already completed core issues to reopen. A negative or inconclusive pilot is recorded honestly and informs design; it does not silently cancel this full-roadmap obligation.

Publish a separately identifiable extension configuration and evaluate it against the same original oracle with the extension disabled. Its final held-out evaluation belongs to #357 and is reported separately from the development pilot.

Goal

Exploit human-written relations between executions, including round-trip, idempotence, commutativity and reference equivalence, as first-class search and observation contexts.

Scope

  • Reuse original TypeScript predicates that call the tested program multiple times. Add declarative relation/context metadata only where it enables pairing or selection; do not require a second manually rewritten oracle.
  • Model shared symbolic base inputs and the stated transformations between executions. Preserve correlation instead of treating the calls as independent random samples.
  • Specify when calls share predicate-local state and when independent runs need fresh state. Follow ordinary user-code semantics; never silently clone away intended aliasing/mutation.
  • Pair observed intermediate/results across related calls, preserving call identities, original inputs, transformations and assertion identity. Feed scoped relational hypotheses to #397/#398.
  • Compare direct search for the relational assertion with observation-guided search for its relevant intermediate relations. Correctly classify a false law/specification separately from a known implementation defect.
  • Include finite-float cases where a mathematical identity is false under JavaScript, NaN-sensitive equality, duplicate-sensitive collections and a relation requiring more than one execution.
  • Shrink the shared base input or related input tuple while preserving the transformation/relationship and the same failed assertion.

Definition of Done

  • Round-trip and idempotence plus at least one of reference equivalence/commutativity have meaningful real or curated examples with original concrete oracles.
  • A multi-execution observation changes a symbolic target and its candidate is confirmed through the complete TypeScript relation.
  • Correlation, mutation/isolation, wrong relation scope and unsupported transformations have explicit fixtures.
  • #356/#357 include paired held-out evaluation against the same relational properties with observation feedback disabled; no improvement is inferred merely from having a stronger oracle.
Vorherrschende Sprache
Kotlin
Sterne
33
Forks
27
Ø Merge
3 T. 21 Std.
Gemergte PRs (30 T.)
88

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus UnitTestBot/usvm

Alle Issues in UnitTestBot/usvm

Ähnliche Issues

Weitere Issues zu Kotlin

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.