- - PR -
JUnitの利用状況は?
| 投票結果総投票数:103 | |||
|---|---|---|---|
| 利用している | 60票 | 58.25% | |
| 他のテスティングフレームワークを利用している | 1票 | 0.97% | |
| 利用していないが導入予定 | 8票 | 7.77% | |
| 利用していない | 34票 | 33.01% | |
| |||
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-07-12 19:07
いつもお世話になっております。labと申します。
今回みなさんにお伺いしたいことは、「JUnitの利用状況」です。 というのも、私が勤めている会社ではJUnitでのテストを、はずかしながら一切おこなっていません。 ただテスト仕様書にのっとって人海戦術でひたすらテストを行うのみです。 このままですとテストにかなり時間もとられますし、間違いがおこる可能性も高いと考えています。 @itの記事でもJUnitは取り上げられていますし、Eclipseからでも比較的簡単に利用できるということで、今回導入を考えているのですが。。。 そこで、みなさんのJUnit利用状況はどんな感じでしょうか? (既に利用されてるかたは、導入してのメリットなども加えて教えて頂けたらうれしいです。) | ||||
|
投稿日時: 2004-07-13 06:40
私は5年ほど前からJUnitをプロジェクト内で導入しています。
そこで感じたことをいくつか。 JUnitを利用したからといってテスト工数が下がったり、間違いが少なくなるわけではありません。きちんとテストケースを設計し人海戦術で行ったほうが工数が少なく品質が向上する場合も当然あります。 JUnitの最大のメリットはテストの再利用です。が、十分に管理されていないとJUnitが現実のコードと乖離し、再利用が困難なときがあります。これについては定期的に実行してエラーが発生しないことを確認し、エラーの場合には強制的に修正を要求するなどの運用が必要です。 また、妥当なコードの網羅率を得ることができないことがあります。JUnitで得られるテストが十分なテスト設計を通じたものではなかったり、JUnitを作成する人のスキルやモラルが低かったりすると漏れがあるのが普通だからです。これはカバレージモニタを利用して網羅率を単体テストの完了基準に適用することによって解消することができます。 JUnitは銀の弾丸ではないので適用の仕方によっては導入前よりアプリケーションの品質が落ちてしまうこともあります。ですがテストの再利用に成功すれば、リファクタリングという極めて強力なソフトウェア開発のパラダイムを導入することができるようになります。 だめな側面ばっかり強調してしまいましたが、JUnitを導入し、コードの品質をよくするというのはプロジェクト全体のモラルを高めるためのすばらしくよい習慣なのでぜひ導入されることをお勧めします。 | ||||
|
投稿日時: 2004-07-13 11:59
返答していただいてありがとうございます。 やはりそういうことが起きますか。。。 記事などではメリットばかりが目に付きますが、実際利用されてる方がそのメリットを感じたか、デメリットはないのかと言うことを聞いてみたかったのでとても参考になりました。 ただ、私には会社内でJUnitなどの新技術を導入しましょうとういう権限・立場はないのです。会社内の開発手法に非常に危機感をもっていたのでこの質問をおこいました。現時点で7割の方が利用されているということで、ますます危機感が高まってしまいました。。。 今までJUnitを利用していない人を説得するのは結構大変そうです。そんなものに時間をつかいたくないとか、品質はほんとにあがるのかと言われそうな気がします。テストまで興味がないのかな〜?? | ||||
|
投稿日時: 2004-07-13 16:01
この部分、すごく実感です。 単にJUnitでテストを書くと言っても、テストを書くにはそれなりのコツや経験が必要だと感じます。 再利用性やテストそのもののメンテナンス性まで考えると、非常に高度なスキルが要求されると思うのです。 XPではこのような問題をペアプログラミングやシンプルデザイン、リファクタリング等との補完関係によって クリアしようとしていると理解していますが、実際の(XPでない)プロジェクトではこれらの補完関係が 成り立たない為、JUnitテストを作成・維持するのが非常に困難なように思えます。 特に私が従事しているような、SES・派遣のような形体では、プロジェクトメンバ全員がJUnitテストを 記述するスキルを有していることは期待できず(そもそも知らない、興味が無い、面倒くさいという人が大半ですし)、 文化として定着させるのが難しいのが現実です。。。 Anthyhimeさんのプロジェクトではどのようにして導入されているのか、もしよろしければお聞かせください。 | ||||
|
投稿日時: 2004-07-14 17:15
私はこの「カバレージモニタ」が気になります。具体的には何を使用されているのでしょうか? JUnitは日常的に使っていますがカバレッジが気になるところです。 Jtestとかは厳しく(過ぎる?)出るのですが。 | ||||
|
投稿日時: 2004-07-17 21:38
私のところはあまりふかく考えて利用していないですね。
とりあえずテスト設計書を起こして、JUnitを作ってJCoverageというカバレージモニタで計測して90%ぐらい達成したらおしまいという形です。 | ||||
|
投稿日時: 2004-07-19 21:08
そういう文化ができあがっていると言う事でしょうかね。 ありがとうございました。 | ||||
|
投稿日時: 2004-07-19 22:18
私はできればテスト専任の技師になりたい。でも実際日本ではそういう職種がある会社は少ないのか、難しいです。
ここ数年、テストの重要さがよく言われていませんか? JUnitなどのユニットテストツールを使えば楽をできるのは言うまでもないと思いますが、回帰テストを毎朝実行するような会社ってあるのでしょうか。 理想はまず仕様書からテストを書いて、コードを実装するっていうTDDが一番よいと思うのですが、テストを書く際、エクセルのシートにテスト項目をまとめるところもありますよね。これだと繰り返しテストするのが大変です。楽をするためにxUnitなどのテストコードにしたいのですが、難しい。特にUI周りのテストをうまくやるためにはどうしたらよいのでしょう? # どうでもいいことですが、仕事を楽にするためのソフトウェアを書いているはずの人が、なぜ仕事をするときに楽をしようとしないのか。別に手を抜くというわけではなく、わざわざ時間のかかる方法で仕事を進めようとするんだろう。「時間がかかり、単調なしごとをする=間違いをする可能性が高い」と思います。残業をしてでも仕事を進める姿勢はすばらしいと思うのですが、その所為で疲れから間違いを増やしていたら元も子もない。謎です。 _________________ ^^ 明日はどっちだ? | ||||
