Problem: Wie kann sichergestellt werden, dass das Projekt zuverlässig bleibt, wenn man weiß, dass seine Teile zuverlässig sind, wenn sie separat getestet werden?
Hintergrund: Unser Projekt ist derzeit so strukturiert, dass jedes Team an einem bestimmten Ergebnis arbeitet. Jedes Ergebnis wird in seinem spezifischen Code-Zweig erstellt, und es gibt Automatisierungsprozesse, die jedes Ergebnis über die Zweige testen. Während die einzelnen Ergebnisse fortschreiten, werden sie zusammen mit anderen Ergebnissen wieder in Trunk zusammengeführt.
Es ist jedoch nicht möglich, dieselbe Automatisierung, die in Softwareteilen angewendet wird, auf das gesamte Projekt anzuwenden.
Sollte es ein spezielles Team geben, um die Integration zwischen den Liefergegenständen zu testen?
Ein Softwareprojekt-Testzyklus umfasst mehrere Schritte – einschließlich der von Ihnen erwähnten. Es kommt jedoch vor, dass sich solche Testzyklen in den meisten Fällen ziemlich überschneiden, weil die Projekte nicht groß genug sind. Am Ende werden sowohl technische als auch funktionale Aspekte zusammen getestet, als ein großer Haufen von Tests und Kontrollen.
Es gibt jedoch Fälle, in denen Testzyklen aufgeteilt und klar definiert werden müssen.
Der Test, den Sie gerade haben, klingt laut Ihrer Beschreibung wie ein automatisiertes Unit-Testing (oder ein Paket von Unit-Tests). Das Ziel dabei ist sicherzustellen, dass jede Funktionalität oder Leistung (wie Sie es nennen) aus technischer Sicht einwandfrei funktioniert. Das ist die Art von Tests, die die meisten Projekte haben.
Ich nehme an, Sie haben möglicherweise auch eine Art Systemtest , um sicherzustellen, dass die Änderungen aus funktionaler Sicht in Ordnung sind.
Was Sie jetzt zu vermissen scheinen, ist der Test, der zwischen beiden angewendet wird, der als Integrationstest bezeichnet wird .
In großen Projekten werden solche Tests normalerweise von bestimmten Teams mit spezifischen durchzuführenden Prüfungen abgedeckt. Es ist wichtig sicherzustellen, dass das vom Integrationstest verwendete Testpaket nicht mit dem Systemtest identisch ist , da das Ziel des ersteren darin besteht, sicherzustellen, dass die Schnittstellen zwischen den Modulen wie erwartet funktionieren. Wenn Sie keine klaren Grenzen definieren, haben Sie einen endlosen Testzyklus, also ist es gut, die erwarteten Ergebnisse und die Abdeckung jedes Testzyklus im Voraus zu definieren.
Also ja, was Sie brauchen, ist ein bestimmtes Team (das aus einer Ressource aus jedem Modul aufgebaut werden könnte) mit einem bestimmten Satz von Integrationstests , die durchgeführt werden müssen. Um dieses Testpaket aufzubauen, empfehle ich dringend, die Schnittstellen zwischen den einzelnen Ergebnissen zu klären.
Ein letzter Tipp: Das Testen von Namen, Ausdrücken und Abläufen im Lebenszyklus hängt stark von den Methoden des Unternehmens ab. Wenn Sie also mit anderen PMs sprechen, stellen Sie sicher, für welche Phase Sie Unterstützung benötigen.
Todd A. Jacobs
Phadaphunk
Richard
Rinuthomaz
Thiago Cardoso
Danny Schoemann