IT-Radar

...ein Service der Universität Duisburg-Essen

Software Testing in der Cloud

Report

Cloud Computing ist seit geraumer Zeit ein Hype-Thema und es wird viel darüber geredet. Im Gegensatz zu anderen Hypes lässt sich jedoch tatsächlich eine zunehmende Nutzung und damit einhergehend ein Trend zur Verlagerung von Diensten in die Cloud verzeichnen.

Die Big Player der Softwareindustrie IBM, Google, Microsoft und mittlerweile auch Apple bieten cloud-basierte Dienste an. Amazon war einer der Vorreiter auf diesem Gebiet, heute sind die Cloud-Dienste der am schnellsten wachsende Geschäftsbereichs des Online-Versandhändlers. Doch nicht nur die Großen der Branche setzen auf Cloud Computing, auch die kleinen und mittelständischen Unternehmen bieten zunehmend cloud-basierte Dienstleistungen an oder greifen zumindest für die Bereitstellung von Diensten auf eine Cloud-Infrastruktur zurück.

Das Bereitstellen von Softwarediensten in der Cloud wirft jedoch auch einige neue Fragen auf: Muss Software, die in der Cloud ausgeführt wird anders getestet werden, als Software, die auf dem Desktop ausgeführt wird? Bietet die Etablierung des Cloud Computings neue Möglichkeiten für das Testen von Software im Allgemeinen? Zu diesem Thema gibt es bislang eine übersichtliche Menge an Forschungsarbeiten, doch die Anzahl der Wissenschaftler, die sich diesem Thema widmen und somit auch die Anzahl der entsprechenden Arbeiten, steigt stetig an.

Der IT-Radar geht diesen Fragen nach und gibt im IT-Radar Report einen Überblick über den Stand der Forschung sowie Forschungsfragen, die noch bearbeitet werden müssen.

Druckversion als PDF herunterladen...


Cloud Computing


Es gibt keine einheitliche Definition von Cloud Computing. Wissenschaftler und Anbieter von Cloud-Diensten definieren Cloud Computing im Detail stets unterschiedlich. Der gemeinsame Nenner
ist, dass sich eine Cloud-Anwendung über einen einfachen (On-Demand-) Zugriff auf skalierbare Speicherdienste, Rechen- oder Netzwerkinfrastruktur definiert. Weiterhin wird Cloud Computing hinsichtlich
des angebotenen Service-Modells und des Deployment-Modells unterschieden. Dabei werden die folgenden Service- und Deployment-Modelle unterschieden:

Service-Modelle:

1. Software as a Service (SaaS)

2. Platform as a Service (PaaS)

3. Infrastructure as a Service (IaaS)

Deployment-Modelle:

1. Private Clouds

2. Community Clouds

3. Public Clouds

4. Hybrid Clouds


Nach diesen Kriterien definiert auch das US National Institute of Standards and Technology (NIST) den Terminus Cloud Computing. Die Service- und Deployment-Modelle sind dabei genauso Veränderungen
unterworfen, wie das Cloud Computing selbst. Das bedeutet, dass es zukünftig weitere Service- und Deployment-Modelle geben wird. Wie zum Beispiel Human as a Service (HaaS), das auf
Crowdsourcing zurückgreift und wofür bereits heute entsprechende Dienste verfügbar sind.


Testen in der Cloud


Die Art und Weise des Testens in der Cloud ist eine grundsätzliche Frage. Dabei muss unterschieden werden, ob Software getestet wird, die in der Cloud als Software as a Service bereitgestellt wird,
ob Standard-Web-Anwendungen getestet werden, oder ob die Cloud selbst getestet werden soll. Die Cloud nimmt beim Test dann entweder die Rolle des „System under Test (SUT)“, oder die des Testtreibers ein.


Software Testing as a Service


Der Klassifikation der Service-Modelle folgend kann Software Testing as a Service als eigenständiges Modell die Reihe der Service-Modelle erweitern. Das Ziel ist hierbei, das Testen von Software
als Dienst in der Cloud anzubieten. Die Bereitstellung des Dienstes kann dabei über eine Software erfolgen, die in der Cloud als Software as a Service bereitgestellt wird, oder als Service, der vollständig
von einem Menschen als Testdienstleister bereitgestellt wird. Im Aufsatz „Research Issues for Software Testing in the Cloud“ [1] werden für dieses Service-Modell drei Facetten identifiziert:


1. Die zu testende Anwendung ist online. Es
kann sich dabei um eine Software as a Service
(SaaS) handeln oder um eine Standard-Web-
Anwendung.


