it-swarm.com.de

Ist es eine schlechte Angewohnheit, eine kleine Änderung vorzunehmen, sie zu testen und dann zu "spülen und zu wiederholen"?

Ich bin ein Programmierer mit langjähriger Erfahrung. Mir wurde klar, dass ich eine bestimmte Angewohnheit hatte. Ich bin mir nicht sicher, ob es wirklich eine schlechte Angewohnheit ist oder nicht.

Ich erhalte eine Liste von Aufgaben, die für eine Lösung ausgeführt werden müssen, auch kleine kleine Aufgaben, z.

  1. Ändern Sie die Ressourcen dieses Benutzersteuerelements
  2. Ändern Sie die Größe eines anderen
  3. Fügen Sie HTML und Codierung für ein anderes Benutzersteuerelement hinzu

Alle diese Aufgaben sind klein. Ich meine, sie können innerhalb von 10 Minuten erledigt werden, aber ich habe die schlechte Angewohnheit, kleine Änderungen vorzunehmen und sie dann immer wieder in einem Webbrowser zu testen. Ist das eine gute Praxis?

Oder sollte ich sie alle auf einmal ausführen und sie dann zusammen testen?

Wenn es wirklich eine schlechte Angewohnheit ist, wie kann ich sie dann korrigieren, da es sich anfühlt, Zeit damit zu verschwenden, kleine Änderungen immer wieder zu testen?

54
Mathematics
  • Es ist eine gute Praxis.
  • Sie folgen der wissenschaftlichen Methode.
  • Wenn Sie vor einem Test mehrere Dinge ändern, ist das Testen jedes einzelnen schwieriger und möglicherweise nicht zuverlässig, da die Vorbereitung der Voraussetzungen schwieriger ist und die verschiedenen Änderungen auf eine Weise miteinander interagieren können, die Sie nicht vorhergesehen haben.
  • Die Zeit, in der Sie sich fühlen "verschwenden" jetzt, werden Sie später in der Integrations-, Test- und Wartungsphase wiedererlangen.
  • Gut gemacht.
130

Es ist keine schlechte Sache, viele kleine Änderungen vorzunehmen und jeden einzelnen zu testen. Es ermöglicht Ihnen, die Auswirkungen jeder Änderung zu sehen, und wenn eine Änderung ein Problem verursacht, ist es viel einfacher zu wissen, welche Änderung verursachte Probleme - die neueste!

Wenn Sie eine Aufgabenliste mit 10 Elementen haben und alle auf einmal ausführen und dann die Seite testen und dann feststellen, dass die Seite falsch aussieht, ist es möglicherweise schwieriger zu wissen, welche Änderung die Seite beschädigt hat .

Natürlich ist es möglich, diesen Ansatz bis zum Äußersten zu verfolgen. Das Finden eines Gleichgewichts ist der Schlüssel, und dazu gehört ein besseres Verständnis von was Sie ändern sich und wie sich die Änderungen gegenseitig beeinflussen könnten.

Ihre Frage besteht aus zwei Teilen:

  1. soll ich sie alle einmal ausführen und dann zusammen testen?

    Ich gehe davon aus, dass Sie ein VCS verwenden.
    Und um zu verfolgen, welche Aufgaben erledigt wurden, ist es sinnvoll, die Liste der Aufgaben auf eine Liste von Commits zu verteilen: eine Aufgabe, ein Commit.

    Das macht es einfach, verschiedene Versionen der aktuellen Codebasis zu verwalten. Sie können zu einem vorherigen Status zurückkehren, die Änderungen auswählen, die Sie in den Hauptstamm eingeben möchten usw.

    Die Antwort ist klar:

    Nein, nehmen Sie Änderungen nur einzeln vor - eine Aufgabe, die Sie festschreiben .

  2. aber ich habe die schlechte Angewohnheit, kleine Änderungen vorzunehmen und sie dann immer wieder im Webbrowser zu testen. Ist dies eine gute Vorgehensweise?

    Es ist eine gute Praxis, Code/UI zu testen was auch immer, aber es ist Unsinn, dies immer wieder im Browser zu tun. Es gibt Tools, die dies automatisch für Sie erledigen ( Selen, PhantomJS/Casper, ZombieJS)

    Die Antwort für diesen Fall lautet:

    Ja, es wird empfohlen, Software mehrmals zu testen, aber die Automatisierung zu verwenden

