Marco GerussiMarco Gerussi Permanente Veränderung bedeutet permanentes Testen

01.04.09 by Marco Gerussi

Stetige Veränderung als Treiber

Unternehmen müssen sich laufend internen und externen Begebenheiten anpassen. Veränderungen an geschäftskritischen Software-Systemen sind die Folge. Dauernd werden Fehler korrigiert, Anpassungen vorgenommen und Konfigurationen geändert. Die Entwicklung von neuen Funktionen, die Einführung neuer Produkte, das Einspielen von Hot Fixes, Service Packages und Upgrades der Hersteller ziehen automatisch Veränderungsprojekte nach sich. Auch wenn die Veränderungen unterschiedliche Quellen haben, eines haben sie alle gemeinsam: alle betreffen die geschäftskritischen Applikationen im laufenden Betrieb – die Kernprozesse der Unternehmung. Fehler können gewaltige Auswirkungen haben, ganze Unternehmensbereiche können still stehen. Umso wichtiger ist es, die Veränderungen am System mit möglichst optimalem Ressourceneinsatz zu testen, um Risiken beim Ausrollen schon im Voraus zu minimieren. Hier setzt nachhaltiges Software-Qualitätsmanagement auf. Es soll nicht einfach «getestet werden». Testen soll

 

  • einheitlich, werkzeuggestützt, methodisch
  • effizient, einfacher durchführbar,
  • effektiv, überprüfbar (Inhalt und Abdeckung),
  • und doch umfassend,
  • nachvollziehbar, verlässlich
  • wiederverwendbar, für neue Tester lernbar,
  • automatisierbar und
  • planbar

 sein. Für die nötige Testumgebung, die diesen Ansprüchen genügt, bedarf es eines ganzheitlichen Software-Qualitätsmanagement und der Berücksichtigung von mindestens vier kritischen Erfolgsfaktoren.

 

1. Organisation durch Integration in Aufbau- und Ablauforganisation

Um ein umfassendes Software-Qualitätsmanagement inklusive Testautomatisierung sicherzustellen, braucht es innerhalb der betroffenen Unternehmenseinheit eine geeignete Organisation, welche für den gesamten Software-Qualitätsprozess verantwortlichund mit der notwendigen Kompetenz ausgestattet ist. Sie hat zum Ziel, das Testen für alle Projekte zu standardisieren und mit kompetenten Ressourcen zu unterstützen. Ein solches Center of Excellence (CoE) definiert standardisierte Methoden und unterstützt die Projektorganisationen beim Ableiten der Test-Anforderungen, beim Planen und Ausführen von Tests sowie beim übergreifenden Defect Management und beim Reporting. Sie ist zentrale Anlaufstelle für alle Aktivitäten rund um die Sicherstellung der Softwarequalität von Unternehmenssoftware.

 

2. Konsequente Führung durch Testmanagement

Für jede Aktivität im Unternehmen, für jedes Projekt, und so auch für das Testen, ist ein systematisches Planen, Entscheiden, Ausführen und Bewerten der Ergebnisse aller Aktivitäten unabdingbar. Ein konsequentes Testmanagement reduziert die Software-Risiken massiv. Damit wird ein methodisches Vorgehen für die Spezifikation der Test-Anforderungen und die Testaktivitäten aller Art ermöglicht. Aktivitäten wie Testplanung, Testauthorisierung, Überwachung und Steuerung der Testdurchführung, Testbewertung, aber auch Testdokumentation und die Sicherstellung der Wiederverwendung werden konsequent vorgenommen. Beispiele aus der Praxis (siehe Box „Aus der Praxis“) zeigen, dass nur schon mit Software-Qualitäts- und Testmanagement schnell Nutzen realisiert werden kann. Denn primäres Ziel von Softwareprojekten ist es, qualitativ hochwertige Software innerhalb Kosten- und Zeitvorgaben zu liefern und sauber abnehmen zu lassen. Dafür stellt das Testmanagement die Grundlagen sicher, ein effizientes und effektives Testen wird möglich.

 

3. Effizienz durch gezielte Werkzeugunterstützung

Ist die Organisation entsprechend aufgestellt und der Software-Qualitätsprozess inklusive Testprozess vom Anforderungsmanagement bis zum letzten Abnahmetest definiert und führbar, zeigt sich schnell, dass die Leistung und Qualität eines CoE’s durch gezielte Werkzeugunterstützung bei manuellen Tätigkeiten und mit Automatisierung massgeblich verbessert werden kann. Durch standardisierte Test-Prozeduren und konsequente Wiederverwendung lassen sich die Aufwände für das Testen erheblich senken, eine hohe Wiederverwendbarkeit erreichen und vor allem Zeit und somit Geld sparen. Das werkzeuggestützte Testmanagement und das Testen selbst werden optimalerweise als Teil des Software-Qualitätsprozesses in den gesamten Software-Entwicklungsprozess integriert, um noch effizienter Software zu entwickeln.

 

4. Effektivität durch Change Impact Analysen

