Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>
Von Boguslaw Czwartkowski, Parasoft Professional Services Manager
Statische Codeanalyse ist ein weit gefasster Begriff, der verschiedene Arten von Analysen beschreibt:
Allen diesen Arten der statischen Analyse ist gemeinsam, dass sie den Quellcode scannen (dh von einem Programm untersuchen lassen). Dies ist eine sehr schnelle und einfache Möglichkeit, kritische Fehler aufzudecken. Es erreicht eine 100%ige Abdeckung und seine Ergebnisse sind zu 100% objektiv. Es ist fast unmöglich, dagegen zu argumentieren, es ständig zu tun.
Statisches Scannen Bietet Informationen zur Vorhersage, was passieren kann, wenn Code integriert und ausgeführt wird. Es erkennt Fehler basierend auf dem, was das Tool als Fehler betrachtet (normalerweise kann dies an Ihre Vorlieben und Prioritäten angepasst werden). Es kann Ihnen jedoch nicht sagen, wann das zu testende oder in Produktion befindliche System NICHT das tut, was von ihm erwartet wird - oder etwas, von dem niemand erwartet hat, dass es es tun würde.
Die Herausforderung besteht hier darin, das unerwartete Verhalten zu beobachten. Beispielsweise kann eine Transaktion für einen Benutzer (oder Tester oder Testausführungstool) scheinbar korrekt fortgesetzt werden, während eine Komponente tatsächlich eine nicht behandelte Ausnahme ausgelöst und diese nicht korrekt verarbeitet hat. Ein Steuerungssystem kann drei Tage lang im Test schnell und korrekt reagieren, aber am vierten Tag in der Produktion Speicherverluste aufweisen und auf einen Absturz zusteuern. Das Beheben aller Fehler, die mit einem statischen Codeanalysetool erkannt wurden, bietet keine Sicherheit gegen andere Fehler, die solche Fehler verursachen.
Aus diesem Grund ist es wichtig, die Definition von Fehler auch nach der Integration auf internes und externes Verhalten anzuwenden. Der interne Fehler muss erkannt werden, bevor er sich extern manifestiert.
Bei Parasoft bezeichnen wir diese Aktivität als Laufzeitfehlererkennung, eine Form der dynamischen Analyse. Hier verschwimmen die Unterscheidungen zwischen den Testtypen. Dynamische Anwendungssicherheitstests ist eine analytische Prüfung, da beabsichtigt ist, den Prüfling zu untersuchen, anstatt ihn auszuüben. Es ist ein White-Box-Test, bei dem wir eher internes als externes Verhalten untersuchen. Der zu testende Code muss jedoch ausgeführt werden. Dazu werden dieselben Black-Box-Tests ausgeführt, die für dynamische Tests verwendet wurden.
Laufzeitfehlererkennung erkennt und meldet einen internen Fehler in dem Moment, in dem er auftritt, sodass es für den Tester einfach ist, ihn genau mit Testaktionen für die Meldung von Vorfällen zu korrelieren. Wie eine gute statische Analyse liefert sie vollständige technische Details, damit der Entwickler den zugrunde liegenden Fehler isolieren und beheben kann. Die Laufzeitfehlererkennung erweitert die Möglichkeiten des empirischen Testens auf allen Ebenen, von der Einheit bis zur Abnahme, indem es möglich wird, einen internen Fehler zu erkennen, der darauf hinweist, dass ein ansonsten nicht beobachtbarer externer Fehler aufgetreten ist oder auftreten wird, nachdem das Testen beendet wurde.
***
Photo Credit: Dexxus
Die branchenführenden automatisierten Softwaretest-Tools von Parasoft unterstützen den gesamten Softwareentwicklungsprozess, vom Schreiben der ersten Codezeile über Unit- und Funktionstests bis hin zu Leistungs- und Sicherheitstests, wobei simulierte Testumgebungen genutzt werden.