かつのりの日記2

わんくまでは珍しいJavaを中心とした日記です

目次

Blog 利用状況

書庫

日記カテゴリ

いろいろリンク

てすと☆ふぉおす

ネタ元は、

私もテスト駆動自体は好きじゃないです。なんせつまんないです。でもユニットテストクラス自体は必要だなとは感じでいます。大規模開発になればなるほど、モジュール間の依存関係が読みにくくなります。仕様書から追っかけてもよいのですが、

  • コードを直す
  • テストコードを走らせる
  • 依存先のテストが通らない
  • 依存先の修正を行う

というような作業のスパイラルがユニットテストクラスによって簡潔にはなります。自分が理想としている形としては、

  • コードを書く
  • きっちりとしたJavadocを書く
  • Javadocを元にテストコードを書く

という作業手順が理想的です。ちなみにテストコードを書くにはコードを書くのとは別の人です。テストコードを書く人がJavadocを元にテストコードが書けない場合、

  • 設計が悪い
  • Javadocがキチンと書かれていない

のどちらかになるでしょう。テストコードが書けるようなJavadocを書くことによって、コード+コメントがそのまま品質の高い成果物となる。それが理想形ですね。ぶっちゃけそれも難しかったりするんですが。

コードレビューの話もでていますが、コードレビューは極力行わずに前のエントリでも書きましたが、ツールによって、

  • コードメトリクスの計測
  • コーディング規約のチェック
  • バグパターンの検出

をコーディング中に行われるようにしています。IDEのプラグインにこれらの機能が存在するわけですが、それらの警告機能によって検出される警告を0にするようにコーディングすることで、コードレビューは省けると考えています。警告を0にするのが目的になったり、ツールを騙すようなコーディングが行われるようになれば、さすがに途中でレビューします。

なんかぐだぐだになってしまいましたが、自分としてはテスト駆動はいらないけど、テストコードは必要かなって感じです。

投稿日時 : 2007年7月27日 0:59

Feedback

# re: てすと☆ふぉおす 2007/07/27 9:30 十郎

>Javadocを元にテストコードを書く
のJavadocに書く内容って、
どんな内容を書いてらっしゃいます?
エントリの内容には関係ない事で申し訳ありません。

# re: てすと☆ふぉおす 2007/07/27 10:09 かつのり

こんな感じっす。

/**
* 指定の配列の各要素をふがふがしてほげほげした結果を返します。<br>
* 要素数が<code>0</code>の場合は何もせずに空の配列を返します。
* @param foo
* ほげほげ配列
* @return 処理結果
*
* @throws NullPointerException
* fooが<code>null</code>もしくはfooの要素に<code>null</code>が含まれる場合
* @throws IllgalArgumentException
* fooの要素のインスタンスの{@link Foo#getFoo()}の戻り値が<code>0</code>以下の場合
*/
public FooDto[] processFoo(Foo[] foo) throws NullPointerException, IllegalArgumentException{
}

# re: てすと☆ふぉおす 2007/07/27 10:55 nagise

javadocには境界値を含む仕様が明示されているべきですからね。
javadocに書かれていない秘密の仕様とかあっては困るのは確か。逆に言えばjavadocからテストコードを書けることになるわけですな。

囚人さんとこにコメントしてますが「顧客との要件定義」と「実装の設計」のギャップがテスト駆動を阻害しているのではないかと考えています。
実装レベルでの仕様から話が始まる場合はテスト駆動はさほど難しくは無い。

# re: てすと☆ふぉおす 2007/07/27 13:43 十郎

ありがとうございます!!
なるほど~
これならJavadocからテスト書けますね。
勉強させて頂きました<(_._)>

タイトル
名前
Url
コメント