« Heroku Postgresのメンテナンス時間が選べるらしい | メイン | ScalaMatsuriに行ってきた話 »

2014年8月25日 (月)

Herokuのkensaがおもしろい

ども。
最近Herokuの提供するkensaというツールをちょっと触ったんですが、これがなかなかユニークな代物だったんでちょっと紹介してみたいと思います。

★ kensaとは

HerokuのAddon Provider向けに提供されているAddonインターフェース作成の補助ツールです。
Ruby製のコンソールアプリなのでgem installでインストールすることが出来ます。
おそらく名前の由来は日本語の「検査」で、文字通りAddonインターフェースの実装が正しく行われているかどうかを検査してくれるものです。

Heroku Addonの多くは実体は独立したWebサービスです。
それをAddon化するためにはサービス側でいくつかのHerokuが規定するAPIを実装する必要があります。
例えば

  • heroku addons:add コマンド実行時に新しいユーザを作成しその情報を返す
  • heroku addons:update でプラン変更を行う
  • Heroku Dashboardからシングルサインオンで管理画面を表示する

などです。
これらはすべてWebAPIとして実装する必要があるわけですが、kensaはその実装URLに対して様々なテストを実行してくれます。

  • HTTPレスポンスが200 OKで返ってくるか?
  • Basic認証が正しく実装されているか?
  • レスポンスボディがJSONになっているか?
  • JSON内に必要な情報が含まれているか?

などなど。

これ、つまりテスト駆動開発で最初からテストが揃っている状態で開発できるということなんです。
もちろん、サービス側のブラックボックスである実際のユーザ登録などのバックエンド処理はkensaでテストすることはできないわけですが、まだ何も実装していない状態で、kensaのテストが404 Not Foundで落ちるのを確認するところからはじめて、すべてのテストをクリアするまで実装を進めていくというのはなかなか面白い経験でした。

実際にテスト駆動開発を行っている場合でも、先にテストだけが全部揃っているという状況はなかなか無いでしょうしね。(^^;


★ なんか色々応用出来そう

実際に試してみて思ったのは数あるテストをクリアしていくのはなんかゲームみたいで楽しいな、ということです。

個人的には新人研修の最後や入社試験なんかでこうした課題があると面白いんじゃないかと思いました。
他にもプログラミング教育系のサービスに取り込んでも面白いでしょう。
所用時間や実行回数を計測してランキング化するゲームにするのもアリです。

ていうか、むしろ自分で作りてーとちょっと思いました。(いやマジで)(^^;

ちなみにkensaの使い方と作るべき課題の説明はこちらです。

https://devcenter.heroku.com/articles/building-a-heroku-add-on

バックエンドの処理を実装せずにkensaに合格するだけのものを作るだけなら、速い人なら1時間くらいでクリアできると思います。(Herokuまったく使ったことが無いと実装すべきもののイメージがわからなくて辛いと思いますけど)

社内で新人の教育なんかにも関わる立場の人であれば一回触ってみると面白いかもしれませんよ(^^;

コメント

コメントを投稿

採用情報

株式会社フレクトでは、事業拡大のため、
Salesforce/Force.comのアプリケーション
開発
HerokuやAWSなどのクラウドプラッ
トフォーム上でのWebアプリケーション開発

エンジニア、マネージャーを募集中です。

未経験でも、これからクラウドをやってみた
い方、是非ご応募下さい。

フレクト採用ページへ

会社紹介

株式会社フレクトは、
認定コンサルタント
認定上級デベロッパー
認定デベロッパー
が在籍している、
セールスフォースパートナーです。
heroku partnersにも登録されています。
herokuパートナー
株式会社フレクトのSalesforce/Force.com
導入支援サービス
弊社の認定プロフェッショナルが支援致します。
・Visualforce/Apexによるアプリ開発
・Salesforceと連携するWebアプリ開発
も承っております。
セールスフォースご検討の際は、
お気軽にお問合せください。
Powered by Six Apart