Testen von Anwendungen in der Cloud

Artikel von Varsha Jadhav

Ein taktischer Ansatz

In der Welt der Technologie erfordert eine schwierige Wirtschaft Innovationen. Jede umgesetzte Innovation beseitigt möglicherweise nicht vollständig die Probleme, aber Improvisation hilft definitiv in der aktuellen Situation, was sich in einer Vielzahl von Verbesserungen wie Leistung, Qualität, guter ROI und einer besseren Geschäftslage wiederspiegelt. Unternehmen aus vielen Branchen und Regionen haben dieses Service-Modell in ihren Geschäftsprozessen verwendet und haben große Erfolge damit erzielt. Dieses Service-Modell führt zu optimierten Ressourcen, zugeschnitten auf die Bedürfnisse, und verbesserter Agilität durch eine stärkere Konzentration auf Business-Anforderungen.

Cloud Computing hat neue Möglichkeiten für den Softwaretest eröffnet. Ein Softwaretest benötigt traditionell betrachtet eine teure dedizierte Infrastruktur und Ressourcen, die nur sporadisch verwendet werden. Die zunehmende Komplexität von Business-Anwendungen macht es schwierig für Organisationen, interne Testumgebungen aufzubauen und zu pflegen, die Echtzeit-Umgebungen simulieren können. Der cloudbasierte Softwaretest bietet niedrigere Kosten, Zahlung-nach-Nutzung, eine Reduzierung der Investitionen (Cap-Ex), einen On-Demand-Zugang, eine reduzierte Wartung, verbesserte Zusammenarbeit, ein höheres Maß an Effizienz und vor allem einen schnelleren Markteintritt für die wichtigsten Business-Anwendungen.

Dieses Dokument legt den Schwerpunkt auf „Testen in der Cloud“ als Service-Modell und darauf, wie Unternehmen die Vorteile von cloudbasierten Tests nutzen können, um die erwarteten Geschäftsanforderungen zu befriedigen, indem umfassende Tests von Anwendungen auf einer Cloud-Umgebung erfolgen, nachdem die richtigen Ansätze zum Umgang mit dem neuen Herausforderungen, die mit dieser Art des Testens verbunden sind, genutzt werden, und wie man effektiv Vorteile mit diesem Modell erreicht.

Was ist Cloud Computing?

Service­Modelle

SaaS: Anwendungen und Produkte sind auf Anfrage für alle Internetnutzer erhältlich. Zum Beispiel verlangt ein Online-Musikunternehmen eine bestimmte Summe für jedes heruntergeladene Musikstück.

PaaS: Die Laufzeitumgebung ist auf Anfrage erhältlich und wird von Entwicklern verwendet, um ihre Anwendungen auszuliefern. Das Rahmenwerk für die Bereitstellung von AnwendungsCode, zusammen mit verschiedenen OnDemand-Services, ist als PaaS-Angebot verfügbar.

IaaS: ComputingRessourcen wie Strom, Lagerung und NetzwerkKomponenten sind auf Anfrage erhältlich. IaaS ist für Architekten, wo die eigentliche Hardware-Infrastruktur auf einer „Zahlungnach-Nutzung“-Basis bereitgestellt wird.

Einsatzmodelle

Öffentliche Cloud: Anwendungen, Speicher und andere Ressourcen werden der Öffentlichkeit durch einen Dienstleister zur Verfügung gestellt. Dienste werden als „Zahlung-nachNutzung“-Modell über das Internet angeboten.

Gemeinschaftliche Cloud: Infrastruktur wird von Organisationen mit gemeinsamen Anliegen (Sicherheit, Compliance, Gerichtsstand, etc.) geteilt, sie wird selbst oder durch eine dritte Partei verwaltet und intern oder extern gehostet.

Hybrid Cloud: eine Kombination von zwei oder mehr Clouds (privat, gemeinschaftlich oder öffentlich); bietet die Vorteile mehrerer Einsatz-Modelle.

Private Cloud: Die Infrastruktur wird ausschließlich für eine einzige Organisation genutzt, unabhängig davon, ob intern oder durch einen Dritten verwaltet und intern oder extern gehostet.

