Parasoft C/C++test 2022.2 unterstützt das neue MISRA C:2012 Amendment 3 und eine Entwurfsversion von MISRA C++ 202x. Erfahren Sie mehr >>

Management der Risiken der SaaS-Entwicklung mit einer Entwicklungstestplattform

Von Parasoft

12. Februar 2014

5  min lesen

Von Jason Schadewald (Produktmanager, Parasoft) und Adam Trujillo (Technischer Redakteur, Parasoft)

Laut dem Technologieforschungsunternehmen Gartner belief sich der SaaS-Markt 14.5 auf 2012 Milliarden US-Dollar und sollte bis 22.1 voraussichtlich 2015 Milliarden US-Dollar erreichen. Das schnelle Wachstum, das Gartner feststellt, sollte angesichts des Potenzials von SaaS, die Markteinführungszeit und den mit dem Tracking verbundenen Overhead stark zu verkürzen, keine Überraschung sein und Verwalten unzähliger Versionen und Konfigurationen von Softwarepaketen.

Durch die Einführung einer einzelnen Version der Software ermöglicht SaaS Unternehmen auch die Zentralisierung der Steuerung. Viele Unternehmenskunden bevorzugen SaaS, da es die Konsistenz im gesamten Unternehmen gewährleistet und die Kosten für Installation, Wartung und Hardware senkt. Unternehmen vermeiden außerdem Ineffizienzen und versteckte Kosten bei der Installation inkompatibler Versionen derselben Software auf mehreren Computern.

Eine neue Reihe von Geschäftsrisiken

Trotz dieser Vorteile ist das Versprechen von SaaS, die Markteinführungszeit zu verkürzen und die Gesamtbetriebskosten zu senken, mit eigenen Risiken verbunden, z. B. einer eingeschränkten Fähigkeit, die mit einer fehlgeschlagenen Bereitstellung verbundenen Risiken zu mindern, und der Möglichkeit organisationsweiter Störungen zum Geschäftsbetrieb. Dies sind nicht die Arten von Risiken, die von Cloud- und IaaS-Strategien verwaltet werden können, die in erster Linie vor Hardwarefehlern schützen. SaaS birgt das Risiko, falsche oder unvollständige Geschäftsfunktionen auf der Ebene Ihres gesamten Unternehmens oder Unternehmens bereitzustellen - ein Risiko, das Anbieter und Verbraucher gleichermaßen betrifft. Da SaaS-Bereitstellungen in erster Linie vom Anbieter verwaltet werden, stehen den Verbrauchern nur wenige Optionen zur Verfügung, um die Folgen einer fehlgeschlagenen Bereitstellung zu verringern, z. B. ein Downgrade auf eine stabile Version oder die Zuweisung zusätzlicher Ressourcen zur Entwicklung von Problemumgehungen.

SaaS wird für alle Benutzer gleichzeitig live geschaltet - für die gesamte Welt in der Public Cloud oder für ein ganzes Unternehmen in der Private Cloud -, was bedeutet, dass die Folgen erheblicher und unbedeutender Mängel verstärkt werden. Ein einfacher logischer Fehler in Features, Funktionen oder Architektur kann tausende Male pro Sekunde wiederholt werden, was kurz nach der Veröffentlichung eines neuen Upgrades oder Patches zu einer Kaskade von Fehlern, einem Berg von Datenkorruption oder einer Reihe erfolgreicher Sicherheitsangriffe führt. SaaS macht Fehler zu einem Alles-oder-Nichts-Angebot und erfordert, dass wir sorgfältigere Test- und Präventionspraktiken entwickeln, um diesen Geschäftsrisiken zu begegnen.

Einführung in Change-Based Testing

Das Testen von SaaS stellt eine einzigartige Herausforderung dar, da durch die Gewährleistung der Sicherheit, Zuverlässigkeit und Leistung der Anwendung die kurze Markteinführungszeit und die minimierten Betriebskosten, die eine SaaS-Strategie bietet, leicht beseitigt werden können. Änderungsbasierte Tests, eine Methode zur Überprüfung der Geschäftsanforderungen, die von Änderungen an Code oder Schnittstellen betroffen sind, können Unternehmen dabei helfen, die Vorteile der Bereitstellung von SaaS aufrechtzuerhalten und gleichzeitig die Softwarequalität sicherzustellen. In einer änderungsbasierten Testumgebung lösen Änderungen am Code automatisch Prozesse aus, die die Priorisierung und Ausführung automatisierter und manueller Tests optimieren.

