2013年4月22日月曜日

ビューティフルテスティング読み終わった

O'REILYから出版されているビューティフルシリーズの、『ビューティフルテスティング』を読み終わりました。1ヶ月半くらい読んでました。

この本は、技術書かと思ったらエッセイでしたね。ちょっとエッセイはびみょうに苦手だということがわかりました。飛ばし飛ばしで読んでました。

おもしろかったのは、10章「乱数ジェネレータのテスティング」ですね。これがお目当てでした。これでわかったのは、どの分布法も統計をとればテストできるが、100%合格するテストは書けない、ということですね。
統計も、対象の分布法によって使う技術が専門的なレベルで異なるので、汎用的に「これを知ってれば乱数のテストができる」というものではなさそうです。100%合格するテストが書けないというのは、許容する範囲を広げればもちろん合格できるのですが、それをやると信憑性が低くなってしまう、とのこと。複数のテスト技法を組み合わせて、合格率を上げるのがいいようです。

また、この章で書かれていた以下のフレーズがとても気に入りました:

「それでも、ライブラリからRNG(Random Number Generator)を使う場合、ライブラリを信頼していたとしても、いくつかのテストを自ら作成するとよいでしょう。重要なのは、ライブラリそのものの質をテストするだけではなく、ライブラリに対するユーザーの理解もテストするという点です。」

これは、乱数に限らず、あらゆるライブラリを使用する場合にも言えることかなと思いました。
良いライブラリはもちろんテストされていて、オープンソースであればテストコードも公開されていますが、それを信頼するだけではなく、「自分はこんなケースでこういう使い方をしようと思っていて、いまこういう結果が出ている」というのを、自分のプロジェクトのために恒久的に残すのです。そうすることで、そのライブラリの挙動が変わったときに、ユーザーが検知できるようになるので、テストが通る限りにおいてその使い方がいつでも正しいということが保証されます。
この考え方は、とても大事だと感じました。

最後に、本書は私の28歳の誕生日プレゼントとして、Amazonのウィッシュリストから送っていただきました。このすばらしい本を送っていただけたことを感謝します。


バイクの免許とった

すっかり忘れてましたが、先々週末に自動車学校をようやく卒業して、先週免許とりました。普通自動二輪です。400ccのバイクです。

自動車学校は、たまに変な教官もいて難癖つけられたり、ロビーは独房のような雰囲気だったりはしましたが、バイクに乗ってる分には楽しかったです。自動車学校は苦行なので、もう行きません。

納車がちょっと遅れていて、先週末の予定だったのが、今週末予定になってます。
TODO : 明日、バイク屋に電話して土曜日とりにいっていいか聞いてみます。