@yandoさんによる、8時間耐久シリーズ第三弾、「PHPUnitの教室」に参加して参りました。
8耐シリーズ第一回、第二回のレポートはこちらです。
今回のPHPUnitは、プログラムの開発を助けてくれるユニットテスト、単体テストをphp環境で実施するために使うことのできるものです。
教室では、そもそもなぜユニットテストが必要なのか、ユニットテストがない開発はなぜ石器時代的なのかという話から初めていただき(自分の開発スタイルを振り返り、そういう環境でよく頑張ったな俺・・・と思いました)、意義、意味から理解できるように始まりました。
いつも思うのですが、僕の技術的理解度のところまで下りてきてくれるというのは、本当にありがたいことですm(__)m。
その後、PEARの導入からPHPUnitインストールの環境構築を行いました。
(ここでは、MAMP Proが入っている僕の環境で、色々と想定通りにいかなかったところを、安藤さんや他の参加者の皆さんに手伝ってもらいましたありがとうございます。環境構築は最大のハードルのうちのひとつだと思うので助かりましたm(__)m。)
午後からはテストケース(プログラムが意図通りに動いているかを確認するためのプログラム。ユニットテストの肝の部分)の書き方を、実践含めてやりました。
その後、クラスからテストを生成する方法(テストケースはもちろん自分で書かないといけないですが雛形がごそっとできます)などの便利機能にも触れて必要な環境を作って行きました。
最後の方はJenkinsについて取り上げてもらいました。
実際の現場ではテストがどういうふうに受け取られているのか・活用されているのかということも随所で語られたので、いろんな意味で視野が広がりました。
感想:テストを伴うプログラム開発は生き物づくり!
これまでのスタイルで僕が作ってきたプログラムですが、プログラムのことを理解してちゃんと動いているかどうかを把握しているのは僕だけでした。
テストの導入によって得られるのは、プログラムがプログラム自身のことを理解し管理し不具合があれば自覚できる、という自律的なシステムなんだと思いました。
もはや生き物ですだなぁ、人間がそんなすごいものを作れるんだなぁというか、そういうものを作っている人達がいっぱいいて、そうやって開発・運用されている色んなシステムが世の中を支えているなんて、今は本当に二十一世紀なんだなぁ!と思いました。
複数人・複数社での開発でも役に立つということですが、僕にはこの点が一番感動的でした。
今後やっていきたいこと
WordPress!!
なんといっても、WordPressでユニットテストを走らせる方法を模索します。
テーマやプラグインの作成時に、テストもするという練習をしつつ、僕が開発・運営しているころぐのテストをどんどん書きながら、安心してアップグレードできるような体制を作りたいです。
テスト駆動開発!!
なんか言葉の響きが格好いいので。。^^;
あと、テストをもとにクラスや関数を作ること、テストのことを考えながらクラスや関数を作るという過程で、だんだんコード自体の質が上がっていくという話も聞いて、興味津々でございます。
安藤さん、今回もほんとうにありがとうございました。ものにするのでまた教えてください!
コメント
コメント一覧 (1件)
[…] – 3/3, by 安藤 祐介. その他8時間耐久PHPUnitの教室 参加者の皆さんの記事「8時間耐久!PHPUnitの教室」に参加してきた!!ユニットテストだよぉ! &… 株式会社ダイレクトサーチジャパン: […]