Cloud Computing ist ein Modell für den bequemen On-Demand-Netzwerkzugang zu einem gemeinsamen Pool von konfigurierbaren Computing-Ressourcen (zum Beispiel Netzwerke, Server, Speicher, Anwendungen und Dienstleistungen), die schnell bereitgestellt und freigegeben werden können und das mit minimalem Verwaltungsaufwand oder Interaktion des Dienstanbieters. Ein häufiges Missverständnis bei den meisten von uns ist, dass Cloud Computing und SaaS das Gleiche ist; in Wirklichkeit sind alle standardmäßigen SaaS-Umgebungen in der Cloud integriert. Allerdings sind nicht alle Cloud-Umgebungen unbedingt SaaS. Cloud Computing bietet verschiedene Kategorien von Dienstleistungen, die alle nach Bedarf über das Internet als Zahlung-nach-Nutzungs-Modell angeboten werden. Die grundlegenden drei Kategorien werden in Abbildung 1.2 gezeigt.

Was ist Cloud Testing?

Das Testen von Anwendungen, die in einer Cloud-Umgebung laufen, unterscheidet sich nicht vom Testen von Anwendungen in einer Nicht-Cloud-Umgebung, aber es erfordert, dass wir unterschiedliche Arten von Testmethoden kombinieren, mit denen wir separat in unserem regulären Projekten gearbeitet hätten. Die wichtigsten Schwerpunkte für das Testen von Cloud-Lösungen sollten Konfiguration, Integration, Geschäftsvorfälle, Sicherheit/Zugänglichkeit und Performance sein, weil die Anwendung von einer Vielzahl von Kunden verwendet wird. Allerdings kann das entsprechende Testverfahren je nach Komplexität des Geschäftszweigs implementiert werden. Nahtlose Integration der Cloud-Lösung mit den vor-und nachgelagerten Anwendungen des Kunden ist entscheidend für den Markterfolg des Produktes, weshalb auch Sicherheitstests eine wichtige Rolle spielen.

Testen in der Cloud – Warum?

  • Geringe Kosten Cloud bietet einen kostengünstigen, internetbasierten Dienst mit niedriger
    Einstiegshürde, Null-Infrastruktur und geringen Anpassungskosten.
  • Geringe Wartungskosten Der Verbraucher ist nicht verantwortlich für die Wartung von Anwendungen oder Servern, das übernimmt der CloudAnbieter.
  • Mittlere Markteinführungszeit (MTTR) Es ist ein On-Demand-Service mit monatlichen, vierteljährlichen oder jährlichen Abonnements. Der Service ist sehr schnell innerhalb einer bestimmten Frist verfügbar, da keine Einkaufskosten für Software, Hardware oder Installation erforderlich sind.
  • Flexible Verträge Verträge sind flexibel, da sie transaktionsbasiert sind, während Kosten im traditionellen Vertragsmodell oft starr festgelegt werden.

Wie unterscheidet sich Testen in der Cloud vom traditionellen Testen?

  • Komplettes Einsatzmodell für Plattform-, Test-Experten und Werkzeuge
  • Geteilte Mandanten-Testumgebungen
  • Sicherheit (Test-Benutzer-IDs/SSO)
  • Integration von lokalen und RemoteSystemen
  • Zugang zu einer Vielzahl von Testwerkzeugen, dadurch die Möglichkeit von mehr Testabdeckung
  • Performance-/Volumentest
  • Fehlerisolierung
  • Dokumentation von “out of the box”Anforderungen
  • Release-Management

Cloud-Computing-Architektur

Wie in Abbildung 1.3 gezeigt, sind die Anwendungen in einer Cloud-Umgebung gehostet und stehen Benutzern nach Bedarf zur Verfügung.

Wichtige Faktoren in einer Cloud Adaption

  • SaaS-Modelle führen zu TaaS (Testen as a Service).
  • SI (Systemintegratoren) spielen eine wichtige Rolle bei der Bereitstellung von strategischer und taktischer Unterstützung bei ihren Cloud-Initiativen
  • Identifizieren von Komponenten (Infra struktur, Plattform, Anwendungen, Werkzeuge und Geschäftsprozesse), die geeignet sind, um in die Cloud migriert zu werden.
  • POC – „Proof of Concept“ (Machbarkeit) ist ein guter erster Ansatz um taktisch an die Kunden-Cloud-Initiative anzuschließen.
  • Der wichtigste Bestandteil eines jeden Cloud-Angebots ist das Service Level Agreement (SLA), das die Zusagen Ihres Providers darlegt. Sie wollen sicherstellen, dass die SLA-Performance, Verfügbarkeit, Benachrichtigung der Ausfallzeiten und andere kritische Faktoren beschrieben sind, sowie die Auswirkungen, wenn diese Zusagen nicht erfüllt werden. Die SLA sollten auch das Datenmodell angeben und die Regeln, um Daten zu denormalisieren oder darüber, wie sie dargestellt sind.
  • Die Wahl der richtigen Architektur: Es ist wichtig, die richtige Architektur für die SaaS-Anwendung auf Basis der Kritikalität Ihrer Anwendung und dem entsprechenden Maß an Sicherheit auszuwählen. Stellen Sie sicher, dass Ihre Datenarchitektur Mandantenfähigkeit unterstützt. Bei Mandantenfähigkeit läuft dieselbe Instanz der Software auf den Servern, die mehrere Mandanten bedient.

