web-dev-qa-db-ja.com

小さな変更を加えてテストしてから、「すすぎと繰り返し」という悪い習慣はありますか?

私は長年の経験を持つプログラマーです。気がついた。それが本当に悪い習慣かどうかはわかりません。

ソリューションのために実行するタスクのリストを取得します。たとえば、小さな小さなタスクでも、

  1. このユーザーコントロールのリソースを変更する
  2. 別のもののサイズを変更する
  3. 別のユーザーコントロールにHTMLとコーディングを追加する

これらのタスクはすべて小さいです。つまり、10分以内に実行できるということですただし、小さな変更を加えてから、Webブラウザーで何度もテストするという悪い癖がありました。これは良い習慣ですか?

または、一度にすべて実行してから、一緒にテストする必要がありますか?

それが本当に悪い習慣である場合、小さな変更を何度もテストすることに時間を費やすように感じるので、どうすれば修正できますか?

54
Mathematics
  • それは良い習慣です。
  • あなたは科学的方法に従っています。
  • テストの前にいくつかの変更を行うと、前提条件の準備が難しくなり、さまざまな変更が予想外の方法で相互に影響する可能性があるため、それぞれのテストはより困難になり、おそらく信頼性が低くなります。
  • あなたがあなたが今いると感じている時間"wasting"今、あなたは統合、テスト、そしてメンテナンスの段階で後で取り戻すでしょう。
  • 行く方法。
130

小さな変更をたくさん加えて、それぞれをテストすることは悪いことではありません。これにより、各変更の影響を確認でき、1つの変更が問題を引き起こしたときに、より簡単に知ることができます()変更が問題を引き起こした-最新の問題!

10個の項目を含むタスクリストがあり、それらすべてを一度に実行してからページをテストし、ページが正しく表示されないことに気付いた場合、わかりにくいかもしれませんwhich変更するとページが壊れました。

もちろん、このアプローチを極端にすることは可能です。バランスを見つけることが重要であり、それはあなたが変更しているwhatと、変更が互いにどのように影響するかについての理解を深めることに付随します。

あなたの質問には2つの部分があります:

  1. すべて一度実行してから、一緒にテストする必要がありますか?

    [〜#〜] vcs [〜#〜] を使用していると思います。
    そして追跡するために、どのタスクが実行されたかをタスクのリストをコミットのリストに配布することは理にかなっています:1つのタスク、1つのコミット

    これにより、現在のコードベースのさまざまなバージョンを簡単に管理できます。前の状態に戻したり、メイントランクに入力する変更をチェリーピックしたりできます。

    答えは明確です:

    いいえ、1つずつ変更を加えます-1つのタスクを1つのコミット

  2. しかし、小さな小さな変更を加え、それをWebブラウザーで何度もテストするという悪い癖がありました。これは良い習慣ですか?

    コード/ UIを何でもテストするのは良い習慣ですが、ブラウザで何度も何度もそれを行うのはナンセンスです。自動的にそれを行うためのツールがあります(Selenium、PhantomJS/Casper、ZombieJS

    この場合の答えは次のとおりです。

    はい、ソフトウェアを複数回テストすることをお勧めしますが、自動化を使用してください

18
Thomas Junk

開発者の習慣には、主に2つの質問があります。

  1. 作成するコードの品質にどのように影響しますか?
  2. それはあなたの生産性にどのように影響しますか?

両方の答えが「それはそれをより良くする」なら、ねじ癖、他の人に教えてください!
一方に対する答えが「より良い」で他方が「悪い」である場合-それはスタイルであり、あなたはそれについて意識する必要があります。それは常に適用できるとは限らず、時々それを抑制する努力をする必要があるかもしれません。
両方の答えが「否定的」である場合-あなたは深刻な問題を抱えています。

もちろん、最初の2つのケースについては、「プラスの効果を何らかの形で自動化または制度化できるか」についても検討する必要があります。たぶん、毎回別のブラウザを試すよりも、テストを書く方がいいのではないでしょうか。 (Web開発で適切なレイアウトをテストするのはそれほど簡単ではないことを知っています。これが常に可能であるとか、時間を割く価値があると言っているわけではありません)。

この特定のケースでは、品質が向上し、生産性多分が低下したように思えます。小さな変更の場合は、おそらく特に悪い変更です(特に変更が相互に関連している場合)。大きな変更の場合は、ある程度良いです。最終結果もテストする限り(「各モジュールがテストされ、機能するため、全体が機能するため、テストする必要はありません!」)。

したがって、1日の90%がほんのわずかな変更を行わない限り、それは完全にすばらしい習慣です。仕事の日がそのような場合は、仕事のスタイル(または職場)を確認することをお勧めします。

6
Ordous

これはドメインによって異なります。 Webページのレイアウトについては問題なく動作し、すぐにフィードバックを得ることができます(ブラウザーで直接行うこともできます!)。同様に、初期化に長い時間を必要としないあらゆるものに適しています。これは、メンタルワークロードを低く保ち、ミスの可能性を減らすため、推奨されます。

ただし、コードをコンパイルする必要があり、所要時間がわずか(数分)である非常に大きなプロジェクトの場合、ダウンタイムが長くなる可能性があるため、次の方法に頼る必要があります。

  • ワークフローを「並列化」する(たとえば、複数のビルドで同時に作業する)、または
  • 一度にできるだけ多くのことをする、または
  • 作業する小さな独立したパーツを作成し、後で大きなプロジェクトに統合します。

(おそらく他の方法もあるでしょう。)

4
Rufflewind

他の人が述べたように、これは間違いなくnot悪い習慣です。私は通常、一度にいくつかの変更のみを行うことを好みます。唯一の例外は、すべてが互いに影響し合うわけではない変更の大きなリストがある場合です(たとえば、マイナースタイルまたはコピーへの変更、別のページでの変更など)。レイアウトを変更する場合は、一度に1つずつ変更して、サポートされているすべてのブラウザーですべてが100%であることを確認してから、次の問題に進みます。

0
FreeAsInBeer