2. Die Testinfrastruktur ist auf verschiedenen
Plattformen und Cloud-Deployment-Modellen
(Private, Community, Public oder Hybrid)
bereitgestellt.


3. Die Cloud selbst soll getestet werden, zum
Beispiel mit dem Ziel die Lastleistung und
Sicherheit zu bestimmen.


Diese Facetten zeigen die vielfältigen Möglichkeiten und Spielarten für den Einsatz von Softwaretests in
der Cloud. So ist es nicht nur möglich Web-Anwendungen zu testen, egal ob es sich um eine Standard-Web-Anwendung handelt oder eine Software as a
Service oder auch die Cloud selbst.


Beispiele


Es gibt bereits einige Beispiele, die den erfolgreichen Einsatz von Cloud Computing im Softwaretest dokumentieren. Diese werden im Folgenden dargestellt und deren wichtigste Ergebnisse usammengefasst. Die Lektüre der Artikel ist für Anwender des cloud-basierten Testens sehr zu empfehlen.


Test eines Network Management Systems


[2] beschreibt den Test eines Network-Management-Systems (NMS) für ein VoIP-System. Die Cloud wurde aufgrund der Skalierbarkeit gewählt. Ausgeführt wurden die Tests auf Amazons Elastic
Cloud 2 (EC2). Die erzielten Ergebnisse sind beeindruckend, insbesondere die Kosten sind mit 120$ überschaubar.


York Extensible Testing Infrastructure


Der Artikel [3] stellt den Einsatz der York Extensible Testing Infrastructure (YETI) dar, einem automatisierten Werkzeug für den Zufallstest in der Cloud. Obwohl YETI zu den schnellsten Werkzeugen seiner
Art zählt, gibt es Performanceprobleme bei dem Testen umfangreicher Software. Es wurde beobachtet, dass die Ausführungsgeschwindigkeit von 106 Methodenaufrufen pro Minute auf 10³ Methodenaufrufe
pro Minute sinken kann. Darüber hinaus gibt es auch Sicherheits-Probleme von YETI, die durch den Einsatz in der Cloud gelöst werden konnten. Es wird gezeigt, dass durch den intensiven
Einsatz paralleler Rechenkapazität in der Cloud, die Performanceprobleme von YETI gelöst werden konnten.


Cloud9


[1] beschreibt Cloud9, einen cloud-basierten Ansatz, der auf einer parallelen symbolischen Ausführung (symbolic execution) basiert. Symbolic Execution ist eine Technik des Softwaretests. Sie wird der Methodik der statischen Analyse zugeordnet und verwendet eine formale mathematische Beschreibung. Das zu testende Programm wird nicht ausgeführt, es wird lediglich der Quellcode untersucht.
Das Problem solcher Analyseverfahren ist die hohe Komplexität und der große Rechenaufwand, den sie erfordern. Der Ansatz bei Cloud9 ist, dass die Skalierbarkeit der symbolischen Ausführung (bzw.
der Engine, die sie ausführt) verbessert wird und dann mittels einer skalierenden Cloud-Lösung effizient eingesetzt wird. Die erzielten Ergebnisse zeigen, dass diese Lösung um ein bis zwei Größenordnungen schneller ist, als eine übliche Engine zur symbolischen Ausführung. Getestet wurde diese Lösung ebenfalls auf der Amazon Elastic Cloud 2 (EC2).


Themen der Forschung


Das zentrale Ansinnen des Aufsatzes [4] liegt darin, Forschungsbereiche aus dem Themengebiet Softwaretests in der Cloud zu identifizieren, die für die Wirtschaft eine große Rolle spielen. Dazu
interviewten Forscher der Technischen Universität Lappeenranta, Finnland, eine Reihe von Unternehmen aus verschiedenen Teilbranchen der IT-Industrie. Die Interviewpartner waren Angestellte
mit Leitungspositionen, vom Software Manager bis zum CEO. Aus deren Antworten zogen die Wissenschaftler Rückschlüsse auf die Bereiche, denen sich die Forschung im Bereich Softwaretests in der
Cloud widmen sollte. Es wurden drei Bereiche von Forschungsfragen identifiziert: Anwendungen, Management sowie rechtliche und finanzielle Aspekte. Die identifizierten Forschungsfragen werden im
Folgenden, geordnet nach den identifizierten Kategorien, wiedergeben. Auch wenn in dem Aufsatz noch weitere Forschungsfragen diskutiert werden, geben wir nur die aus unserer Sicht relevanten Fragen
wieder.


Anwendungsfragen


Geeignete Anwendungen