Vollständiges Testen einer grossen Applikation ist trotz noch so effizientenTestens aus Zeitgründen oft gar nicht möglich. Aus diesem Grund ist es zwingend, den Umfang der Testaktivitäten gezielt zu reduzieren. Basierend auf der auslösenden Veränderung sollte so früh wie möglich im Entwicklungsvorgehen der Umfang der Testaktivitäten bestimmt und die Testabdeckung optimiert werden. Auf diese Weise lässt sich der gesamte Testaufwand auf das Nötigste reduzieren. Change Impact Analysen ermöglichen es, den Testaufwand im Hinblick auf die geplanten Änderungen zielgerecht zu bündeln. Mit einer Analyse der anzupassenden oder zu transportierenden Änderungen wird evaluiert, welche Transaktionen, Prozesse und Applikationen vom Change betroffen sind. Sind diese bekannt, werden sie als Ergebnis der entsprechenden Testszenarien identifiziert und mit den passenden Testscripts dem Test-Administrations-Werkzeug übermittelt. Mittels Risikoanalyse werden die wirklich business-relevanten Tests zur Ausführung ausgewählt, die automatische Testdurchführung gestartet und die Auswertungen dazu generiert. 

 

Erfolgsfaktoren für hohe Softwarequalität
Erfolgsfaktoren für wirksames Software-Qualitätsmanagement

 

Aus der Praxis – Test Management und Automatisierung in der SBB Test Factory

Die SBB entschied sich schon früh, für das Testen ihrer Projekte auf eine Test Factory zu bauen. Im Mittelpunkt standen methodische und verlässliche Testverfahren, die für verschiedenste Arten von Software eingesetzt werden können. Damit die Kernaufgaben der bereits professionell aufgebauten Organisation werkzeugtechnisch unterstützt werden können, beschloss die SBB die Einführung von HP Quality Center. «Unsere Anforderungen an einheitliche, zuverlässige und effiziente Testprozeduren sind ohne spezielle Softwareunterstützung nicht mehr zu erfüllen», so Bruno Linder, Leiter der Test Factory bei der SBB, vor dem Projektstart. Mit der Einführung von HP Quality Center und HP Quick Test Professional sollten sowohl der Zeitaufwand für die Tests reduziert als auch die Durchführung gesteuert und vereinfacht werden. Beides Ziele, die die SBB in den ausgewählten Gebieten erreicht hat. Innerhalb Jahresfrist ist es der SBB, unterstützt von beteo gelungen, die Prozesse in der SBB Test Factory optimal mit Werkzeugen zu unterstützen und zu automatisieren. Verlässliche, effiziente Tests sind heute Standard. Durch die gewählte Vorgehensweise wurden die Projekt- und Testkosten reduziert. «Wir konnten schnell Nutzen aus den neuen Werkzeugen ziehen und den Ausbau der Testmethodik in Übereinstimmung mit den Möglichkeiten des HP Quality Centers durchführen», zeigt sich Bruno Linder zufrieden.

Fazit

Sind Testorganisationen aufgestellt und einheitliche Methoden definiert und ein Testmanagement für die Führung etabliert, können die Kernaufgaben eines Center of Excellence mit Testwerkzeugen standardisiert und automatisiert werden. Sind die Funktionalitäten vom einfachen Test Management, über Anforderungserfassung, die Testautomatisierung bis zur Integration über den Software-Qualitätsprozess in den Entwicklungs-Prozess schrittweise und konsequent eingeführt, ist das Nutzenpotenzial riesig. Testaufwände werden wirksam und effizient eingesetzt. Die Unternehmung kann sich schneller und mit weniger Risiko an Veränderungen anpassen. Das bedeutet geringere Kosten, echte Transparenz, verbesserte Systemanforderungen und eingehaltene oder gar verkürzte Zeitspannen bei der Entwicklung oder Veränderungen an Softwaresystemen. Im Betrieb führt es zu höherer Stabilität und geringerer Ausfallrate dank höherer Qualität der Unternehmenssoftware.

Konferenzmagazin – Swiss Testing Day 2009

Der Artikel wurde im Konferenzmagazin zum Swiss Testing Day 2009 publiziert:

 

Sphere: Related Content

Ein Kommentar

  • 1
    Christoph Preschern:

    Permanentes Testen von Software in „agilen Zeiten“ kann aus zeitlichen Gründen nur automatisiert stattfinden. Wer ist aber in der Lage die Automatisierung von Tests noch während der Entwicklungsphase einer Software voranzutreiben? Der Testaufwand bzw. die technische Realisierung der Automatisierbarkeit liegt in solchen Projekten voll und ganz beim Entwickler der Software. Dieser sollte die notwendigen Testautomatisierungsmodule so gestalten, dass Sie einerseits täglich im laufenden Entwicklungsprozess (Continious Integration) gestartet, aber auch andererseits von Fachtestern bei übergeordneten Integrationstests wiederverwendet werden können.
    Der Entwickler selbst benötigt aber auch die notwendigen Werkzeuge zur Erstellung der automatisierten Tests. Für das automatisierte Testen von GUI Oberflächen brauchen Entwickler aber „smarte“ und flexible Tools welche sich einfach und schnell in bestehende Entwicklungsumgebungen integrieren lassen. Der Trend in diese Richtung wird teilweise auch schon Microsoft über den Team Foundation Server sowie durch erste Schnittsellen wie UI Automation (für WPF Applikationen) unterstützt.

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>