ユニットテストの前または後に、コードレビューをいつ実行するかについて同僚と議論しています。ベストプラクティスは何ですか?
考慮に入れる必要があるいくつかの要因(さらにある場合があります):
- コード変更のサイズ-大きな変更は、コードレビューからさらに多くの変更が行われることを意味します。これらの変更が大きい場合、UTがコードレビューの前だった場合は、ほとんどのUTを再度繰り返す必要があります。
- 単体テストの実行に必要な時間
- 新しい機能ですか、それともバグ修正ですか
ユニットテストの前または後に、コードレビューをいつ実行するかについて同僚と議論しています。ベストプラクティスは何ですか?
考慮に入れる必要があるいくつかの要因(さらにある場合があります):
回答:
コードレビューを行う前に、常にユニットテストを行う必要があります。その理由は次のとおりです。
おそらく他の理由もありますが、私が個人的に見て経験したのは、3つの異なるチーム/企業内でコードレビューの実践を実装したことです。
編集 もちろん、上記はコードレビューがソフトウェア開発プロセス(ウォーターフォールかアジャイルかに関係なく)のステップである場合のものです。コードの特に大きなセクションや難しいセクションで作業している場合は、いつでも別のペアに注目してください。
コードレビューは、コードが「完了」したときのものです。
私の組織では、「完了」の定義に単体テスト(TDDを目的としているため)が含まれているため、コードレビューは完全なコードであり、完全なコードにはテストが含まれています。
また、テストはレビューとリファクタリングを必要とするため、コードレビューの一部であることは理にかなっています。
上手、
これは、「単体テスト」の意味によって異なります...
TDDスタイルの単体テストの場合は、コードを記述しながらテストを記述するため、意味がありません。後のケースはありません。この場合、コードの品質を継続的に改善します。リファクタリング...
そして
それが古典的な「単体テスト」だった場合[何を意味するのかわからないが、コードを記述して通常は他の人が行った後のテストを意味する]主な基準は、コードレビューと単体テストの性質から期待するものです。迅速なフィードバックを確認してアクションを実行し、自動化された単体テストがない場合は、単体テストを待つ必要があります。コードレビューで成熟した問題を特定し、次の反復のためにソリューションを段階的に適用したい場合は、ユニットテストの前に行うことができます...
しかし結局のところ、個人的には、コードレビューの場合、後または後の単体テストは私にとって実際の基準ではありません...
なぜcodereviewを行うのですか?コード品質について...「品質管理」ゲートの代わりに、ソフトウェア開発プロセス環境に品質を注入します...