Geschäftsbereiche

Cloud Computing hat sich zu einem üblichen Lösungsmodell für viele Geschäftsanwendungen entwickelt und ist weit verbreitet in der Buchhaltung, Kundenbeziehungsmanagement (CRM), Management-Informationssystemen (MIS), Enterprise Resource Planning (ERP), Fakturierung, Personal Management (HRM), Content Management (CM), Supply Chain Management, Online-Backup, Business Intelligence (BI), Service Management und vielen mehr.

Ansatz zum Cloud-­Testen

Es gibt keine gut definierten, schlüsselfertigen Ansätze für Cloud-Tests, da jedes Unternehmen seine eigenen Anforderungen stellt. Allerdings werden die folgenden etablierten Best Practices helfen, den Erfolg sicherzustellen.

  • Analysieren Sie, ob Ihre Anwendung flexibel genug ist, um in der Cloud zu laufen.
  • Verstehen Sie die Herausforderungen, denen Sie begegnen könnten, wenn Sie in die Cloud gehen.
  • Die Auswahl des richtigen Anbieters ist wichtig, da sie über die Robustheit der Anwendung und die finanzielle Tragfähigkeit (Berechnung der Total Cost of Ownership (TCO)), mitentscheidet.
  • Gutes Verständnis der Testwerkzeuge, deren Verfügung sowie Vor-und Nachteile beim Testen von verschiedenen Arten von Cloud-Anwendungen. Eine Machbarkeitsstudie (Proof of Concept) wird bei der Auswahl der richtigen Automatisierungswerkezuge helfen, da die Automatisierung eine wichtige Rolle spielt aufgrund der Beweglichkeit der Cloud-Anwendungen. Setzen Sie die 2080-20 Regel ein, d. h. automatisieren Sie die 20 Prozent der Skripte, die 80 Prozent der Ausführungszeit und 20 Prozent der Testingenieurfähigkeiten in Anspruch nehmen.
  • Bereiten Sie einen Testplan vor, wie Sie Anwendungen in der Cloud testen wollen.

Klassifizierung der verschiedenen Arten von Tests in der Cloud

Die verschiedenen Arten von Tests in Abbildung 1.4 können für cloudbasierte Testlösungen ausgeführt werden.

  • Funktionale Tests – Testtypen sind unter Business Tests angegeben.
  • Nicht-funktionale Tests – Testtypen sind unter Sicherheits- und Performancetests angegeben
  • Funktionstests – Testtypen sind unter Kompatibilität und Live-Tests angegeben

Cloud-­Testing­-Workflow

Abbildung 1.5 definiert, welches Verfahren zu befolgen ist, um Anwendungen in der Cloud zu testen.

Herausforderungen

  • Sicherheit, Datenschutz, Datenintegrität und Verfügbarkeit.
  • Das Testing von Cloud-Anwendungen hat seine eigenen Herausforderungen, wie SaaS-Upgrades, kurze QA-Validierungszyklen, Live-Upgrades, Datenintegrität, die Auswirkungen auf multiple Abonnenten und vor allem die primäre Forderung von hoher Qualität.
  • Begrenzte Möglichkeiten für Open- Source-Testwerkzeuge.
  • Das Testing von Cloud-Anwendungen und Netzwerken erfordert einen breiten Mix von Datenverkehr, aktuelle Sicherheitsabdeckung und unglaublich hohe Leistung und Durchsatz.
  • Gründliche betriebswirtschaftliche Kenntnisse für ein effektives Testen von konfigurierbaren und nicht konfigurierbaren Komponenten.
  • Validierung von Schnittstellen-Kompatibilität, die Einhaltung gesetzlicher Vorschriften und Standards wie PCI, etc.
  • Simulation von Live-Upgrade-Tests.

Testwerkzeuge

Cloud­-Testwerkzeuge

Cloud-Test: SOASTA ist der führende Anbieter von cloudbasierten Testdienstleistungen und hat das branchenweit erste browserbasierte Produkt Cloud-Test entwickelt. Es kann verwendet werden, wenn Last-, Performance- und Zuverlässigkeitstests auf einer SaaS-Anwendung durchgeführt werden müssen.

