局所トレーサビリティビュー REQ001

生成日時: 2026-03-07 13:08:10

対象アイテム

10

REQ

1

SPEC

3

IMPL

3

TST

3

レビュー済

10/10

Suspect

6

グループ

CACHE
アイテム: REQ001 SPEC001 SPEC002 SPEC003 IMPL001 IMPL002 IMPL003 TST001 TST002 TST003

トレーサビリティマトリクス

✓=レビュー済 ○=未レビュー ⚠=Suspect(IDクリックで詳細へ)

グループREQSPECIMPLTST
CACHEREQ001
関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。
SPEC001
`@spot.mark()` デコレータにより、対象関数の実行結果をキャッシュキーに紐づけて保存する。 2回目以降の同一引数での呼び出しでは関数を実行せずキャッ...
IMPL001
Spot.mark() デコレータの実装。sync/async の自動判定、 save_blob/keygen/version/content_type/ser...
TST001
mark デコレータのテスト。基本キャッシュ動作、Blobモード、シグネチャ保持 (__name__, __doc__, inspect.signature)、...
CACHEREQ001
関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。
SPEC002
`spot.cached_run(*funcs, **kwargs)` コンテキストマネージャにより、 デコレータを直接付与できない外部ライブラリの関数に対して...
IMPL002
Spot.cached_run() コンテキストマネージャの実装。 複数関数のラップ、単一関数時のスマートリターン、 0関数時の ValidationError...
TST002
cached_run コンテキストマネージャのテスト。 単一関数/複数関数のスマートリターン、型推論を検証する。
CACHEREQ001
関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。
SPEC003
`inspect.iscoroutinefunction()` による自動判定で、同期関数には同期ラッパー (`_execute_sync`)、非同期関数には非...
IMPL003
_execute_sync と _execute_async の実装。 inspect.iscoroutinefunction() による自動判定、 _Back...
TST003
同期・非同期関数サポートのテスト。非同期例外伝播、 async thundering herd、async save_sync 動作を検証する。

カバレッジ(局所)

リンク方向カバー数カバー率未カバー
SPEC → REQ 1 / 1 100.0%
IMPL → SPEC 3 / 3 100.0%
TST → SPEC 3 / 3 100.0%

アイテム詳細

REQ001 REQ CACHE ✓ レビュー済

関数の実行結果をキャッシュし、同一入力に対して再実行せずにキャッシュから結果を返せること。同期関数・非同期関数の両方をサポートすること。

親:

子: SPEC001, SPEC002, SPEC003

SPEC001 SPEC CACHE ✓ レビュー済

@spot.mark() デコレータにより、対象関数の実行結果をキャッシュキーに紐づけて保存する。 2回目以降の同一引数での呼び出しでは関数を実行せずキャッシュから結果を返す。 オプション: save_blob, keygen, version, content_type, serializer, save_sync, retention, hooks。 ジェネレータ関数は ConfigurationError で拒否する。

親: REQ001

子: IMPL001, TST001

SPEC002 SPEC CACHE ✓ レビュー済

spot.cached_run(*funcs, **kwargs) コンテキストマネージャにより、 デコレータを直接付与できない外部ライブラリの関数に対して一時的にキャッシュ機能を適用する。 複数関数を同時に渡した場合はタプルで返す。関数が0個の場合は ValidationError を送出する。

親: REQ001

子: IMPL002, TST002

SPEC003 SPEC CACHE ✓ レビュー済

inspect.iscoroutinefunction() による自動判定で、同期関数には同期ラッパー (_execute_sync)、非同期関数には非同期ラッパー (_execute_async) を適用する。 非同期関数のキャッシュ保存は _BackgroundLoop 経由の asyncio イベントループで処理する。

親: REQ001

子: IMPL003, TST003

IMPL001 IMPL CACHE ⚠ Suspect

Spot.mark() デコレータの実装。sync/async の自動判定、 save_blob/keygen/version/content_type/serializer/save_sync/retention/hooks オプションの処理、 ジェネレータ関数の拒否(ConfigurationError)を含む。

親: SPEC001

子:

IMPL002 IMPL CACHE ⚠ Suspect

Spot.cached_run() コンテキストマネージャの実装。 複数関数のラップ、単一関数時のスマートリターン、 0関数時の ValidationError を含む。

親: SPEC002

子:

IMPL003 IMPL CACHE ⚠ Suspect

_execute_sync と _execute_async の実装。 inspect.iscoroutinefunction() による自動判定、 _BackgroundLoop 経由の非同期保存処理を含む。

親: SPEC003

子:

TST001 TST CACHE ⚠ Suspect

mark デコレータのテスト。基本キャッシュ動作、Blobモード、シグネチャ保持 (name, doc, inspect.signature)、serializer オーバーライド、 version パラメータを検証する。

親: SPEC001

子:

TST002 TST CACHE ⚠ Suspect

cached_run コンテキストマネージャのテスト。 単一関数/複数関数のスマートリターン、型推論を検証する。

親: SPEC002

子:

TST003 TST CACHE ⚠ Suspect

同期・非同期関数サポートのテスト。非同期例外伝播、 async thundering herd、async save_sync 動作を検証する。

親: SPEC003

子: