目次

ニュース

日記カテゴリ

書庫


中さんのセッションの復習です!実に1ヶ月ぶり。空きすぎたorz

今までのわんくま勉強会復習。
わんくま同盟大阪勉強会#1 Vol.1
わんくま同盟大阪勉強会#1 Vol.2
わんくま同盟大阪勉強会#1 Vol.3


わんくま同盟

忘れそうなので、わんくま同盟とはなんぞや?公式HPより
わんくま同盟は、コミュニティで活動している者たちの集団です。 縦の繋がりはなく、横の繋がりで成り立っています。 メンバは全員平等であり自由です。
Microsoft MVPな方々が多数参加しているコミュニティです。
つい先日私kokaも参加させていただく事となりました。


Visual Studio 2005を使ったテストのデモ

実際のデモ内容はわんくま同盟にあるPPTを参照w

で、ここでは単体テストを自動化する目的、問題点などを考えたいなぁと・・・えぇすでに勉強会は前振りと化してます。すいません中さんm(_ _)m


自動化する目的・問題点

目的。それはもう「何回も実施しなくてはならないテストを確実かつ楽に行うこと」でしょう。

では「何回も実施しなくてはならないテスト」ってなんでしょう?
ここではテストスクリプトを一切変更せず実行するって条件付きとします。変更しなきゃならないと「楽」でなくなるし。
そうなるとそういったテストってそんなに無いような気がします。
共通で利用するクラス(たとえばデータベースへのアクセスを提供するクラスなど)であれば、何回も実施しなくてはならないと思います。
実際にデモ終了時にそういった提案がありました。「全てのソースについてテストを自動化する必要はないでしょう!共通ロジックだけでいいかもね。」と。
しかし「単体テスト」であるならば、そのクラスの中で完結するテストを実施すれば良いわけで、それを複数回実施する必要はそんなにないと思います。データベース周りの環境が変わった。といった理由で同じテストをする事はありますが、そんなに何回もある事ではないですし。

となるとそのクラスを実際に利用するクラスでテストを自動化したら?ってことになりますが、そうなると今度はテストスクリプトを作成する際の「コスト」に見合った効果を期待する事ができるのか?っていう疑問が出てきます。テストスクリプトを作成する量も増えるので軽視できなくなるでしょう。

VSSやCVSによるソース管理をしている場合、「エラーの無い状態でチェックインする」みたいなルールがあるなら、テストを自動化できていれば非常に楽だと思います。ただし、ソースの変更とともにテストスクリプトをメンテする手間が発生します。コーディングのやり方次第では1度作成したテストスクリプトをめったな事で変更する必要をなくす事は可能でしょうが、機能を実装する度にその機能用に追加する必要はあるでしょう。

さらにそのテストスクリプトの動作をどのように保障するのか?って事が気になります。ソースとテストスクリプトを作成する人が同じ場合、手動でテストするのと変わりがない気がします。バグ発生の代表例である「思い込み」がテストスクリプトに入り込んだ場合、それはまったく意味を成さないものになります(TAT)
となるとソースとテストスクリプトは別の人が書く!としようとしたらPGにかかるコストが極端にいうと倍になってしまいます。。。


結論

早く上位エディション以外にも付けてくださいw
そしてテストを自動化するコストに見合ったものをみんなして検討しましょう!そうすればシステム構築の見積もり時にテスト工数をその分上乗せする事も可能になるでしょ!もちろんその上乗せ分システムの信頼性も向上する!という価値も付けたうえで。
投稿日時 : 2006年8月22日 23:33
Feedback
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    中博俊
    Posted @ 2006/08/23 7:56
    実際にフォーラム開発しているうえでは、ストアドの変更の予期しない戻り値の取得なども検知できています。
    あとは、変更した箇所が思ったようにエラーになるかなど
    いろいろ使い方によるってのが正直な感想です。
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    中博俊
    Posted @ 2006/08/23 7:57
    >思い込み
    そうなんです。
    なのでやはりそこはコードレビューしかないのです。
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    黒龍
    Posted @ 2006/08/23 14:58
    使ってみた感想ですが工数はかなり激しく増加しますね。そうホイホイと変更することのないフレームワークはかなりうまく行ったとおもうのですが普通の業務ロジックは確実に工数増加しますね。実際問題としては何をどうテストするかの方が難しかったりします。
    個人的な感想ですが共通ロジックのデバッグ&仕様の明文化には非常に有用だが業務ロジックのテストには微妙といった感じです。
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    koka
    Posted @ 2006/08/23 20:25
    中さん、黒龍さんコメントありがとですm(_ _)m

    中さん
    >なのでやはりそこはコードレビューしかないのです。
    ですよねぇ。常にPGが複数人いるプロジェクトならば相手のソースに対してテストを作成してかつお互いのコードレビュー!って感じになるんですかね。こっ工数が(TAT)


    黒龍さん
    >個人的な感想ですが共通ロジックのデバッグ&仕様の明文化には非常に有用だが業務ロジックのテストには微妙といった感じです。
    貴重な体験談をありがとうございます。

    >実際問題としては何をどうテストするかの方が難しかったりします。
    そこはまぁ今までどおりテスト仕様書ないし計画書を起こすのが遠回りのようでやっぱり近道なのかもしれませんなぁ。ハァ~

    中さんの
    >いろいろ使い方によるってのが正直な感想です。

    ってどおり使いどころがさまざまっぽいのでこれから使えるところでみっちり使ってノウハウを作らないとだめですね。
    ・・・単体でも販売してないものですかねぇ(涙
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    中博俊
    Posted @ 2006/08/24 23:35
    わんくまフォーラムは1機能ずつビルトインしているので、業務ロジックのテストにバリバリ使って、既存シナリオに影響していないかの確認をしておりまする
  • # re: わんくま同盟 大阪勉強会#1 Vol.4
    koka
    Posted @ 2006/08/25 0:05

    中さん
    それはぜんぜんありですね。開発中はもちろんリリース後も改訂後の確認にも使えますね。

    今やってるシステムの改訂作業でも自動テストがあればどれだけ楽だかって実感してます。1年前にリリースしたシステムの詳細なんて思えてないし、テストスクリプト(資料含む)なんて無いのでかなり「感」で影響範囲を調べてますよ(TAT)
タイトル
名前
Url
コメント 

Blog 利用状況

絡んでるところ