Die Wahrheit ist, dass es schlechte Tests sind. Die Realität ist, dass ein Unternehmen, das nicht bereit ist, in ein QS-Team zu investieren, schlechte Tests haben wird. Gutes Testen ist teuer und braucht Zeit. Das Unternehmen hat das Risiko übernommen, indem es Zeit und Geld nicht autorisiert hat.
Selbst ein QS-Team kann nicht garantieren, dass jede Möglichkeit getestet wird, da die möglichen Wege durch ein komplexes Programm im Grunde unendlich sind. Sie bringen Sie jedoch weit näher als jetzt. Ein Grund dafür ist, dass es für einen Entwickler unmöglich ist, seinen eigenen Code angemessen zu testen. Sie wissen, was es tut, und neigen daher dazu, Tests zu entwerfen, die ihrer Meinung nach funktionieren sollen. Sie vermissen Randfälle, sie vermissen dumme Dinge, die Benutzer tun würden, die ein Entwickler niemals tun würde, weil sie wissen, wie es funktioniert, sie interpretieren die Anforderung manchmal falsch, aber alle ihre Tests spiegeln ihre ursprüngliche falsche Interpretation wider. Sie übersehen häufig Fehler in der Anforderung und tun, was sie tun sollen, nicht das, was sie hätten tun sollen (dies ist die Ursache für eine große Anzahl von Fehlern, die erst nach den tatsächlichen Benutzern gefunden werden [die allzu oft bei der Definition nicht konsultiert werden die Anforderung] versuchen, die Software zu verwenden). Sie vermissen Auswirkungen auf Teile der Anwendung, für die sie noch nie Grund hatten, in bestimmten Teilen zu arbeiten, die von Spezialisten ausgeführt werden (z. B. eine Tabellenänderung, die für die Anwendung sinnvoll ist, aber einen automatisierten Importprozess oder einen Bericht unterbricht).
Wenn er eine höhere Qualität will, muss er dafür Zeit und Geld bezahlen. Selbst bei vollständiger Qualitätssicherung können Sie nicht 100% erreichen, obwohl die NASA und ihre Auftragnehmer sicherlich nahe beieinander liegen. Sie geben auch viel mehr Geld aus, als Ihr Unternehmen ausgibt. Selbst dann gelang es ihnen, MARS einmal komplett zu verpassen.
Wenn er die Gewissheit haben möchte, dass Probleme den Kunden keinen Schaden zufügen, sprechen Sie über Ihren Testprozess (Zeigen Sie ihm die Liste der Tests, die Sie durchgeführt haben.), was Ihrer Meinung nach davon betroffen wäre und wie Sie haben dies überprüft, Ihren Prozess, um festzustellen, wie Sie einen fehlerhaften Push zurücksetzen würden, und Ihren Prozess, um Fehler zu protokollieren, damit Sie sie sehen, bevor die meisten Clients sie bemerken. Geben Sie ihm das Vertrauen, dass selbst wenn es ein Problem gibt, es behoben werden kann. Sprechen Sie über den Wert, den Code (neue Funktion oder Korrektur) schnell herauszubekommen, und über die zusätzliche Zeit, die für einen gründlicheren Test erforderlich wäre. Sprechen Sie über das Risiko, dass es nicht schnell herauskommt.
Sie können ihn auch bitten, bei jeder Änderung einen gründlichen Regressionstest des Systems durchzuführen, da es einem Entwickler nicht möglich ist, sein System vollständig zu testen eigene Arbeit (Sie wissen, was Ihre Annahmen waren, wenn sie nicht richtig sind, würden Sie das niemals testen.) Stellen Sie sicher, dass er weiß, dass er jede einzelne Seite der Anwendung und jede einzelne Sache, die auf einer gemacht werden könnte, testen muss Seite in jeder möglichen Reihenfolge. Oh ja, testen Sie auch alle Importe / Exporte, Berichte und automatisierten Jobs. Und alle verwandten Anwendungen, die betroffen sein könnten. Sobald er einmal versucht hat, das System gründlich zu trainieren, wird er erkennen, warum Sie diese Zusicherung nicht machen können.
Eine andere Sache, die Sie versuchen sollten, ist ihm im Voraus zu sagen, dass Sie diese Garantie nicht geben können. Wenn er jedoch X Teststunden autorisiert, können Sie dieser Garantie näher kommen. Geben Sie ihm eine detaillierte Liste der zusätzlichen Tests und der Stunden, die für das Entwerfen und Ausführen der einzelnen Tests erforderlich sind. Sagen Sie ihm, welchen Prozentsatz an Vertrauen Sie nach Durchführung all dieser Tests haben würden und welchen Prozentsatz an Vertrauen Sie gerade haben.
Sagen Sie ihm, wie lange es dauern würde, alle aktuellen Unit-Tests durchzuführen, unabhängig davon, ob sie mit diesem Problem zusammenhängen oder nicht. Wenn Sie derzeit 1000 Unit-Tests haben und jeder fünf Minuten benötigt, um die Ergebnisse einzurichten, auszuführen und auszuwerten, wären dies 83 Stunden. Bitten Sie ihn um die Erlaubnis, diese Zeit zu verbringen.