2008-09-19 10 views
4

私の友人は、自分の職場でTDDとピンポンペアをする方法を説明していました。彼は「敵対的」なアプローチを取っていると言いました。つまり、テスト担当者がキーボードを実装者に渡すと、実装者はテストパスを行うために、最も単純な(そして時には間違ったことを)簡単に実行しようとします。TDDとの対立/ナイーブなペアリング:どの程度効果的ですか?

例えば、彼らは項目GetName()メソッドと「サリー」、GetNameメソッドの実装のためのテストチェックをテストしている場合は、単純に次のようになりますでしょう、もちろん、パス

public string GetName(){ 
    return "Sally"; 
} 

テスト(naively)。

これは、実際の動作やコンポーネントの期待状態をテストするのではなく、特定の確定値をチェックする素朴なテストを排除するのに役立つと説明しています。また、より多くのテストを作成し、最終的にはデザインを改善し、バグも少なくします。

それは良いとは言いましたが、彼との短いセッションでは、それ以外の場合よりも1回のテストを繰り返すのに時間がかかり、余計な価値が得られていないようでした。

このアプローチを使用していますか?もしそうであれば、それは報われましたか?

答えて

0

チームの性格に基づいています。すべてのチームはメンバーの合計である個性を持っています。優位性のある空気を使って受動的に積極的に実装することを怠るように注意しなければなりません。一部の開発者は、このフラストレーションが失敗したチームにつながる

return "Sally";

のような実装でイライラしています。私は不満の中にいて、それが報われるのを見なかった。よりよいアプローチは、より口頭でのコミュニケーションであり、テストのよりよい実装方法についての提案です。

+0

私はこの人のチームに少なくとも怒っている人を見ることができますが、彼らは友人であり、彼らはスマートな尻ではないことに気付きました。それで、彼らのためにうまくいきました – chadmyers

1

私はこのアプローチを使用しました。すべてのペアで動作するわけではありません。一部の人々は自然に抵抗し、正直なチャンスを与えません。しかし、それはあなたがTDDとXPを適切に行うのに役立ちます。あなたは、あなたのコードベースに機能をゆっくりと追加しようとします。あなたは満足するためにたくさんのコードを必要とする巨大なモノリシックなテストを書こうとしません。あなたは簡単なテストの束をしたい。また、ペアを定期的に前後に移動させて、両方のペアが使用されるようにする必要があります。敵対的なペアリングで、あなたは両方をやっている。シンプルなテストは簡単な実装につながり、コードはゆっくりと構築され、両方の人がプロセス全体に関わっています。

0

私はそれを好むいくつかの時間 - しかし、そのスタイル全体を使用しないでください。時々ペースの素敵な変化として行動します。私はいつもスタイルを使用したいとは思わない。

初心者でもテストが実装をどのように動かせるかを紹介するのに便利なツールです。

2

非常に効果的です。

これは、他のプログラマーに必要な正しい機能を書くようにするために、どのテストを書くかについてより多くのことを考えさせるようにします。

あなたが頻繁に

それはかなり疲れると時間がかかることがありますが、私はその珍しいが、私が持っている任意のコードに戻ってきて、バグを修正しなければならなかったことを発見したキーボードを渡す部品によってコードピースを構築このように書かれている

+1

+1私もこれを見つけました。 「ハッピー・パス分析」のほうがずっと少なく、単独でプログラミングするときに陥りやすいものでした。 – Grundlefleck

関連する問題