Skip to content

Oracle テスト

Oracle テストは、実 Excel build から取得した値と Formulon の値を比較するものです。互換性の主張に対する実証層 ─ ドキュメントが言っていることではなく、対象ワークブック・ロケールで Excel が実際に何を返すか を基準にします。

用語: oracle データ

既知のワークブック・profile・build に対して Excel が返した値を取得したもの。テストはそのワークブックを Formulon で再計算し、取得済み値と比較します。食い違ったときは Excel が正です。

用語: 受け入れ済み差分(accepted divergence)

Formulon が意図的に Excel と違う挙動をするケース。理由(セキュリティ、決定論的挙動、Excel 側の bug 修正など)と last-verified Excel build とともに記録されます。「Excel-like」とぼかさず、明示的に管理します。

なぜ oracle データが必要か

スプレッドシートの挙動には未文書の細部 ─ 丸め境界・TEXT() のロケール固有桁・DATEVALUE() の 2 桁年処理・空値の coercion・merge セルと spill 衝突の相互作用 ─ が多数あります。oracle fixture はそれらを review 可能なデータに固定し、回帰をデプロイ前(PR 時点)に検出できます。

失敗をどう読むか

通常、失敗は次のいずれかです。

種類意味典型的な対応
Formulon の bugengine が誤った値を返したengine を修正し、回帰用 fixture を追加
profile drift対象 Excel build が変わったoracle データを再取得し、変更を記録
volatile な fixture取得時に NOW / RAND / network を含んでいた入力を制御して取り直す、または volatile マーク
受け入れ済み差分意図的に Excel と異なるdivergence リストに理由 + last-verified build を記録

データの提供

各自の Excel 環境で oracle capture flow を実行することで、ロケール coverage が増えていきます。同じワークブックを win-365-ja_JPmac-365-ja_JP ほか複数の profile で取得すれば、engine が検証できる範囲が広がります。capture flow は Oracle 提供 を参照。

次に読むもの