新しい機能やバグ修正のために、単体テストの作成に通常どれくらいの時間を費やす必要がありますか?


9

新しい機能を実装したり、バグを修正したりする必要があるときは、通常、テストで状況を再現しようとします。フィクスチャを考え出し、テストを書くのに3時間ほどかかることがあります。実際の機能の実装やバグの修正には1時間もかかりません。

実際に機能を実装したり、バグを修正したりするのに比べて、テストを書くために他の誰かが少なくとも3倍長い時間を費やしていますか?コードの作成に対するテストの作成に費やした時間の許容比率はどのくらいですか?


2
このように考えてください:バグが存在することを確認するテストがなければ、バグの修正に1時間もかかりませんでした。
マイケルK

2
質問のタイトルへの回答:それがかかる限り。
Marcelo

3
コストやビジネスの価値に関係なく、TDDの原則に従順な奴隷に従うことは、常に正しい対応だと思います。
ジェレミー

マネージャーが修正をすぐに公開することを望んでいて、実装を完全にテストするために1日以上待つことができない場合にどのように対処しますか?
Thierry Lam

2
通常、テストを行わない場合のコストについて説明します。つまり、今すぐ修正を出荷できますが、テストを記述しない場合は、後で全体をやり直す必要があります。その将来のコストで大丈夫な場合もありますが、通常はテストを作成します。
Christopher Bibbs

回答:


12

バグや機能の複雑さによって異なります。かつて1.5週間の開発費見積もりと3か月のテスト見積もりがあった1つのプロジェクトを思い出します。コードの変更はわずかで、ほんの数行しかありませんでしたが、保険システムの多くのコンポーネントにさまざまな影響を与えたため、非常に徹底的にテストする必要がありました。別の時に、間違った場所に括弧が含まれるバグがありました。検出に2時間、修正に2秒かかりましたが、ロジックの変更の影響を受けた可能性がある数十のシナリオをテストするのに約1週間かかりました。

一般に、正確な方法がないため、コーディングに費やした時間とテストに費やした時間の比率について心配する必要はありません。一部のプロジェクトでは、通常は(プロジェクトに対して)標準であるプロジェクト相対比率が表示されますが、それでも後で変更される可能性があります。

コードが適切に機能することを確信を持って言うのに必要なだけ時間をかけてください。


6

機能が意図したとおりに機能するか、またはバグが正しく修正されるまで、テストの作成に十分な時間をかけてはいかがでしょうか。

すべての状況は異なります。なんらかの比率はあり得ません。一部のテストは実装に10分の1の時間がかかり、他のテストは何百倍もの時間がかかります。


これが本当の答えです。
DJクレイワース

4

プロジェクトで単体テストを導入した後、私はかつて調査を行いました。その結果、テストの作成に費やした時間は、実装に費やした時間と同じくらい、約40%でした。しかし、私たちはそこで完全にカバーすることを目指していませんでした、そしてそれは強力な構造と慣習で確立されたプロジェクトでした。



0

あなたは正しく数えていますか?テストに費やす時間を正確に計算するには、テストなしでコードを記述する必要があります。

テストを書くのに本当に3時間かかり、合格するためのコードを書くのに1時間かかった場合、テストを書かずに同じバグを修正するのに5時間以上かかることがあります。

はい、多くの場合、実際の修正コードよりもテストに多くの時間を費やしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.