0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

静寂の中の正しさ:テストが要らなくなる日

Posted at

"沈黙はエラーがないことではない。証明された構造が、声を上げる必要を失ったのだ。"

テスト駆動開発、テスト自動化、CI/CD——
私たちは数十年にわたり、「壊れていないことを確認する」ための儀式を続けてきた。

だが、SPARK Adaはそこにまったく別の道を提示する
**「テストしなくても正しさが保証される構造」**という、静かで強固な開発パラダイムだ。


テストとは「信じるしかない」行為である

テストとは本質的にサンプリングである。
ある入力に対して期待される出力が出ることを確認するが、それ以外は保証されない

SPARKはその発想を根底から覆す。
すべての入力に対して、すべての仕様が守られることを証明する


正しさが証明できる関数の例

function Max (A, B : Integer) return Integer
  with
    Post => Max'Result = (if A >= B then A else B);

このPost条件は、「Maxは必ず2値のうち大きい方を返す」という意味論的仕様である。
GNATproveがこれを通過するということは、Maxは“設計通り”であることが数学的に確定しているという意味になる。


テストは減り、設計が増える

テストが不要になるというのは、「確認しないでいい」ということではない。
それはむしろ、仕様と制約を構文として記述し、すべてを設計段階で検証するという意味である。

テストを書かないのではない。
テストの代わりに仕様を書く。
それがSPARKのスタイルだ。


テストから検証へ:静的保証の開発体験

  • テスト:動かしてみる
  • レビュー:人が読む
  • デバッグ:バグを探す

→ SPARK:仕様を書く → 検証ツールが証明する → バグが存在できない

この静かな開発体験は、“壊れないことを証明する構造を設計する”という新しい美学である。


結語:沈黙は、正しさが語られる世界

動かしてみなくてもよい。
試してみなくてもよい。
テストを書かなくてもよい。

それは怠惰ではなく、証明によって沈黙を成立させた構造が、語る必要を失ったからである。

"コードが沈黙しているのは、語るべき矛盾が存在しないからだ。"

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?