テストケースを少し調べた

社会人になったら、技術を磨いて独り立ちできるようになってやる!とか思ってたんですが、入社一週間ですでにくじけそうです。

無理矢理こうして時間とらないと、あっという間におっさんになっちまうなと危機感を覚えているので、どんなに遅くても一週間に一度はブログを書こうと思う。

 

そもそもなんで、テストケースについて勉強しようと思ったかというと、

去年の10月、つまり半年ほど前に、今の会社のハッカソンイベントに紹介されまして、サービスを開発していたんですよ。

事前連絡があまりにも拙いので(言い訳)、なんにも用意せずに、なんとなくこんなやつを作ろうと思って参加しました。

 

で、早速開発をしようと思ったのですが、サーバもなんにも用意していなくてですね、ハッカソンの半分の時間をサーバの準備に使うとかいうよくわかんないことしてました。

でも、まぁサーバ準備しながらいろいろとアイディアが固まって来たので、実装にはそんなにじかんはかかりませんでした。プレゼン1時間前には全ての機能を実装した訳じゃないんですが、概要は十分に説明出来るほどに完成していました。

 

しかし、パワポを書き終わり、最後にもう一度動くかどうかチェックしてみると、APIがエラーを吐いているとかいうよくわかんないことになっていました。

(ある2つのAPIを使おうと思ったのですが、その内の一つが僕の用意したサーバだとかなり不安定な挙動を示していたのを放置していたんですね。)

 

そして、プレゼンはなんとなく終わり、総評の後に座談会で社員の方に今日はこんなことあったんですよー、とかなり申し訳なそうにいったところ、

「社会人になる前にテストケースくらいパパッと書けるようになっておけよ」

と、割とまじめに怒られまして、卒業研究でJavaを使ったんですが、ブラックボックステストに関してはまじめに行いました。

 

その後、卒業まで結局自分の勉強をすることなく、今日に至る訳ですが、テストケースについて少し調べてみました。

 

出力と入力が仕様通りに動くかを調べるブラックボックステスト

制御フローがしよう通りになっているかを調べるホワイトボックステスト

なんかがあることがわかりました。

 

テストケース自体は書いた事はあるんですが、いまいち腑に落ちなかったので、テスト自動化と調べると、単体テストには http://www.phpunit.de/manual/3.6/ja/ なんて物があるとしりました。

phpで少しだけ動かしてみたんですが、結構面白かったです。
再来週にはあるサービスを本格的に作っている頃だと思うので、ぜひ実際の試用感とかを書いてみようと思います。

また単体テストについては、テストケースを書く事はなんとなくわかるんですが、

webサービスにおける結合テストってどうやってやんだろ、手で全部クリックとか無理じゃん、とか思ってもう少し調べてみたところ、Selenium http://thinkit.co.jp/free/article/0705/2/1/ なんてものがありました。

こいつはwebブラウザを使って自動テストを行ってくれる奴らしいです。

こいつも再来週あたりから使うようになるかと思うんで、一応メモ

 

今、webサービスを作っているといったのですが、自分は本当にサーバサイドphperなんだと自覚している今日この頃です。DBは少しだけ、サーバは普通に分かんない状態、フロントサイドのflash,JS,ajaxなんかはもう意味不明です。

 

ただ、このサービスをPC版だけではなく、ネイティブ化もしようぜ!という感じになって来たので、DBの同期だとか、データの取得用のAPIを書くだとかもやることになりそうで実はなかなか楽しみです。

(自分ってホントなんにも出来ないなーと実感します。)

 

あ、vimの設定をしよう