Chat (Lingr.com)
Informaiton
Daily
Column
- MySQL日本語の旅(5/1)
- アクセス向上秘伝(5/9)
- 一風変ったHaskellλ門(6/13)
- SICP Answer Book (5/31) 問題3.26追加
Zope Solution
Extra
アーカイブ
OSS案内所
Site Info
関連リンク
こんにちは!
うっちーです。
前回は、「ベルトコンベアっていいよねぇ!」について書きました。 改善がなければ、進歩もないという考え方に、ソフトウェア開発のより多くの人に、気づいてほしいものです。
この業界に8年もいるもんだから、いろいろなテストをやってきました。 まあ、今振り返ってみると、 別の議論で、ますくさんに「それはテストじゃなくてデバッグだよ」と言われるようなものばかりですが。 少し今までのやってきたXPのユニットテスト以外のテストについて書いてみたいと思います。
1.ログを吐き出す方法。
- マクロを使用して、処理が入った関数名、出た関数名、渡された引数の中身、途中の変数の中身をログに書き出して、 確認する方法です。
- これは最初、いいなあと思いました。 今までのブラックボックスの開発ではないように見えました。
- しかし、ソースがログを吐き出すマクロに埋もれてしまい、インデントが完全に見えなくなり、 一体どういう構造になっているのか、さっぱり分からなくなって、 読み返すときは、大変でした。
- 肝心のログは山ほどたまって、見るというより解析そのものでした。 何回か読み返して、やっと意味が少しずつ分かってくる感じでした。
- 懸命に解析して、やっと問題ないことを確認できたりして、正直開発の泣き笑いのようなものでした。 時間がかかった割りに、手に入れるものが少ないので、 従って、相当な異常がない限り、見なくなってしまいました。
2.バッチ自動テスト
- テストを作って、それをテスト用のバッチのフレームワークで流して、 結果を確認するものでした。
- これも自動化できていいなあとは思いました。 テストが楽になると思いました。
- 全体で、テストを掛けようとしているから、 大きすぎるために、組み合わせのパターンが多すぎてしまい、 そのため、テストケースの漏れが非常に多くなってしまいます。
- ブラックボックステストのため、内部がわからないために、 当然、全パスを通すことは不可能でありました。
- テストは、プログラマとは、別の人でやるべきという考え方にたっているため、 プログラマと、テスターの意識のずれで、不必要なテスト、 仕様が正常でも、テスターには、異常に見えるため、問い合わせが繰り返され、 多くの時間が浪費されてしまいます。 個々のソースの単体テストがおろそかになっているため、 最後の自動テストで多くの問題が発生してしまい、その解析でさらに時間がかかってしまいます。
- 設定ファイルのパラメタを検査する場合など、 膨大な設定ファイルを作成する必要がありました。 正直、楽なように見えるが、ちょっとしか違わない設定ファイルを作り続けるのは、退屈でした。
3.自作モジュールを作ってテストする方法。
- 自分で実行モジュールを作って、テストするものです。
- テストするための仕組みを作るのはつらかったように思います。 毎回毎回状況に合わせて、考えて作らないといけませんでした。 変数によっては、直値でテストをしていました。
- 今から考えると、まんざらだめな方法でもなかったように思います。 テストがつらかったのは、 毎回毎回状況に合わせて、考えて作らないといけなかったことと、 テストするのに、テストできるコードを書かなければならないことを 見抜けなかったためだと思います。
あなたももこんな経験はないかな? 改善したいと思わないかな?
私は、行き詰ることを感じ、苦しんでいたものでした。
フィードバック下さい!
ますく: (Mon Jul 11 10:19:07 2005
)
ばたっち: (Wed Jul 13 23:41:53 2005
)
ますく: (Fri Jul 15 13:10:29 2005
)