Software-Test

Software-Qualität durch professionelles Testen

Die Notwendigkeit von systematischen Software-Tests wird oft unterschätzt, da die Folgen von Nachlässigkeit in diesem Bereich meist nicht sofort sichtbar sind. Ein Fehler, der sich rächen und viel Geld kosten kann, wenn die Systemverfügbarkeit im Produktivbetrieb eingeschränkt ist oder das Systemverhalten zunehmend unerklärlich scheint.

Überblick (Icon)

Überblick

Effizientes, strukturiertes und zielgerichtetes Testen ist ein wesentlicher Erfolgsfaktor in der Software-Entwicklung. Nur wenn eine Applikation systematisch und unter verschiedenen Blickwinkeln (wie Spezifikationstreue, Misuse-Verhalten, Performance, etc.) auf ihreTauglichkeit hin überprüft wird, lassen sich böse Überraschungen zuverlässig vermeiden.

Durch die gesamthafte und frühzeitige Betrachtung aller qualitätsrelevanten Aspekte werden nicht nur Implementierungsfehler, sondern auch konzeptionelle Schwachstellen zeitnah erkannt. Korrekturen können frühzeitig wieder in den Entwicklungsprozess einfließen, was den entstehenden Gesamtaufwand minimiert. Der scheinbare Mehraufwand durch explizites Testing wird letztlich durch Einsparungen beim Entwicklungsaufwand kompensiert.

Ausgangspunkt für eine gewissenhafte Testdurchführung ist dabei eine dem Projekt und der Einsatzumgebung angepasste Testplanung, sowie eine kontinuierliche Überwachung und Steuerung der Aktivitäten. Zeit- und Ressourcen müssen gezielt eingesetzt und Ergebnisse transparent dargestellt werden. Aussagekräftige Fehlerprotokolle bei definierter Testbreite und -tiefe erlauben eine objektive Bewertung der Einsatzreife der Software.

Professionelles Software-Testing ist somit eine essenzielle Voraussetzung für ein gutes Endprodukt und daher nicht nur für unsere eigenen Projekte ein unverzichtbarer Baustein.

Sie entwickeln Software für sich selbst oder für andere und möchten den Software-Test auslagern?

Sie haben einen Freiberufler oder ein Softwarehaus mit der Entwicklung von Software beauftragt und möchten sicher gehen, dass das Endprodukt den Anforderungen gerecht wird?

Dann sprechen Sie mit uns. Wir unterstützen Sie gerne.

 

Systematisches Testen
Von der Planung bis zum Abschlussbericht

Grafik: Testphasen

 

Bild: weisser Pfeil
Icon: Case Studies

Manuelle End-to-End-Tests (E2E-TEsts)

Während es auf Komponentenebene sehr leicht ist, die implementierte Funktionalität durch automatisierte Tests abzudecken, wird die über die Benutzeroberfläche erreichbare Funktionalität des Gesamtsystems in den meisten Fällen manuell getestet. Die Automatisierung ist hier häufig nicht wirtschaftlich, weil der Aufwand dafür den für manuelle Tests selbst dann deutlich übersteigt, wenn die manuellen Tests immer wieder durchgeführt werden müssen.

Ein Grund dafür ist, dass die Anpassung an Änderungen von UI und Bedienablauf bei einem manuellen Tester meist viel weniger Zusatzaufwand verursacht als bei automatisierten Testabläufen. Manche Testaspekte sind sogar grundsätzlich nicht automatisierbar. Beispiele dafür sind Usability-Tests bzw. ganz allgemein die Validierung von Software, also die Prüfung, ob das entwickelte Produkt auch tatsächlich für den geplanten Einsatzzweck geeignet ist.

Manuelle Tests werden in der Regel auf Basis von Konzepten oder Spezifikationen ausgeführt, bei hochagilen Projekten ist zuweilen auch nur ein explorativer Test möglich, der jedoch ein höheres Maß an projektindividuellem Fachwissen voraussetzt.

Wir orientieren uns bei der Konzeption, Planung und Durchführung von Tests an den Standards und Methoden des International Software Testing Qualifications Board (ISTQB®):

  • Erstellung und kontinuierliche Fortschreibung eines Testkonzepts auf Basis von Testzielen (gewünschte Testtiefe und –breite, zu überprüfende Qualitätsmerkmale, etc.) und testbaren Umfängen
  • Entwurf und Priorisierung von Testfällen
  • Erstellung von Testplänen und Vorbereitung der Testdurchführung
  • Durchführung der Tests mit Erstellung von präzisen Fehlerbeschreibungen
  • Erstellung von Testabschlussberichten mit einer Zusammenfassung der Testaktivitäten und Bewertung der Testergebnisse


