- PR -

現場でのNUnit/JUnitの使用

1
投稿者投稿内容
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-24 17:31
実際、現場で実際NUnit/JUnitを使用しているかどうか
お尋ねしたいのですが
(私はほとんど使用した事がないのですが)
ある現場では導入したいと検討しているのですが。。。。
jama
常連さん
会議室デビュー日: 2006/09/12
投稿数: 45
投稿日時: 2008-03-24 19:06
JUnit/NUnit双方使用しています。
JUnitは規定で決められているため、仕方なく使用してましたが、
今は、積極的に使用しています。
しかし、全てのクラスに必要とか、納品時に全てのテストがOKになる必要があるとか、
規定されると、開発の足かせになります。
(DBのデータが変わってテストがNGになったりする)

プログラマが自主的に使用する場合はメリットがあると思いますが、
プログラムしない方が「使え」と言うのはデメリットが大きいかと思います。
テストプログラムの維持に多くの工数を使いますので。
cordwainer
常連さん
会議室デビュー日: 2007/04/21
投稿数: 34
投稿日時: 2008-03-24 22:35
JUnit / NUnit ...ではありませんが、ご参考までに RUnit を使った時の事を...。

xUnit は利用する価値はあると思います。
コンポーネントテストとして主に利用していましたが、スモークテストとしても
利用していました。
しかし、きちんとテスト設計しないと、テストは通っても、実際に動かしてみたら、
まともに動かないという事も。
また、一部の人は、仕様書/設計書代わりに使おうとしていましたが、
そこまで至りませんでした。
# 個人的には仕様書/設計書の代わりにはならないと思います。
# ドキュメントの一部にはなりますが。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2008-03-25 08:58
JUnit/NUnitは繰り返しテストを行うことを簡単にしてくれるので
それが見込まれているのなら有用と思います

ただ初回の教育、実装には当然時間が掛かるので
それを見込んだスケジューリングをしないと
痛い目を見ます
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2008-03-25 09:11
適用しやすい場所としにくい場所があるので、安易に一律適用しようとはしない方がよいでしょう。
引数が少なく、戻り値のオブジェクトも複雑ではない共通ライブラリ部分のメソッドなどは非常に適用しやすく、JUnit導入は効果があります。
DBの関係する場所はDBUnitなどのツールが使えますが、手間がやや大きい。
WebシステムのMVCでいうView部分などは自動テスト作成が非常に手間なうえ、
デザイン変更は比較的入りやすく、自動テストの維持が非常に難しい。

自動テストの制作コストも繰り返しのテストでペイすると思われますが、どこで原価が回収できるかは考慮した方がいい。
特に、自動テストは仕様の修正とともに、自動テストも修正し続けなければならないので、
初回生成以後もメンテナンスコストがかかることを忘れずに。

まずは適用しやすい部分に適応してみて、様子を見つつ導入箇所を広げる方がよいのではないでしょうか。

indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-03-25 13:20
皆さんありがとうございます。参考にさせていただきます。

jamaさんへ

  「プログラマが自主的に使用する場合はメリットがあると思いますが」

   そうですね。テスト時モチベーション下がりやすいですから、自主的は必要ですね
   あと工数的にも考慮が必要ですね。

cordwainerさんへ

  「コンポーネントテストとして主に利用していましたが、スモークテストとしても利用していました。」

   コンポーネントあたりはメリットあるそうですね。
   スモークテスト(言葉を知りませんでした。最初、WhiteBoxとBlackBoxのあいだの事かなと。。(笑))

あすかさんへ

「JUnit/NUnitは繰り返しテストを行うことを簡単にしてくれるので 」

   やはり繰り返しがキーワードですね。単発はNGて事ですね。


nagiseさんへ

   「適用しやすい部分に適応してみて、様子を見つつ導入箇所を広げる方がよいのではないでしょうか」

   そうですね。徐々にした方がよいですね。(今仮運用していて、来年の4月に向けてさらに
   拡張する予定なんですが、TestFirstみたいな言葉だけ先行している状態です)
まりも
ベテラン
会議室デビュー日: 2006/08/19
投稿数: 77
投稿日時: 2008-03-25 23:14
一応周辺で推奨されていますが、
あまり使っている人はいませんね。

使い慣れて来ると、使わない開発は考えられない感じですが。


自動でテストを行うことを前提に、細部まで手順を考え直し、
テスト駆動開発などで効率化をはかれば効率もむしろ上がりますし、品質も上がります。

が、できる限り今迄のやり方を変えずに、テスト部分のみを自動化するなどしたら、
効率は落ちる一方で、
それで無理に表面だけ自動化しただけだと、
品質も落ちますし、というか何の役にも立ちません。


まあ総じて簡単にはいきませんが、
工夫してうまいこと使いこなせれば、非常に役に立ちます。

1

スキルアップ/キャリアアップ(JOB@IT)