うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

最近、わたしも使用しているインタープリターのPerlの利用率が落ちています。それに比例するようにPerl関係の書籍の発売もほとんど無くなったのですが、先日、久しぶりにわたしが読みたいと思うPerlを取り上げた書籍が発売されました。タイトルは「モダンPerl」。当日は、その著者の方の話を聞くことが出来ました。
モダンPerlを書く上で一番時間がかけたのがテストの話だったそうです。

モダンPerl入門

基本的なテストの充実が一番CPが高い。

マネジャーは
テスト!=追加作業と考えがち
上のレベルから無理難題を振りかけられないために、エンジニアがまともなコードを書くためにテストが必要。

テスト
デバッグ > 対処療法。
予防させる方法としてテストが必要。
行程を減らす意味でもテストが必要、コストの削減。

現実的な落としどころ
80%を最大限、テストする。

テストの内容
  • 手動テストのデメリット
    • 手順をExcelに書くのではなく、再現性を行うこと。
    • 前提として人は間違うもの。手動テストは良くない。テストのクオリティの維持。テストの作業者によって左右されないことが必要。
    • テストのノウハウが口伝になっていて蓄積されないのが現状で、これは問題がある。
    • 作業をする人の時間を食う、工数の増加。
  • 新しいテスト
    • 自動テスト
    • 一度自動化すればコストはかからない。コマンドを実行した時点でテストを実行してしまう。
    • バグを見つけたら蓄積する。同じバグは起こさない。
  • テストの準備
    • JUnit
    • xUnit
    • などのフレームワークがある。
    • フレームワークがあるとローカルルールに縛られてしまう。フレームワークを現実にあわせるのは面倒くさい。
      テストは潜在、機能することに最大の意義がある。状況に対して柔軟な対応ができること。

Perlはどうでしょう?と提案。「Perl=CGI」と言えたのはは5.5の時代まで(1998)の話し、今のPerlは大きく進化しています。

テスト言語としてのPerl
テストフレームワークが言語として含まれている。
makle testコマンド
proveコマンド
Perlのコミュニティは異常なほどテストが好き
いろんなプラットフォームでテストをしているデータがCPANにあがっている。
土壌がある。様々な環境で動作テスト済み。
外部コマンドとの連携
テスト
my $out = qx/
CPAN
世界中のPerlの技術者の集合体
CPANから引いてきて、手早く様々なものをテストできる。

テストファイル
シンプルで有れば有るほどよい。便利だけど難しい、となると人は利用しなくなる。

TAP
2つのTAPで行える。

Apache::test
CPANからてにはいる。
すべて面倒を見てくれる。
複数の開発者がいてもコンフリクトすることが防げる。
サーバーが自在に立ち上げられるのが便利。
mod_perlアプリもOK。
PHPもOK。TAPの出力さえ有れば、何でもOK。

まとめ

請負の仕事は「理想は理想」
さまざまな環境が混じり合って製品(アプリケーション)が作られる。
現実的な落としどころとしてPerlは使える言語。

コミットがあるごとにテストを行う。
バージョンコントロールされているのでどこでエラーが起きたかがわかる。

テストの重要性
簡単にできる。>テストが苦にならない。>空いた時間を別に使える。

Japan Perl Association
ジャパン パール アソシエーション
大人のModern Perl
大手企業も参加する。
4月から開始
YAPC
会員募集中だそうです。

Developers Summit 2009の備忘録として、出席をしたセミナーを記録にとどめておきます。セミナーの写真撮影が禁止でしたので文字だけの備忘録となっています。

2月 21st, 2009

Posted In: Developers Summit 2009

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です