














Von Christoph Witte
Es ist teuer, niemand mag es, es verlangsamt unter Umständen die Entwicklung, aber es ist notwendig. Software-Testing stellt sicher, dass die entwickelte Software funktioniert und keine Schäden verursacht. Diese Sicherheit gibt es natürlich nicht kostenfrei, aber sie ist alle mal billiger, als Kunden mit fehlerhaft funktionierender Software zu konfrontieren. Dieser Monitor hilft Anwendern dabei, mit dem ungeliebten Thema möglichst effizient umzugehen und erklärt, worauf Anwender achten sollten, wenn sie vor Fragen nach den richtigen Test-Prozessen stehen oder zwischen internen Testkapazitäten und externen Spezialisten für die Software-Qualitätssicherung wählen sollen.
Ob nicht funktionierende Bankkarten, Buchungschaos bei Airlines, grafisch „zerschossene“ Webauftritte, fehlerhafte Stromrechnungen oder falsche Risikoberechnungen für Anlagen und Kredite, fast immer sind Fehler in der entsprechenden Software dafür die Ursache. Sogar die Selbstbeschleunigung von Toyota-Pkws, die zur größten Rückrufaktion in der Geschichte der Automobilindustrie geführt hat, liegt in einem Softwarefehler der Motorsteuerung begründet. Und obwohl von Software so viel und teilweise so Entscheidendes abhängt, weil in unserer hoch industrialisierten, komplexen Welt nichts mehr ohne Softwareunterstützung funktioniert, scheint Software heute öfter mit mehr Defekten in Produktion zu gehen als früher. „Scheint“, weil über solche Fehler keine Statistik geführt wird. Vielleicht entsteht dieser Eindruck auch nur dadurch, dass Software heute viel häufiger Prozesse unterstützt, die den Endkunden von Unternehmen oder auch öffentlichen Organisationen betreffen. Da haben Fehler natürlich sehr viel größere Auswirkungen als im Back-Office eines Unternehmens und fallen stärker auf.
Dabei gibt es im Prinzip ein ziemlich einfaches und erprobtes Mittel, um desolate Pannen zu verhindern: Möglichst weit vor dem produktiven Einsatz, also sehr früh im Entwicklungsprozess ausprobieren, ob das Programm das fehlerfrei ausführt, was sich die Entwickler ausgedacht haben und, ob es andere Software, mit dem das Programm zusammenarbeiten muss, nicht stört. Theoretisch sieht jeder IT-Verantwortliche und jeder Software-Entwickler selbstverständlich ein, dass Software rigoros getestet werden muss, bevor sie produktiv geht. Allerdings sind solche Tests zum Teil aufwändig, müssen ordentlich konzipiert und nicht zuletzt müssen sie logisch in den Entwicklungsprozess eingegliedert werden. Das ist teuer, braucht Arbeitskraft und muss organisiert werden. Doch knappe Budgets und der allerorten herrschende Zeitdruck rücken mitunter die gravierenden Konsequenzen fehlerhafter Software aus dem Blickfeld der Verantwortlichen, die dann für die vermeintlich billigere Lösung, nämlich für den Verzicht auf ausreichende Tests, optieren.
In aller Regel rächt sich die mangelnde Qualitätssicherung spätestens dann, wenn die Software im Produktivbetrieb fehlerhafte Resultate liefert. Allerdings reicht manuelles, unsystematisches Testen am Ende eines Entwicklungsprozesses nicht aus. Die Qualitätssicherung sollte sehr früh im Entwicklungsprozess einsetzen, je weiter fortgeschritten eine Software ist, desto aufwendiger ist es, frühe Fehler zu beseitigen. Außerdem sollte berücksichtigt werden, dass nicht nur selbst entwickelte Software getestet werden muss. Auch Standardsoftware, die in eine individuelle IT-Landschaft eingepasst wird, braucht eine Überprüfung. Das gilt nicht nur für die Erstimplementierung, Testen ist immer angebracht, wenn Patches oder Updates aufgespielt werden. Bei Major Updates und Funktionserweiterungen gilt es ohnehin, rigoros zu testen. Dabei empfehlen praktisch alle Spezialisten folgende Prinzipien zu beachten:
Trennen von Test und Entwicklung: Nur wenn es eigenständige Teams, eigene Prozesse und ein eigens Budget gibt, bringen Tests unbeeinflusste Ergebnisse. Entwicklungsteams, die auch Testen, erleben einen ständigen Interessenkonflikt. Zum einen müssen sie Kollegen „Fehler“ nachweisen, zum anderen geht die Fehlerbeseitigung auf ihr Budget, was wiederum die Entwicklung verteuert. Die Projektkosten könnten damit höher ausfallen als geplant.
Qualitätsmanagement ist mehr als Qualitätssicherung: Wie die Bezeichnung bereits ausdrückt, geht es bei der Qualitätssicherung darum, sicherzustellen, dass ein bestimmtes Programm genau die Funktionen ausführt, für die es entwickelt beziehungsweise eingekauft wurde. Qualitätsmanagement bezieht sich dagegen sehr viel stärker auf den zugrunde liegenden Prozess, wie er gestaltet und wie er im Unternehmen verankert ist. Qualitätssicherung ist Teil des Qualitätsmanagements, das die Regeln für das Testen festlegt, den Qualitätsbegriff vorgibt, die Prozesse gestaltet und für die Verankerung der Regeln im gesamten Unternehmen sorgt.
IT-Verantwortliche zeichnen sich für das Testing verantwortlich und kommunizieren die Notwendigkeit der Qualitätssicherung auch im Top-Management: Der CIO und das IT-Management sind für das Funktionieren der Systeme voll verantwortlich. Das heißt auch, dass sie die Schäden zu verantworten haben, die durch fehlerhafte Software entstehen und durch eine ordnungsgemäße Qualitätssicherung bzw. Qualitätsmangement vermeidbar wären. Dafür braucht es allerdings die Unterstützung des Top-Managements, die nur gewährt wird, wenn die Notwendigkeit dafür wirklich verinnerlicht ist.
Tests sollten systematisiert und wo möglich automatisiert werden: Manuelles, punktuelles Testen ist unzureichend. Es deckt nicht alle Fehler auf und oft werden aufgrund mangelnder Dokumentation redundante Tests gefahren und andere Fehlerquellen dafür unberücksichtigt gelassen. Es gilt, eine Systematik darüber zu entwickeln, wann, wo und wie getestet wird. Darüber hinaus geht es um die ordentliche Dokumentation der Tests mit aussagefähigen Protokollen und der aus den Ergebnissen abgeleiteten Maßnahmen. Spezialisierte Dienstleister stellen Test-Tools und -Suiten zur Verfügung, mit denen sich die Tests selbst, aber auch die Dokumentation automatisieren lassen. Auch Anbieter von Standardsoftware stellen Test-Tools für ihre Lösungen zur Verfügung.
Der Testaufwand muss im Verhältnis zum möglichen Schaden stehen: Je unternehmenskritischer ein Prozess ist, der von einem IT-System unterstützt wird, desto umfänglicher fallen die Tests aus. Geht es um Randprozesse oder kleine Tools muss weniger streng auf die Qualitätskontrolle geachtet werden. Diese Unterscheidung hilft, die Testaufwände in Grenzen zu halten.
Die Test-Teams sollten sich aus Spezialisten zusammensetzen: Inzwischen ist Software-Tester so etwas wie ein eigenes Berufsbild geworden. Aus gutem Grund: Qualitätssicherung ist angesichts immer mächtigerer Software-Produkte ein komplexes Arbeitsgebiet geworden, das man nicht mehr „nebenbei“ bewältigen kann. Anwender sollten deshalb auf Spezialisten in dieser Disziplin zurückgreifen, das verbessert die Ergebnisse
Die Vor- und Nachteile von internen Tests und ausgelagerter Qualitätssicherung genau abwägen und gegebenenfalls Dienstleister beauftragen: Wie aus den bisherigen Erläuterungen hervorgeht, benötigt eine Qualitätssicherung, die ihren Namen verdient, einen gewissen Aufwand und ausreichendes Know-how. Deshalb stellt sich auch beim Testen die Frage: make or buy? Für eine Auslagerung spricht das aufgrund von Erfahrung und Spezialisierung größere Know-how spezialisierter Dienstleister sowie ihr systematisches Vorgehen. Für Unternehmen, die stark auf Standardsoftware setzen, liegt eine Auslagerung näher, weil die Dienstleister für Standardprodukte entsprechende Methoden und Routinen entwickelt haben, die entweder ohne Anpassung funktionieren oder mit relativ geringem Aufwand anpassbar sind. Mögliche Nachteile der Auslagerung sind der Mangel an Test-Know-how im eigenen Unternehmen sowie die eventuell höheren Kosten.
Seit einigen Jahren offerieren verschiedene Dienstleister (siehe wichtige Provider) Test-Dienstleistungen, sogenanntes Managed Testing. Diese Provider übernehmen auf Wunsch die Qualitätssicherung für ein Anwenderunternehmen. Sie bieten die gesamte Palette des Testings an, vom einfachen Funktionstest über Performance- bis hin zu Integrationstests. Teilweise ist die Anpassung der Testprozesse im Unternehmen und der Aufbau einer Test Factory im Vertragsumfang enthalten. Das Verfahren der Managed Test Services hat sich bewährt. Die Aufgaben des Testers werden in der Regel mit ergebnisorientierten Service Level Agreements (SLAs) versehen, die dem Auftraggeber garantieren, dass die von ihm entwickelte beziehungsweise eingesetzte Software den festgelegten Qualitätskriterien entspricht. Auf diese Weise müssen Unternehmen keine eigenen Kapazitäten für das Testing aufbauen. Nach Untersuchungen der Analysten von Pierre Audoin Consultants liegen die Kosten von Managed Testing in der Regel niedriger als wenn Unternehmen eigene Tests durchführen. Darüber hinaus, so PAC weiter, ist die Testing-Qualität oft höher. Die PAC-Experten rechnen mit einer weiterhin starken Nachfrage nach Managed Testing.
Um diese Art von Test-Outsourcing erfolgreich zu gestalten, sollten Unternehmen das für sie richtige Delivery-Modell wählen, messbare Ziele mit dem Dienstleister vereinbaren und die Service Levels realistisch ansetzen. In punkto Delivery-Modell muss entschieden werden, ob der Dienstleister komplett remote arbeitet oder Personal beim Anwender vorhält. Ersteres ist preiswerter, die zweite Variante sorgt für eine bessere Kommunikation und führt dadurch zu Know-how-Aufbau und letztlich einer besseren Qualität in der Softwareentwicklung.
Die Analysten von Pierre Audion Consultants haben sich den Markt für Software-Testing in Deutschland genau angeschaut und die wichtigsten Dienstleister in diesem Segment beschrieben.
SQS – In Deutschland ist die SQS AG Marktführerin Im Bereich dedizierter externer Testing-Dienstleistungen. Anders als die meisten anderen hier aufgeführten Dienstleister konzentriert sie sich ausschließlich auf dieses Marktsegment und kann auf entsprechend viele Projekte, fundierte Skills und Kapazitäten vorweisen. Den größten Anteil ihres Umsatzes generiert die SQS in Deutschland. Weil das Unternehmen mit Hauptsitz in Köln stark auf den Heimmarkt fokussiert ist, muss es in der globalen Lieferfähigkeit Abstriche machen.
IBM – bietet ein flächendeckendes Spektrum hochstandardisierter End-to-End Testing-Services. Es beinhaltet Softwaretools, Services und Testumgebungen für Hardware. IBM bietet einen ganzheitlichen Ansatz, Branchen- und Prozess-Know-how. Das Managed-Testing wird über eine spezielle Vertriebsmannschaft angeboten. Als wichtiger Referenzkunde in Deutschland gilt die Deutsche Bank.
T-Systems – Ihre hochentwickelten Test-Services bietet die Telekomtochter normalerweise als Teil großer IT-Projekte an, mitunter aber auch als dedizierte Projekte. Sie verfügt zwar über eine Test-Factory, aber ihre Fähigkeit, weltweit zu liefern, sind eingeschränkt. T-Systems bietet ihren Kunden als einziger Anbieter eine Kombination von IT- und Telecom-Services an. Sie verfügt über tiefgreifendes Branchen- und Prozess-Know-how in verschiedenen Industrien wie Automotive, Telekommunikation und der öffentlichen Hand.
HP-EDS – Das Unternehmen bietet ein reichhaltiges Portfolio von Test-Services. Die jüngste HP-Tocher bedient in erster Linie Großkunden und kann diese global auch mit automatisierten Tests beliefern. Durch die Akquisitionen von RelIQ und Mercury Interactive verfügt HP über große und gut trainierte Test-Teams.
Logica – verfügt über große Test-Ressourcen. Das Unternehmen bietet Tests als Bestandteil großer Projekte und als eigenständigen Service an. Logica ist vor allem im Bereich Managed Testing gut aufgestellt und weist besonderes Know-how in verschiedenen Branchen wie Telekommunikation, Utilities und Finanzindustrie auf.
Accenture – bietet Testing in der Regel als Teil großer Projekte an. Die Services sind hoch industrialisiert. Das Unternehmen verfügt über gutes Branchen-, Prozess- und Beratungswissen, von dem es auch im Bereich Testing profitieren kann.
Capgemini – offeriert ebenfalls eine breite Palette an Testing-Services. Das Tochterunternehmen Sogeti steuert, neben einem großen Ressourcenpool, Methoden und Tools bei, durch die das Unternehmen einen standardisierten Ansatz verfolgen kann. Als wichtiger Referenzkunde in Deutschland gilt VW.
Login für Mitglieder
Sie sind noch kein Mitglied im
ICT Research Board?