Ich muss ein Geständnis machen: Formalisiertes automatisiertes Testen war nie Teil meines Programmierhintergrunds. Ich arbeite jetzt in einer sehr großen Firma mit vielen Entwicklern (die meisten von ihnen sind Webentwickler der einen oder anderen Art), und es ist offensichtlich, dass die meisten von ihnen auch keine Tests * durchführen. (* Ich werde es nicht weiter formell sagen ; bitte leiten Sie es ab.)
Wenn ich auf die Unterstützung meiner Organisation warte, um mit dem Testen zu beginnen, wird dies niemals geschehen. Wenn ich versuche, "Dinge von innen zu verändern", indem ich Tests beim Management dränge, geht mir der Dampf aus, bevor es zu Veränderungen kommt. Ich muss jetzt mit dem Testen beginnen.
Aber mit TDD und seiner Art werde ich eine Menge Testcode zusammen mit dem Produktionscode haben. Unsere Versionskontrollsysteme (alle zentralisiert) sind nicht für die Speicherung von Testcode ausgelegt. Ich muss einen Platz für all das auf meiner Workstation finden.
Ist es möglich, in einer Kultur, die die Werkzeuge dafür nicht wertschätzt oder nicht bereitstellt, eine persönliche Praxis des Softwaretests zu beginnen? Mit welchen Techniken und Tools können Sie testen, wenn die offiziellen Tools und Organisationen keinen Platz für Tests, Frameworks und Automatisierungen haben?
src
Verzeichnis für Produktionscode auch eintest
Verzeichnis hinzugefügt werden kann - oder ist dies aus irgendeinem Grund ausdrücklich verboten?src
Verzeichnis, wir haben Web-Wurzeln. Um meinen Code in das zentrale VCS einzuchecken, würde ich ihn in das Web-Stammverzeichnis einchecken.Antworten:
Ich persönlich habe das mit beachtlichem Erfolg gemacht. Die Schlüsselfaktoren für den Erfolg:
quelle
Ohne Unterstützung des Managements sind Sie tot im Wasser. Das Management wird behaupten, dass Sie keine lohnende Arbeit leisten, dass Sie in Ihren Bewertungen bestraft werden und dass Sie schließlich entlassen werden. Es gibt Möglichkeiten, das Management zu überzeugen, dass frühe Tests sie weniger kosten. Es ist möglich, die Kultur zu ändern, aber Sie legen Ihren Hals auf den Hackklotz.
Ich würde vorschlagen, Machiavelli, den Prinzen, im Kapitel darüber zu lesen, wie man Veränderungen einführt, bevor man etwas unternimmt.
quelle
Meiner Erfahrung nach kann man eine Anti-Test-Kultur nicht sinnvoll einführen. Entweder werden die Tests als Zeitverschwendung angesehen und Sie werden wegen "Zeitverschwendung" oder "zu langer Zeit" gerügt, oder der Code ist festgefahren, weil er jahrelang nicht auf testbare Weise geschrieben wurde (z. B. keine Schnittstellen, alles) eng gekoppelt) und Sie müssen viel Zeit damit verbringen, Code umzugestalten und / oder neu zu schreiben (wodurch die Gefahr besteht, dass "zu lange" und "Zeit verschwendet" wird), um ihn testbar zu machen, so dass Sie Tests überhaupt erst schreiben können .
Möglicherweise haben Sie eine Chance, wenn Sie auf der grünen Wiese Dinge erledigen, die nur mit vorhandenen Dingen interagieren müssen (erstellen Sie eine schöne Hülle um die schlechten Bereiche), oder wenn Sie dies in kleinen Mengen tun können, ohne dass Probleme auftreten oder dies erforderlich ist "Arbeiten Sie an Aufgaben, die Ihnen nicht zugewiesen wurden", die Sie in die Hundehütte bringen können.
quelle
Ich denke nicht, dass Sie sehr weit kommen werden, bis Sie ein hinreichend gutes Beispiel dafür finden, dass es ein Problem gibt (das derzeit möglicherweise nicht erkannt wird), das durch automatisierte Tests behoben werden kann.
Wenn es eine Kultur des manuellen Testens mit definierten Skripten gibt, sind die Kosten für die Ausführung dieser Skripten mit dem Risiko von unvollständigen oder ungenauen Ergebnissen verbunden. Es kann eine Geschichte (dokumentiert oder in Form einer "Kriegsgeschichte") davon geben. Schlagen Sie ein Pilotprojekt zur Automatisierung einiger dieser manuellen Tests vor, um eine langfristige Kosteneinsparung zu erzielen.
Wenn es nicht einmal eine manuelle Testfunktion gibt, würde ich vorschlagen, dass das Unternehmen nicht erkennt, dass formale Tests, automatisiert oder auf andere Weise, einen Wert haben. In diesem Fall würde ich die bevorstehende Straße als lang und steil bergauf betrachten, aber auch hier ist wahrscheinlich eine klare Demonstration erforderlich, dass das Unternehmen von einem weniger zwanglosen Ansatz in Bezug auf die Softwarequalität profitieren kann. Wenn Sie das nicht können, ist es schwer zu erkennen, wie die Idee aus kommerziellen Gründen unterstützt werden könnte.
quelle
Eine Idee ist, dass Sie versuchen, einen Test zu schreiben, der beweist, dass der Code, den eine andere Person geschrieben hat, fehlerhaft ist. Sollte das Konzept verkaufen.
quelle