Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Im Rahmen der meisten Softwareentwicklungsprozesse werden nach Änderungen an der Software Regressionstests durchgeführt. Diese Tests ermitteln, ob die neuen Änderungen Auswirkungen auf den bestehenden Betrieb der Software hatten.
DO-178C erwähnt Regressionstests nicht ausdrücklich, aber sie sind eine bewährte technische Praxis und werden in der Luft- und Raumfahrtindustrie häufig eingesetzt, um die Stabilität und Korrektheit der Software während ihres gesamten Entwicklungslebenszyklus zu überprüfen. Anforderungen rund um den Software- und Hardwareintegrationsprozess implizieren die Notwendigkeit, nach allen Änderungen eine aktuelle Überprüfung und Validierung aufrechtzuerhalten.
Regressionstests sind notwendig, zeigen jedoch nur an, dass aktuelle Codeänderungen nicht zu fehlgeschlagenen Tests geführt haben. Es gibt keine Garantie dafür, dass diese Änderungen funktionieren. Darüber hinaus kann die Art der Änderungen, die Regressionstests erforderlich machen, über die aktuelle Anwendung hinausgehen und Änderungen an Hardware, Betriebssystem und Betriebsumgebung umfassen.
Bei der Entwicklung sicherheitskritischer Software ist die Validierung entscheidend, um die korrekte Funktionalität und Sicherheit nachzuweisen. Tests sind aus zwei Hauptgründen erforderlich.
Wenn ein Testfall zuvor erfolgreich war, nun aber fehlschlägt, wurde eine mögliche Regression festgestellt. Der Fehler könnte durch eine neue Funktionalität verursacht werden, bei der der Testfall möglicherweise aktualisiert werden muss, damit er Änderungen an Eingabe- und Ausgabewerten berücksichtigt.
Regressionstests eingebetteter Systeme umfassen auch die Ausführung der folgenden Arten von Testfällen:
Tatsächlich müssen alle zuvor erstellten Testfälle ausgeführt werden, um sicherzustellen, dass keine Regressionen auftreten und eine neue, zuverlässige Softwareversion erstellt wird. Dies ist von entscheidender Bedeutung, da jede neue Version eines Softwaresystems oder -subsystems darauf aufbaut. Wenn Sie keine solide Grundlage haben, kann das Ganze zusammenbrechen.
Der Parasoft C/C++-Test unterstützt die Erstellung von Regressionstest-Baselines als organisierte Testsammlung und überprüft automatisch alle Ergebnisse. Diese Tests werden regelmäßig automatisch ausgeführt, um zu überprüfen, ob Codeänderungen die in den Regressionstests erfasste Funktionalität ändern oder beeinträchtigen. Wenn Änderungen eingeführt werden, werden diese Testfälle das Team nicht auf das Problem aufmerksam machen. Bei nachfolgenden Tests meldet der C/C++-Test Aufgaben, wenn er Änderungen am im ersten Test erfassten Verhalten erkennt.
Die größte Herausforderung bei Regressionstests besteht darin, zu bestimmen, welche Teile einer Anwendung getestet werden sollen. Es ist üblich, standardmäßig alle Regressionstests auszuführen, wenn Zweifel darüber bestehen, welche Auswirkungen die letzten Codeänderungen hatten – der Alles-oder-Nichts-Ansatz.
Bei großen Softwareprojekten wird dies zu einem riesigen Unterfangen und mindert die Produktivität des Teams. Diese Unfähigkeit, Tests zu fokussieren, behindert viele der Vorteile iterativer und kontinuierlicher Prozesse, was bei eingebetteter Software, bei der Testziele eine begrenzte Ressource sind, möglicherweise noch verstärkt wird.
Hier sind einige Aufgaben erforderlich.
Entwickler und Tester können sich mithilfe der Process Intelligence Engine (PIE) in Parasoft DTP (Development Testing Platform) in Kombination mit den proprietären Coverage-Analyse-Engines von Parasoft ein klares Bild von den Änderungen in der Codebasis zwischen den Builds machen:
Mit dieser Kombination können Teams ihre Effizienz steigern und das Versprechen von Agile erfüllen. Diese Form der intelligenten Testausführung wird als Testauswirkungsanalyse bezeichnet. Sie wird manchmal auch als änderungsbasiertes Testen bezeichnet.
Testauswirkungsanalyse verwendet während Testläufen gesammelte Daten und Codeänderungen zwischen Builds, um festzustellen, welche Dateien geändert wurden und welche spezifischen Tests diese Dateien berührt haben. Die Analyse-Engine von Parasoft kann:
Parasoft Jtest und dotTEST bieten Einblick in die Auswirkungen von Softwareänderungen. Jede Lösung empfiehlt, wo Tests hinzugefügt werden sollten und wo weitere Regressionstests erforderlich sind.