最近、serverspec – Home中心に会社で研究会をやっているわけですが、メンバーから「これも面白そうです」と紹介されたのが、コレ。
Infrataster – Infra Behavior Testing Framework #oedo04 // Speaker Deck
気にしないで読んでたんだけど、これ全編英語なのね。ただ、中二病まっしぐらの全編英語のオレの資料とはちがうので、ただしいスライドを見ている気がして穴に帰りたいです。
さて、何ができるものかというと、「基盤の振る舞いを、サーバの外からテストする(14of37)」ツールです。テスト局面で言うと「結合テスト」なんて呼ばれるときに使うと便利そうなツールです。
proxy や ssh の portforward も駆使して、ゲートウェイの先のサーバへのアクセステストもできるようです。そして、ちゃんとそのサーバが http などでアクセスして、正しい返り値を戻してくれるかどうかを確認することができそうです。
開発者の@ryot_a_rai氏は、単体テストでの自動化を目論んでいるようですが、使い方によってや、今後の拡張性を鑑みると結合テストの自動化に良さそうな気がしてなりません。先のスライドにある通り、iptables のテストは外からしかできないので、そう言った単体テストにピンポイントで効果あるのは勿論ですが、複数のゲートウェイをホップして、ネットワークルーティングを確認するようなテストなどは、個人的に結合テスト範疇です。
こうなってくると、内部から基盤テストをするserverspec と、外部から基盤テストをする infrataster を組み合わせていくと、盤石な基盤テストツールを準備できるのではないかと。ここまでくると、インフラエンジニアの TDD待ったなしのような状況になってくると…
と言うことで、infrataster も組み入れて、ちょっと会社で研究してみようかと思います。
ところで、serverspec の @gosukenator 氏と @ryot_a_rai 氏の二人とも レシピ検索No.1/料理レシピ載せるなら クックパッド で働いてますね、何の因果ですかね。
2014/05/08 7:30 追記
blog書いたよってtweetしてみたら、開発者の@ryot_a_rai氏から、次のようにお返事いただきました。
結合テストやブラックボックステスト目的と言うことで、理解は正しかった模様です。みなさまも、ぜひ。
@sho7650 ブログて取り上げていただきありがとうございます。sho さんのおっしゃる通り、Infrataster は単体テストではなく、インフラの結合テスト、ブラックボックステストを目的にしています。ぜひご活用ください!
— Ryota Arai (@ryot_a_rai) May 7, 2014
see also: https://twitter.com/ryot_a_rai/status/464043806497595392