Anbieter und Anwender von Softwaretests in der Cloud sind vor allem daran interessiert zu wissen, welche Kategorien von Anwendungen sich cloud-basiert testen lassen. Dabei gilt es zu berücksichtigen,
dass die Akzeptanz für das Testen von kritischen Systemen (beispielsweise aus dem Finanzsektor) mit Hilfe einer Public Cloud gering sein kann. Da es sich bei solchen Systemen sehr häufig
um datenintensive Systeme handelt, würden gerade diese von einem solchen Test profitieren.


Qualität des Testprozesses


Nutzer wollen die Qualität des Testprozesses garantiert wissen, ebenso wie die Qualität der Anwendung, die zu testen ist. Die Herausforderung für die Wissenschaft ist, die cloud-basierten Testprozesse
bezüglich ihrer Qualität vergleichbar zu bewerten. Das ist schwierig, da Qualität ein komplexes Kriterium ist und es sich aus mehreren Qualitätseigenschaften zusammensetzt, die subjektiv unterschiedlich
stark gewichtet werden. Forschungsarbeiten zur Qualitätsbewertung von Prozessen und Werkzeugen müssen aber nicht von neuem beginnen, sondern können auf eine Vielzahl an wissenschaftlichen
Arbeiten zurückgreifen.


Cross-Cloud Testing


Aus Sicht des Kunden ist es sinnvoll, dass sich die Art und Weise des Monitorings und des Managements seiner Testanwendung unter verschiedenen Anbietern nicht unterscheidet. Dieser Wunsch ist nicht spezifisch für das Testen in der Cloud, es ist vielmehr auch ein Wunsch nach einer Harmonisierung von Cloud-Diensten im Allgemeinen. Die Herausforderung besteht darin eine solche Harmonisierung herzustellen.

Cloud-Testing-Lösungen für spezielle Anwendungsklassen


Es darf die Hypothese geäußert werden, dass der Test von verschiedenen Anwendungen derselben Anwendungsklasse auch nach dem gleichen oder zumindest einem ähnlichem Schema abläuft. Der
Wunsch nach standardisierten Testlösungen für bestimmte Anwendungsklassen ist ein alter Traum des Software-Engineerings. Die Nützlichkeit und (Teil-)Realisierbarkeit einer solchen Lösung ist unter dem
Gesichtspunkt der besonderen Leistungsfähigkeit des Cloud Computings neu zu untersuchen.


Managementfragen


Pool von Testern


Einer der greifbaren Vorteile für den Einsatz von Cloud Computing ist die erhöhte Ausfallsicherheit und ständige Verfügbarkeit der Maschinen und damit der Rechenleistung und ihrer Daten. Diese wird
ermöglicht durch mehrfache Redundanz, schnelle Migration von logischen Diensten und weiteren Hilfsmitteln. Für den Softwaretest sind häufig noch manuelle Interaktionen nötig. Eine Migration von
Testdienstleistungen in die Cloud muss auch diesen Umstand berücksichtigen. Das kann beispielsweise durch einen Pool von Testern, der eine 24/7 Verfügbarkeit ermöglicht, sichergestellt werden. Lösungen, die in diese Richtung gehen gibt es bereits, siehe uTest [5]. Hier werden Testdienstleistungen über Crowdsourcing angeboten. Die Tiefe, der Umfang und die Art der Leistung lässt sich recht frei
zusammenstellen. Solche Lösungen sind in das Service-Modell Human-as-a-Service (HaaS) einzuordnen und implizieren weitere Fragestellungen bezüglich der Kommunikation, der Interaktionen
sowie nach Sicherheit und Vertrauen.


Migrationspfade für Kunden


Die Erfahrung zeigt, dass eine Migration zu einem neuen System stets mit einigen Schwierigkeiten verbunden ist. Es ergeben sich Fragen nach der Übernahme von Daten, der Ausbildung der Nutzer,
der Akzeptanz von neuen Systemen und Abläufen und der Integration in die (Geschäfts-)Prozesse. Die Migration von Softwaretests in die Cloud nimmt sich an dieser Stelle nicht aus. Hier sind diese Fragen
ebenfalls zu beantworten, nicht zuletzt weil durch den Einsatz des Cloud Computings ein Paradigmenwechsel stattfindet, von in-house-organisierten und durchgeführten Testprozessen hin zu solchen Testprozessen, welche die Unternehmensgrenzen überbrücken. Die Konfiguration der Cloud-Dienste für den Kunden ist individuell und sollte den Gegebenheiten des Geschäftszwecks und den Anforderungen des Kunden dienen. Die Forschung sollte hier Möglichkeiten und Methoden schaffen das strukturiert zu ermöglichen.