Anstatt zu verlangen, dass Entwicklungsteams Tausende von Testfehlern sichten, von denen viele das Ergebnis von Upstream-Fehlern sind, priorisiert eine änderungsbasierte Teststrategie die Testergebnisse basierend auf dem Geschäftswert und liefert sie direkt an den entsprechenden Tester oder Entwickler zur sofortigen Lösung. Änderungsbasierte Tests stellen die SaaS-Qualität sicher und gewährleisten gleichzeitig die Markteinführungsempfindlichkeit durch messbare Verkürzung des Zeitaufwands für die Überprüfung und Behebung von Testfehlern, indem sie den Berg der Ergebnisse durchschneiden und nur diejenigen liefern, die von höchster Relevanz sind.

Der Schlüssel zur Maximierung der Vorteile einer veränderungsbasierten Teststrategie liegt in der Implementierung auf einer Entwicklungstestplattform. Entwicklungstests ist die kontinuierliche Anwendung von Softwaretestaktivitäten wie Komponententests, statische Analysen und Peer Review während des gesamten Entwicklungslebenszyklus. Eine Entwicklungstestplattform wie die Parasoft Entwicklungstestplattform, integriert und automatisiert konsequent Methoden zur Fehlervermeidung und -erkennung und misst gleichzeitig die Produktivität und Anwendungsqualität genau und objektiv.
Die Intelligence Engine an Bord der Parasoft Development Testing Platform ermöglicht die Ermittlung der Testrelevanz bei veränderungsbasierten Tests. Dadurch wird der Workflow des Entwicklungsteams optimiert, indem schnell umsetzbare Daten zu den Risiken bereitgestellt werden, die mit der Freigabe der Software in ihrem aktuellen Zustand verbunden sind. Die Prozessinformationen, die durch veränderungsbasierte Tests auf einer Entwicklungstestplattform ermöglicht werden, helfen Stakeholdern und Managern, kluge Entscheidungen zu treffen, die auf vorhersehbaren Ergebnissen und einer allgemeinen Sicht auf die Geschäftsrisiken der Veröffentlichung zu einem bestimmten Zeitpunkt basieren. Stakeholder können diese Erkenntnisse nutzen, um Risiken zu managen, indem sie die Auswirkungen der Neuzuweisung von Ressourcen erkennen, eine Veröffentlichung verzögern, um Platz für eine Korrektur zu schaffen, oder eine Funktion in die nächste Version verschieben.

Automatisierte Regressionstests

Jede Implementierung von veränderungsbasierten Tests muss auf der Grundlage einer starken Reihe von Regressionstests beruhen. Im strengsten Sinne müssen Entwicklungsteams nach jeder Änderung jede Einheit jeder Anwendung testen, um sich vor unbeabsichtigten Konsequenzen zu schützen, und alles andere stellt ein kalkuliertes Risiko dar. Bis vor kurzem war die gründliche Verwaltung und Pflege von Regressionstests aufgrund der bekannten Sprödigkeit von Regressionstestsuiten und der Zeit, die für deren Durchführung erforderlich ist, unerschwinglich.

Der erste Schritt zur Reduzierung dieser Kosten war die Automatisierung. Die Automatisierung neben IaaS ermöglicht die Ausführung von Tests innerhalb eines definierten Zeitraums. Darüber hinaus wird die Automatisierung häufig verwendet, um viele Arten von Tests zu generieren, wodurch Kosten und Zeitaufwand weiter reduziert werden. Bisher mussten die Entwicklungsteams die Testergebnisse noch manuell überprüfen, wodurch die durch die Automatisierung von Tests erzielten Produktivitätsgewinne praktisch zunichte gemacht wurden.

Änderungsbasierte Tests ermöglichen die Priorisierung von Testergebnissen, sodass die wichtigsten Ergebnisse - Ergebnisse von Tests, die den Änderungen am nächsten kommen und das größte Geschäftsrisiko darstellen - automatisch priorisiert und an den Entwickler oder Tester übermittelt werden. Durch die Integration von veränderungsbasierten Tests in eine bestehende automatisierte Regressionstestpraxis kann die SaaS-Entwicklung ihr Versprechen mit geringem Risiko und hoher Belohnung erfüllen.

