2

私は最近、現在働いているこの組織に参加しました。その組織は、キーワード駆動型フレームワークと RFT を使用する Java で記述された既存の自動テスト フレームワークをリファクタリング、拡張、および維持するプロジェクトを管理するよう依頼されました。アジャイル管理に移行しましたが、私は生涯ずっと開発者でした。ソースコードを書く前に、動作をテストするためにユニットテストを書く習慣があります。このフレームワークには単体テストが 1 つもありません。私の最初の直感は、「単体テストはどこにあるのか?」ということでした。テスト フレームワーク クラスの単体テストを記述できることはわかっています。ここでの議論の中で、フレームワークやスクリプトをテストするための単体テストを書くのは時間の無駄かもしれないということが提起されました。私は外交的に反対しました。

質問 1: 私の本能は間違っているのでしょうか? 私のケースと戦うのに役立つ提案はありますか.

質問 2: これは再帰的になる可能性がありますか? テストやテストなどのテストを書く。単体テストの作成をいつ停止するかについてのルールはありますか? テスター再帰をテストするという概念はありますか?

繰り返しになりますが、私はすべて単体テストを行っていますが、これまでこのような状況に陥ったことはありません。私の研究では、このトピックについて多くを見つけることができませんでした。

編集

みなさん、興味深い回答をありがとうございます!単体テストは間違いなく間違いなく書かれます! 最も頻繁に使用され、ROI が高く、失敗した場合のペナルティが高い、自己記述のフレームワーク クラスとメソッドに最高の優先順位が与えられます。計画は、プロジェクト全体で高レベルのコード カバレッジを徐々に達成することです (java)。

4

5 に答える 5

5

組織がこのテスト フレームワークを作成した場合は、それを単体テストする必要があります。既存のテスト フレームワーク (JUnit など) を使用している場合、単体テストは行いません。そのテストは、テスト フレームワークの作成者に任せてください。

結論: あなたはそれを書き、あなたはそれをテストします。

于 2010-09-27T19:37:27.347 に答える
1

ソフトウェアエンジニアリングラジオでケントベックとの非常に良いインタビューがあり、そこで彼はいつテストを書くべきか、いつTDDを行うべきかなどについて彼の哲学を説明しました。

彼は、探索的なコード、共有されないコード、または持続しないコード、スパイクソリューションを作成するとき、テストを作成しないと述べました。残りの時間はほとんど彼がテストを書いています。

あなたの質問に答えるために、あなた自身に質問をしてください。テストがあった場合、このフレームワークをリファクタリング、拡張、維持するのに役立ちますか?はいの場合、テストを作成します。

1)通常、リファクタリングの前(動作が変わらないことを確認するため)または新しいコードを実行する前(標準TDD)にテストを作成することをお勧めします。

2)はい、これは再帰的になる可能性がありますが、1日の時間は限られているため、プロジェクトにもたらす付加価値のために費やしている労力について考える必要があります。

単体テストを作成すると、既存のコードをよりよく理解するのにも役立ちます。個人的には、テストを書いています。

于 2010-09-28T06:39:14.137 に答える
1

質問 1: 私の本能は間違っているのでしょうか? 私のケースと戦うのに役立つ提案はありますか.

あなたの直感は間違っていません。テスト フレームワークにバグがある場合、たとえば、テストをスキップしてエラーを見逃す可能性があります。

質問 2: これは再帰的になる可能性がありますか? テストやテストなどのテストを書く。単体テストの作成をいつ停止するかについてのルールはありますか? テスター再帰をテストするという概念はありますか?

いいえ。テスト ケースは非常に単純であるため、バグは精査に耐えられません。すべてのテストは自明であるか、テスト対象のクラスにリファクタリングが必要です。明らかに、これは言うは易く行うは難しです。

テスト フレームワークを調べて、障害が発生すると本当に問題になる箇所にテストを追加します。

于 2010-09-30T02:35:08.367 に答える
0

何かをテストするには、結果を比較するための参照が必要です。フレームワークまたはスクリプトについては、製品コードを参照として使用できます - バージョンに互換性がない場合を除きます。すべてのテストがフレームワーク N およびフレームワーク N+1 で合格した場合、[目に見える]回帰はなく、すべての制限によるものになります。 (十分なカバレッジが提供されます...)。フレームワークやスクリプトをテストするための単体テストを書くことは、時間の無駄だと考えられる場合があります。

既存のフレームワークはおそらくほとんどの場合に機能するため、単体テストに時間を費やすのは無駄になる可能性があります。他のソフトウェアと同様に、新しい機能を追加するとき、またはコードの一部を修正するときに単体テストを作成すると役立ちます。

私は通常、テスト プログラムの単体テストを作成したり、自動テストが重要な特定の部分だけを作成したりしません。それぞれをもう一方の足場として使用して、製品コードと共にそれらを成長させます。

于 2010-09-27T19:39:02.137 に答える
0

考慮すべきもう 1 つの点は、自動テスト自体が自動テスト フレームワークをテストしていることです。つまり、フレームワークを壊すと、テスト自体が失敗するはずです。そのことを考えると、フレームワーク自体の自動化された単体テストの作成に投資することは意味がないかもしれません。

于 2010-09-29T15:59:18.363 に答える