Frage

Ich habe als Software -Ingenieur bei dem Unternehmen angefangen, in dem ich gerade bin. Im Laufe der Zeit war ich entweder der einzige, der bereit war oder in der Lage war, Verantwortung für verschiedene Systeme zu übernehmen, und so wurde ich "befördert", IT -Manager zu sein. Jetzt, während meiner Zeit als Software -Ingenieur, erstelle ich funktionale Tests für die verschiedenen Softwaremodule, die ich erstellen würde, und infolgedessen kann ich auch heute noch heute verschiedene Teile des Systems, an dem ich gearbeitet habe, schnell testen. Es gibt jedoch eine große große Codebasis mit wenig bis gar nicht von den anderen verschiedenen Entwicklern, die hier gearbeitet haben.

Als IT -Manager möchte ich nun testen können, dass alle Teile des Systems funktionieren, aber es gibt:

A) Keine budgetierte Zeit, die dem Erstellen von Code -Testabdeckungen gewidmet ist

und

B) Keine Verlangen vom "Chief Software Engineer", Testsuiten zu erstellen, um zu überwachen, dass die Software funktioniert.

Ich gehe nicht davon aus .

Wie kann ich das Software -Team also zum Erstellen von Testsuiten bringen?

Andere Einschränkungen:

A) Ich werde immer noch gebeten, Softwareprojekte durchzuführen, zusätzlich zur Verwaltung unserer IT -Abteilung (Unix -Ingenieur, Desktop -Support -Typ sowie verwandte Büro- und Produktionsausrüstung)

B) Mein UNIX -Administrator fällt es sehr schwer, Produktionssysteme aufzunehmen, und wir erhalten keine gute Hilfe vom Software -Team. Er kann keine Diagnose ausführen, um zu sehen, wo die Web -App in den neuen Installationen fehlschlägt. Der Vizepräsident des Unternehmens sagt mir immer wieder, ich solle hineingehen und Print_rs im Code machen, um zu sehen, was passiert. Das ist scheiße !!!

War es hilfreich?

Lösung

Das ist eine gute Frage. Und wenn es eine korrekte Antwort darauf gäbe, wären viel mehr Softwareprojekte erfolgreich und liefern eine hohe Qualität.

Ich denke nicht, dass es eine gute Idee ist, eine solche Änderung von oben nach unten vorzunehmen. Es muss von den Entwicklern selbst getrieben werden. Trainings in TDD -Richtung wären also gut, aber das ist eine lange Zeit, die Zeit braucht.

Wenn Sie eine schnellere Lösung wünschen, sollten Sie Funktionen, Akzeptanz und Systemtests in Betracht ziehen. Mit diesem Test testen Sie so ziemlich die gesamte Anwendung über alle Schichten. Wenn Sie Webanwendungen entwickeln, sollten Sie mithilfe des Konsumenten konsumiert werden Selen um Ihren Test zu automatisieren. Es ist einfach, mit ihm einen Test zu erstellen (Selenium -IDE).

Wenn Sie jedoch nur solche Tests (nicht Einheits-Tests) verwenden, erhalten Sie nicht die Vorteile von TDD.

Die Automatisierung Ihrer Tests ist entscheidend.

Andere Tipps

Zunächst müssen Sie die testgetriebene Entwicklung untersuchen, damit Sie sie in Bezug auf Ihre Entwickler sowie Ihr Management bequem erklären. Da Sie anscheinend Webanwendungen entwickeln und technische Fähigkeiten haben, empfehlen Sie, den Sprung zu wagen und ein Open -Source -Tool zum Testen von Webanwendungen zu wählen, sie zu installieren und Tests für alles zu erstellen, was Sie selbst entwickeln.

Köper ist ein Beispiel für die Art des Testwerkzeugs, das Sie benötigen würden.

Dann müssen Sie als Manager Entwickler dazu verleiten, Ihrem Beispiel zu folgen und sie dafür zu belohnen. Und bestrafen Sie sie, wenn sie das Test -Framework nicht verwenden und es zu vermeidbaren Problemen führt. Sobald Sie einen solchen Vorfall bekommen, sollten Sie in der Lage sein, Ihren Chef an Bord zu bringen und etwas Schwung zu gewinnen.

Denken Sie insgesamt daran, dass das Ziel weniger Arbeit leisten soll, um ein gutes Ergebnis zu erzielen. Das Schneiden von Ecken ist eine Möglichkeit, weniger Arbeit zu leisten, führt jedoch zu dem Risiko eines schlechten oder spektakulären schlechten Ergebnisses. Halten Sie das Management über die Risikoniveaus und die gefährdeten potenziellen Kosten auf dem Laufenden.

Zwingen Sie die Menschen nicht nur, Tests für Tests willen durchzuführen. Es muss ihnen helfen, produktiver zu sein, also wählen Sie die ersten Projekte dafür sorgfältig aus.

Haben Sie einen Test- oder QA -Team?

Ich würde zuerst sehen, ob sie Testfälle haben, mit denen sie den Build qualifizieren. Wenn nicht, müssen Sie diese Testfälle entwickeln, um die Kernfunktionalität Ihres Produkts zu testen.

Der nächste Schritt wäre die Automatisierung der Testfälle.

Wenn die Anwendung ohne Fehlerbehebungsinstrumente oder Debugging -Funktionen schlecht entwickelt ist, wäre dies schwierig, bis diese als Anforderungen für die nächste Version hinzugefügt werden.

Meine 2 Cent.

Ich muss mit Michaelkebe nicht einverstanden sein. Diese Änderungen erfordern zusätzlich zu einigen wichtigen Entwicklern Unterstützung von der Exekutivebene, um voll und ganz erfolgreich zu sein.

Ohne diese Unterstützung sind Sie nur einige Entwickler, die so aussehen, als würden sie "Zeit damit verschwenden, Tests für Dinge zu schreiben, die bereits funktionieren".

Es muss eine klare Sicht geben, und es muss laut und oft wiederholt werden.

Ich setze mich hier nicht unbedingt für Agile ein, aber oft klickt es für Geschäftsinhaber.

Wenn Sie sie dazu verkaufen können, werden die Dinge, die Sie begeistert sind (die Software schnell, einfache Wartung, automatisierte Tests usw. liefern).

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