プログラムを書いていると、素直に実装した結果として毎回特定の条件が満たされているけど、本来それは誰も保証してないという場面に出くわすことがよくある。保証されていない偶然の動作に依存することで生じるバグというのはかなり多い。 例えば最近では、ドラゴンボールZ ドッカンバトルというゲームで、2回SQL文を実行した結果が同じ順序で並んでいるという誤った期待をしているコードがあったせいで、ガチャの確率表示がめちゃくちゃになってしまって、運営が確率操作しているのではないかという騒動が発生したことがあった [1]。データベースでは空のテーブルにデータを追加してその直後に読み返すと、データを追加した順番に結果が返ってきたりしがちなので、問題のコードはきれいなテスト環境では偶然うまく動いてしまったのだろうと思う。 上のようなバグを防ぐために最近よく使われているのは、本来保証しないところをわざと壊すという方
![意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama](https://cdn-ak-scissors.b.st-hatena.com/image/square/a8229fdffe771ae3f815696758fecf886a067002/height=288;version=1;width=512/https%3A%2F%2Fassets.st-note.com%2Fproduction%2Fuploads%2Fimages%2F903591%2Fprofile_3cbfe950fdd5a01d7eb0be427dc798a5.jpg%3Ffit%3Dbounds%26format%3Djpeg%26quality%3D85%26width%3D330)