Simulieren von Abhängigkeiten zum Testen von Code mit hoher Abhängigkeit und Fehlerbehandlung

Um einen Regressionstest durchführen zu können, müssen Entwicklungsteams in der Lage sein, Abhängigkeiten zu simulieren. Das Simulieren von Abhängigkeiten entweder durch Anwendungsvirtualisierung oder durch Funktionsstubbing auf Codeebene ist ein kritischer Aspekt beim Testen von stark abhängigem Code sowie von Code zur Fehlerbehandlung. Entwicklungsteams stellen häufig fest, dass das Testen von stark abhängigem Code zu viel Aufwand erfordert, um rechtzeitig und kostengünstig zu sein. Viele Entwickler unterschätzen auch die Wahrscheinlichkeit eines Fehlers im Zusammenhang mit Fehlerbehandlungscode, was zu nicht getesteten Aspekten der Anwendung führt. Wenn diese Option nicht aktiviert ist, stellen stark abhängiger und fehlerbehandelnder Code ein erhebliches Risiko für das Unternehmen dar. Was Unternehmen jedoch möglicherweise nicht erkennen, ist, dass der Aufwand für das Testen mit moderner Abhängigkeitssimulationstechnologie tatsächlich recht gering ist.

Ein Beispiel für stark abhängigen Code ist die Geschäftslogik. Das Testen der Geschäftslogik ist wichtig, da sie den Umsatz und die Kundenzufriedenheit steigert. Da für die Überprüfung der Geschäftslogik Prozesse an verschiedenen Stellen der gesamten Anwendung erforderlich sind, haben Unternehmen traditionell bis zur Integrationsphase gewartet, um sie zu testen. Das Ergebnis ist, dass Entwickler und Testteams möglicherweise viel später im Prozess Fehler feststellen, wenn die Kosten und die Zeit für die Behebung hoch sind. Durch die Möglichkeit, Abhängigkeiten im gesamten SDLC zu simulieren, können Entwicklungsteams Geschäftslogik und anderen stark abhängigen Code vor der Integrationsphase testen. Dadurch wird sichergestellt, dass Unternehmen die Vorteile einer SaaS-Strategie nutzen.

Das Testen von Fehlerbehandlungscode ist ebenfalls wichtig, da er als Wiederherstellungsmechanismus für Fehler fungiert, die durch externe Abhängigkeiten verursacht werden. Bei unvollständiger oder ohne Berücksichtigung der Geschäftsanforderungen kann Fehlerbehandlungscode unbeabsichtigte Folgen haben, die von geringfügigen Dienstunterbrechungen bis hin zu schwerwiegenden Systemfehlern reichen. Aus diesem Grund ist Fehlerbehandlungscode auch eine der am häufigsten ausgenutzten Sicherheitslücken, auf die Angreifer abzielen.
Entwickler und Tester müssen in der Lage sein, Abhängigkeiten einfach zu simulieren, um diese Lücke im Testprozess zu schließen. Eine hochmoderne Plattform für Entwicklungstests ermöglicht die Abhängigkeitssimulation entweder durch Anwendungsvirtualisierung oder Funktionsstubbing auf Codeebene.

Darüber hinaus reduziert eine Entwicklungstestplattform den Zeit- und Arbeitsaufwand für die Fertigstellung der Entwicklung und des Testens durch

  • Tests automatisch generieren;
  • Automatische Generierung simulierter Abhängigkeiten und Fehlerinjektion;
  • Erleichterung der Zuordnung von Tests zu Anforderungen;
  • Einbinden von Tests und Abhängigkeiten in automatisierte Regressionstestläufe; und
  • Priorisierung der Ergebnisse nach Risiko und Relevanz.

Fazit

Natürlich gibt es keine Silberkugel. Um die Qualität einer Anwendung, SaaS oder auf andere Weise, sicherzustellen, ist eine Kombination von Test- und Präventionstechnologien erforderlich, und der Prozess, der den Einsatz dieser Technologien vorantreibt, muss mit den Geschäftszielen übereinstimmen. Automatisierte, auf Änderungen basierende Regressionstests mit Abhängigkeitssimulation sind die Lösung zur Bewältigung der einzigartigen Risiken bei der Bereitstellung und Nutzung von SaaS-Anwendungen. Sie müssen neben den allgemeineren Methoden der statischen Analyse, Peer Review, Funktionstests und Leistungstests enthalten sein.

Von Parasoft

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.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.