Sie möchten wissen, wie wir vielleicht auch Ihr Projekt durch professionelles Testen unterstützen könnten?
Erfahren Sie mehr dazu in unserer Case Study "Strukturiertes Software-Testing"

Testautomatisierung

Die Implementierung automatisierter Tests auf Komponentenebene ist aus der modernen Software-Entwicklung nicht mehr wegzudenken und gehört zum Standard-Repertoire jeden Entwicklers.

Schwieriger wird es schon auf Ebene der Integrationstests und die Automatisierung von Tests auf Systemebene (E2E) erzeugt fast immer einen relativ hohen Initialaufwand für die Bereitstellung der notwendigen Infrastruktur und geeigneter Testdaten.

Grafik: Testautomatisierung


Anwendungsgebiete, bei denen die Automatisierung trotzdem sinnvoll oder oder vielleicht sogar zwingend erforderlich ist, sind zum Beispiel:

  • komplexe Verarbeitungsverfahren
  • Schnittstellen zu Partnersystemen
  • UI-basierte Regressionstests

Die sorgfältige Abwägung von Aufwand und Nutzen, sowie die Auswahl der geeigneten Methoden und Automatisierungstiefe sind entscheidende Erfolgsfaktoren für einen nutzbringenden und wirtschaftlichen Einsatz der Testautomatisierung auf Integrations- und Systemebene.


Sie möchten wissen, in welchen Bereichen und in welchem Umfang eine Testautomatisierung für Ihr Projekt sinnvoll ist?
Dann kommen Sie auf uns zu und treten Sie mit uns in Kontakt.

Last- und Performancetests

Die Erwartungshaltung an die Performance von IT-Systemen ist hoch, nicht performante Software wird nicht gerne genutzt oder gar durch alternative Lösungen ersetzt. Gleichzeitig stellt die zunehmende Komplexität der Systeme und die Verlagerung vieler Dienste in die Cloud immer höhere Anforderungen an die Rechen- und Netzwerkleistung.

Bei Last- und Performance-Tests (kurz „LuP-Tests“) wird mittels unterschiedlicher Werkzeuge eine realitätsnahe Belastung erzeugt, um das Verhalten von IT-Systemen unter Last zu untersuchen. Damit lassen sich performancerelevante Designschwächen und Ressourcenengpässe gezielt aufspüren, so dass entsprechende Maßnahmen ergriffen werden können.

Meist werden LuP-Tests automatisiert ausgeführt. Wichtig dabei ist zum einen die Auswahl der richtigen Lastprofile, bei denen Parameter wie zum Beispiel

  • die Anzahl gleichzeitiger User-Zugriffe
  • die zu verarbeitenden Datenmengen
  • die Anzahl parallel laufender (Hintergrund-)Prozesse
  • die Netzwerk-Bandbreite und -Latenz

geeignet variiert werden. Zum anderen müssen die Messpunkte geeignet gesetzt werden, so dass die ermittelten Ergebnisse das subjektive Erleben des Anwenders möglichst gut widerspiegeln.

Wie so häufig bei der Software-Entwicklung. gilt auch für die Performance-Optimierung, dass eine frühzeitige Betrachtung im Projektverlauf die besten Chancen bietet, das Verhalten des Gesamtsystems unter Last gut zu gestalten.


Sie möchten wissen, wie wir Sie bei der Durchführung von LuP-Tests in Ihrem Projekt unterstützen können?
Lesen Sie in unsere Case Study "Konzeptarbeit LuP-Tests" wie wir in einem anderen Projekt vorgegangen sind.

Referenz
Was Kunden sagen...

An der Zusammenarbeit schätze ich insbesondere die gründliche und professionelle Arbeitsweise, sowie die unbürokratische Lösung von Problemen. Der Servicegedanke und die Qualität stehen hier noch im Vordergrund und werden auch mit überdurchschnittlich gutem, persönlichen Einsatz praktiziert.

Anführungzszeichen
Martin Hempl

Teamleiter Technologie Diagnosesysteme WIN_TS


Siemens AG, Erlangen

Wir benutzen Cookies
Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.