[TS PBT] Search for property violations with USVM
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- kotlin, typescript
- 領域
- compilers, testing-qa
調査の方向性
Start with dependencies #351 and #384, then trace the existing target and machine execution APIs and the JsConcreteValue extraction path. Review the focused examples and relevant tests for holding, false, throwing, precondition, and multi-call relational predicates. Done means scoped candidate artifacts and tests distinguish termination and capability outcomes without confirming candidates.
索引モデルが issue の本文から書いたものです。
説明
Delivery boundary in the full #345 roadmap
Preserve the original-predicate violation search in PR #387 as this issue's scope. #398 adds assertion/intermediate/hypothesis targets, #399 selects them, and #355 integrates feedback. #401 and #402 own richer relational/sequence support; this issue does not acquire all their acceptance gates. Searching an original user property remains a mandatory baseline in every feedback comparison.
Part of #345. Depends on #351 and #384.
Goal
Use USVM to search for inputs violating the original TypeScript predicate under the shared declared domain and precondition.
Scope
- Execute the mapped predicate with #351 inputs and a supported pure precondition following #384.
- A false predicate result or any escaping predicate exception, including an assertion failure, is a candidate violation. Expected exceptions are caught inside the predicate. A non-boolean result is a property-definition error.
- Support a relational predicate making multiple ordinary calls within one invocation. This does not require a general stateful-testing framework or persistent state between samples.
- Use the existing target and machine execution APIs.
- Extract supported candidate inputs once using JsConcreteValue, preserving ordered inputs and the supported alias/value semantics. #353 consumes this representation rather than implementing a second extraction layer.
- Keep reached-target information independent from extraction failure and run termination. A reached state with unrepresentable inputs remains visible but is not a confirmed counterexample.
- Distinguish no violation found within this search, timeout, unsupported execution, property-definition error, engine failure and input-resolution failure.
- Async or otherwise unsupported predicates remain concrete-only where a backend can run them.
Definition of Done
- Focused examples cover a holding predicate, false predicate, throwing predicate, precondition rejection/error and a multi-call relational property.
- Candidate artifacts retain property ID, inputs when available, reached target, termination status and capability limitations.
- No unsupported/opaque execution or timeout is reported as a proved property.
- Every candidate remains unconfirmed until #353 replays it in the original runtime.
- No duplicate capability model, exception framework, value codec or generic target framework is introduced.
- Deliver the existing scoped implementation with relevant tests.
Concrete replay, shrinking and search hints are outside this issue.
- 主要言語
- Kotlin
- スター
- 33
- フォーク
- 27
- 平均マージ
- 3日 8時間
- マージ済み PR(30日)
- 7
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
UnitTestBot/usvm のほかの issue
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
UnitTestBot/usvm#440 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
UnitTestBot/usvm#439 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
UnitTestBot/usvm#438 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
UnitTestBot/usvm#437 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 4/5 3〜5日 初心者へのやさしさ 62/100
UnitTestBot/usvm#436 ·
メンテナーはふだん 1 日以内に返信
UnitTestBot/usvm の issue をすべて見る
似ている issue
-
contributor: external needs review
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
fwcd/tree-sitter-kotlin#289 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
navikt/syfo-oppfolgingsplan-backend#482 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信