18
Thomas Junk

Für jede Gewohnheit, die ein Entwickler hat, gibt es zwei Hauptfragen:

  1. Wie beeinflusst es die Qualität des von Ihnen erstellten Codes?
  2. Wie beeinflusst es Ihre Produktivität?

Wenn die Antwort auf beide lautet "Es macht es besser", scheiß auf Gewohnheit, lehre es anderen!
Wenn die Antwort auf die eine "besser" und die andere "schlechter" lautet, ist dies ein Stil, und Sie müssen sich dessen bewusst sein. Es ist nicht immer anwendbar, und Sie müssen sich möglicherweise ab und zu bemühen, es zu unterdrücken.
Wenn die Antwort auf beide "Negativ" lautet, haben Sie ein ernstes Problem.

Natürlich sollten Sie in den ersten beiden Fällen auch darüber nachdenken, ob der positive Effekt irgendwie automatisiert oder institutionalisiert werden kann. Vielleicht ist es besser, einen Test zu schreiben, als jedes Mal verschiedene Browser auszuprobieren? (Beachten Sie, ich weiß, dass es nicht so einfach ist, das richtige Layout in der Webentwicklung zu testen. Ich sage nicht, dass dies immer möglich ist oder die Zeit wert ist.).

In diesem speziellen Fall scheint es mir, dass die Qualität erhöht, die Produktivität möglicherweise verringert wird. Für kleine Änderungen ist es wahrscheinlich ein bisschen schlecht (besonders wenn die Änderungen miteinander zusammenhängen), für größere - es ist ein bisschen gut. Solange Sie auch das Endergebnis testen (vermeiden Sie, dass "jedes Modul getestet wurde und funktioniert, damit das Ganze auch funktioniert, Sie müssen es nicht testen!").

Daher ist es eine sehr gute Angewohnheit, es sei denn, 90% Ihres Arbeitstages nehmen wirklich kleine Änderungen vor. Wenn Ihr Arbeitstag so ist, möchten Sie vielleicht Ihren Arbeitsstil (oder Ihren Arbeitsplatz) überprüfen.

6
Ordous

Dies hängt von der Domain ab. Das Layout einer Webseite funktioniert einwandfrei und Sie erhalten sofortiges Feedback (Sie können dies sogar direkt im Browser tun!). Ebenso würde es gut für alles funktionieren, dessen Initialisierung nicht lange dauert. Dies wird bevorzugt, da es Ihre mentale Arbeitsbelastung gering hält und die Möglichkeit von Fehlern verringert.

Bei wirklich großen Projekten, bei denen Sie den Code kompilieren müssen und die benötigte Zeit nicht trivial ist (mehrere Minuten), kann dies zu einer erheblichen Ausfallzeit führen, sodass Sie häufig auf Folgendes zurückgreifen müssen:

  • "Parallelisierung" Ihres Arbeitsablaufs (z. B. gleichzeitige Bearbeitung mehrerer Builds) oder
  • mache so viele Dinge wie möglich auf einmal oder
  • erstellen Sie ein kleines unabhängiges Teil, an dem Sie arbeiten und das Sie später in das größere Projekt integrieren können.

(Es gibt wahrscheinlich auch andere Möglichkeiten.)

4
Rufflewind

Wie andere gesagt haben, ist dies definitiv nicht eine schlechte Angewohnheit. Im Allgemeinen ziehe ich es vor, nur wenige Änderungen gleichzeitig vorzunehmen. Die einzige Ausnahme ist, wenn ich eine große Liste von Änderungen habe, die sich nicht alle gegenseitig beeinflussen (z. B. Änderungen an kleineren Stilen oder Kopien, Änderungen auf verschiedenen Seiten usw.). Wenn Sie Layouts ändern, müssen Sie nacheinander Änderungen vornehmen, damit Sie überprüfen können, ob in allen unterstützten Browsern alles zu 100% funktioniert, bevor Sie mit der nächsten Ausgabe fortfahren.

0
FreeAsInBeer