Push-To-Test: Eine einzige integrierte Plattform, die die Wiederverwendung von Unit-Tests als funktionelle/Integrations-/ Last-/Performancetests und Business-ServiceMonitoren unterstützt. Unterstützt die Automatisierung von Web-Rich-Internet-Anwendungen (RIA) mit Ajax-Techniken, SOAP/ WSDL-basierten WebServices und serviceorientierte Architektur.

Gomez: Die einzige Performance-Monitoring- und Lasttest-Lösung für Web-, Cloud-, Mobile- und Streaming Applications.

uTest, QMetry, PractiTest, LoadRunner, LoadStorm, Appistry und viele andere.

Multi-­Browser-Cloud­-Testwerkzeuge

Adobe Browser Lab: Ein kostenloser Online-Dienst, der mithilft sicherzustellen, dass die Anzeige des Web-Content auf allen Browsern und Betriebssystemen wie erwartet aussieht.

Lackmus: NebenCross-BrowserTests werden auch mehrere EMail-Clients wie Outlook, GMail etc. getestet, damit die Anzeige auf allen Clients korrekt angezeigt wird. Plug-Ins ermöglichen Windows-und Mac-Kompatibilität.

Cross-Browser Testwerkzeug: Neben CrossBrowser-Tests bietet es auch Testmöglichkeiten wie die Überprüfung Ihrer AJAX-, JavaScript- und jQuery-Aktionen.

Vorteile

Der größte Vorteil an Cloud-Lösungen ist, dass sie leicht zugängliche Geschäftsanwendungen mit einer extrem kurzen Zeit bis zur Marktreife zur Verfügung stellen.

Die geringen Anlaufkosten, keine Wartungskosten und die schnelle Bereitstellung von Cloud-Lösungen durch zum Beispiel SaaS haben zu einem schnellen Return on Investment geführt. Von SaaS wird erwartet, dass es der Dienst sein wird, der innerhalb der Cloud-Modelle für die nächsten Jahre den höchsten Umsatz generieren wird.

Sicherheit hat oberste Priorität, indem die höchsten Qualitätsstandards gewährleistet werden, sodass wertvolle Daten vor allen Arten von Bedrohungen geschützt sind.

Die Zukunft des Softwaretest – Cloud

SaaS und andere Cloud-Computing-Anwendungen werden sich in den kommenden Jahren voraussichtlich drastisch erweitern für alle kleinen, mittleren und großen Unternehmen.

Der Anteil der SaaS-Anwendungen ist auf dem Vormarsch, wie sich mit dem Anstieg des weltweiten SaaS-Umsatzes belegen lässt.

Forrester, ein globales Forschungs- und Beratungsunternehmen, besagt, dass für die Zukunft mehr als 80 % der amerikanischen Cloud-Umsätze von SaaS kommen.

Indem globale Konnektivität die Norm in der Technologie wird, hat der Zugriff auf Anwendungen über die Cloud eine größere Chance, an Glaubwürdigkeit zu gewinnen, weil sich Menschen an die On-Demand-Bereitstellung, die SaaS bietet, gewöhnt haben.

Zusammenfassung

Cloudbasierte Anwendungen wie SaaS unterstützen Organisationen dabei, sich auf ihr Kerngeschäft zu konzentrieren, anstatt sich um nicht kernrelevante Bereiche wie IT-Anwendungsentwicklung, Beschaffung von Hardware/Software etc. zu kümmern.

Cloudbasierte Anwendungen reduzieren auch den Aufwand für Support, Pflege und Aktualisierung dieser nicht kernrelevanten Anwendungen und geben eine erhebliche Menge an Ressourcen in der Organisation frei.

Automatisierung von Cloud-Anwendungen hilft die Release-Zyklen von Upgrades und Releases zu verkürzen. Ein umfassendes Testkonzept und ein kompetentes, erfahrenes Team sind erforderlich, um die Tests mit der richtigen Strategie zu führen, so dass Organisationen alle Vorteile der Cloud nutzen können, wie höhere Verfügbarkeit des Systems, höhere Zuverlässigkeit, höhere Flexibilität, Skalierbarkeit und die Steigerung der Sicherheit.

Anhang

Akronyme und Abkürzungen

SaaS: Software as a Service

TaaS: Testing as a Service

ROI: Return on Investment

MTTR: Mean Time to Market

SLA: Service Level Agreement

TCO: Total Cost of Ownership

PCI: Standard für die Annahme von Kreditkarten

QA: Quality Assurance

WSDL: Web Services Description Language

SRS: System Requirement Specification

Der Artikel wurde aus dem Englischen übersetzt und ist erstmals in Testing Experience Nr. 20, „Testing in the Cloud“ (Dezember 2012) erschienen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

Recent Posts