Frage

Mein Arbeitsplatz besteht aus einer Menge von Cowboy-Programmierer. Viele von ihnen sind jünger. Was dazu beiträgt, zufällig zu viel Code Qualitätsprobleme.

Ich suche nach Anregungen, wie mein Team am besten schwindet in TDD (wir mit Unit-Tests beginnen können, und in Regressionstests bewegen, und später mehr automatisierte Tests).

Schließlich möchte ich uns schneller aus unseren Fehlern lernen und besseren Code zu erzeugen und eine bessere Entwickler zu züchten.

Ich hoffe, es gibt einige praktische Vorschläge, wie TDD zu einem Team vorzustellen. Genauer gesagt, was Tools sind am besten in der LAMP (PHP) Stack zu wählen.

Sorry, wenn diese Frage zu offener Ende ist.

War es hilfreich?

Lösung

Nachdem nun durch diesen Prozess viermal geht, habe ich festgestellt, dass jede Einführung von TDD ohne ein gewisses Maß an Durchsetzungs fehl. Programmierer wollen nicht Stil wechseln und nicht ihre erste Einheit Test schreiben und plötzlich das Licht sehen.

Sie können auf einer Management-Ebene durchzusetzen, aber das ist zeitaufwendig für alle Beteiligten. Ein gewisser Grad an dies ist notwendig, am Anfang sowieso, aber letztlich werden Sie die automatische Durchsetzung benötigen. Die Antwort darauf ist, Continuous Integration einzuführen.

Ich habe festgestellt, dass ein CI-Server der ultimative keystone eine TDD-Umgebung ist. Es sei denn, die Entwickler wissen, dass etwas Schlimmes passieren wird, wenn sie nicht die Tests schreiben, werden Sie immer Cowboys haben, die es unter ihnen fühlen.

Andere Tipps

Machen Sie das Schreiben von Tests leicht und die Ergebnisse sichtbar .

  • Verwenden Sie einen Testframework mit guter Dokumentation. wie Simple
  • Wird die Prüfung auf Datenbankinhalte ab, eine Referenzdatenbank erstellen, die am Anfang eines Skripts gelöscht und erstellt werden.
  • Erstellen Sie ein Skript, das alle Testläufe und zeigt die Ergebnisse auf einem eigenständigen Monitor oder etwas, das den Test sichtbar / leicht zugänglich machen. (Eine Eingabeaufforderung ausführen, ist keine Option)

ich persönlich nicht schreibe Test für jedes Stück Code in der Anwendung.
Konzentrieren Sie sich auf die Domain-Objekte in der Anwendung. In meinem Fall ist dies „Preisberechnung“ und „Inventar-Änderungen“

sie daran erinnert, dass sie wahrscheinlich schon das Schreiben von Tests, sondern dass sie nur nach der Erstellung ihrer Arbeit löschen. Beispiel: Bei der Entwicklung einer Funktion Sie eine Seite / Testscript haben werden mit einem Echo oder Var_dump () das Ergebnis. Nach einer manuellen Überprüfung des Ergebnisses finden Sie die Parameter der Funktion ändern und erneut prüfen.

Mit einigem zusätzlichen Aufwand dieser Tests in einem Unittest automatisiert werden können. Und die Programmierer nicht wie Sachen zu automatisieren?

Wie für das Team Frage sowie universelle Ideen über Software-Entwicklung und Tests, würde ich Joel Spolski Webseite und Bücher empfehlen: http : //joelonsoftware.com/ ich viele Erkenntnisse von ihm bekam.

Simple - ausgezeichnete Dokumentation und Erläuterungen zum Testen auf php

Eine andere Möglichkeit, TDD zu starten, ist versuchen PHP-Framework zu verwenden. Ohne Rahmen, ist es schwer, Unit-Test wirksam umzusetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top