Rechtliche Fragen


Die Verwaltung von Testdaten ist stets eine kritische Aufgabe, da dabei unter anderem Datenschutzbestimmungen und Vertrauensschutzrichtlinien eine wichtige Rolle spielen und deren Gestaltung
die Testspezifikation bestimmen. Dieser Problematik unterliegen auch Softwaretests, die nicht in der Cloud ausgeführt werden. Das Problem wird dadurch verschärft, dass die zu testende Cloud außerhalb
des Unternehmens aufgestellt ist und weil Personen an diesen Tests beteiligt sind, die dem Unternehmen nicht angehören. Dieses Problem wird bereits seit einiger Zeit untersucht, da eine Lösung auch für traditionelle Softwaretestverfahren dienlich wäre. Im Kontext des Softwaretests in der Cloud sollte dieser Forschungsfrage eine weitaus größere Bedeutung als bisher beigemessen werden.


Fazit


In diesem Beitrag hat der IT-Radar eine Übersicht gegeben, welche Möglichkeiten und neue Fragestellungen sich für das Testen von Software ergeben, die in der Cloud ausgeführt wird und für den Softwaretest, der die umfangreichen Möglichkeiten des Cloud Computings instrumentalisiert. Der Trend zur Migration von Diensten und Anwendungen in die Cloud greift zunehmend auf den Softwaretest über. Wie in Abschnitt 3.1 gezeigt wurde, gibt es bereits erste cloud-basierte Dienste für den Softwaretest. Das Fazit des IT-Radars ist, dass Softwaretests in der Cloud neue Möglichkeiten bieten, um sowohl
den wachsenden Qualitätsanforderungen an Software gerecht zu werden, als auch dem zunehmenden Umfang von Softwaresystemen und dem damit verbundenen steigenden Aufwand für qualitätssichernde Maßnahmen mit neuen effizienten Mitteln zu begegnen. Für eine breite Adaption sind jedoch noch einige Forschungsfragen offen, siehe Abschnitt 3.2.Themen der Forschung.


Literaturverzeichnis



[1] L. M. Riungu, O. Taipale, and K. Smolander, “Research
Issues for Software Testing in the Cloud,”
Cloud Computing Technology and Science (CloudCom),
2010 IEEE Second International Conference
on Computing Technology and Science, pp. 557–
564, 2010.

[2] Z. Ganon and I. E. Zilbershtein, “Cloud-based
Performance Testing of Network Management Systems,”
Computer Aided Modeling and Design of
Communication Links and Networks, 2009. CAMAD
‚09. IEEE 14th International Workshop on, pp. 1–6,
2009.

[3] M. Oriol and F. Ullah, “YETI on the Cloud,” in
Software Testing, Verification, and Validation Workshops
(ICSTW), 2010 Third International Conference
on, 2010, pp. 434–437.

[4] L. Ciortea, C. Zamfir, S. Bucur, V. Chipounov, and
G. Candea, “Cloud9: a software testing service,”
ACM SIGOPS Operating Systems Review, vol. 43, no.
4, pp. 5–10, Jan. 2010.

[5] http://www.utest.com

Softwaretesten_in_der_Cloud.pdf


Dieser Beitrag wurde verfasst von Andreas Heinecke





Twitter Bookmark Software Testing in der Cloud  at del.icio.us Facebook Google Bookmarks FriendFeed Digg Software Testing in der Cloud Mixx Software Testing in der Cloud Bloglines Software Testing in der Cloud Technorati Software Testing in der Cloud Fark this: Software Testing in der Cloud Bookmark Software Testing in der Cloud  at YahooMyWeb Bookmark Software Testing in der Cloud  at Furl.net Bookmark Software Testing in der Cloud  at reddit.com Bookmark Software Testing in der Cloud  at blinklist.com Bookmark Software Testing in der Cloud  at Spurl.net Bookmark Software Testing in der Cloud  at NewsVine Bookmark Software Testing in der Cloud  at blogmarks Bookmark Software Testing in der Cloud  with wists Bookmark using any bookmark manager! Stumble It! Print this article! E-mail this story to a friend! Identi.ca

Trackbacks

    Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

    Noch keine Kommentare


Kommentar schreiben


Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Um einen Kommentar hinterlassen zu können, erhalten Sie nach dem Kommentieren eine E-Mail mit Aktivierungslink an ihre angegebene Adresse.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

 
 

Logo des CampusLab
Blogverzeichnis - Blog Verzeichnis bloggerei.de