Das Glossar für die Digitale Transformation in der Energiewirtschaft
Hier tragen wir wertvolles Wissen aus verschiedenen Themengebieten für Sie zusammen
Wissensdatenbank "Testing": Unser Glossar zu allen Fachbegriffen rund um Testing
Unsere Expertinnen und Experten befüllen dieses Glossar kontinuierlich, um Fachbegriffe rund um Testing einfach und verständlich zu erklären. Sollten Begriffe fehlen oder Sie Fragen zum Thema Testing, Testing as a Service, Testautomatisierung oder ähnlichem haben, so schreiben Sie uns gerne an.
Weitere Informationen erhalten Sie unter Testing as a Service (TaaS) für Energieversorger.
Ein Abnahmetest ist die Teststufe, in der die Software von Endbenutzern oder Kunden überprüft wird, um sicherzustellen, dass sie ihren Anforderungen entspricht.
Beispielhafter Anwendungsfall für einen Abnahmetest
Es soll eine Service Cloud im Kundenservice eingeführt werden. Laut externen und internen Entwicklern wurden alle Funktionalitäten programmiert, angepasst und transportiert. Es werden keine weiteren Anpassungen nötig („Code Freeze“). Zu Beginn des Projektes wurde eine Anforderungsliste generiert, welche nun im Test spezifisch geprüft und nach einzelner Anforderung, sowie am Gesamtprozess bewertet wird. Die Mitarbeiter im Kundenservice erhalten Testfälle, die diese Anforderungen enthalten. Sind die Testfälle erfolgreich, dann sind auch alle Anforderungen erfüllt und die Abnahme gilt als erfolgreich. Die Software kann produktiv gesetzt werden.
Bei der Testmethode „Black-Box-Test“ wird die interne Implementierung eines Produkts nicht berücksichtigt. Stattdessen werden Eingaben in das Softwareprodukt gegeben, und nur die erwarteten Ausgaben überprüft, um sicherzustellen, dass die Funktionalität gemäß den Spezifikationen funktioniert.
Ein Belastungstest (oder auch: Lasttest) ist eine Teststufe, bei der die Software unter erhöhter Last getestet wird, um die Leistungsfähigkeit und Stabilität unter realistischen Bedingungen zu überprüfen.
Beispielhafter Anwendungsfall für einen Belastungstest
Der Launch ihrer Website „Mein perfekter Schuh“ steht kurz bevor. In sämtlichen Modezeitschriften und Social Media Plattformen sollen Werbeanzeigen geschaltet werden, die beim großen Launch 45% Preisnachlass anbieten. Sie erwarten für den ersten Tag über 100.000 Bestellungen.
Um zu prüfen, ob die Server das aushalten, wird eine externe Firma beauftragt, die ein Crowd-Testing mit 1000 Mitgliedern an einem Tag durchführt. Crowdtesting bietet somit eine kosteneffiziente Möglichkeit, umfassendes und vielfältiges Feedback zu sammeln und die Qualität eines Produkts zu steigern.
Crowdtesting ist eine Testmethode, bei der eine große Gruppe von externen, unabhängigen Testern (die „Crowd“; deutsch: Menge) genutzt wird, um Software, Anwendungen oder digitale Produkte auf ihre Funktionalität, Qualität und Benutzerfreundlichkeit hin zu überprüfen. Diese Tester sind oft Freiberufler oder Menschen, die sich freiwillig für das Testen von Produkten anmelden. Unternehmen nutzen Crowdtesting, um eine breite Palette von Geräten, Betriebssystemen, Netzwerken und Standorten abzudecken, um sicherzustellen, dass ihre Software oder Anwendungen für eine Vielzahl von Benutzern fehlerfrei funktionieren.
Beispielhafter Anwendungsfall für einen Crowd-Test
Ein Beispiel für Crowdtesting wäre, wenn ein Unternehmen eine neue Mobile-App entwickelt und sicherstellen möchte, dass sie auf verschiedenen mobilen Geräten, Betriebssystemen und in verschiedenen geografischen Regionen einwandfrei funktioniert. Anstatt eine begrenzte Anzahl von internen Testern oder automatisierten Tests zu verwenden, kann das Unternehmen eine Crowd von hunderten oder sogar tausenden Freiwilligen einsetzen, die die App auf ihren eigenen Geräten in ihren täglichen Umgebungen testen.
Ein Defect (auch: Mangel, Fehler) bezieht sich auf eine spezifische Abweichung, Unstimmigkeit oder eine Fehlfunktion in einem Produkt, einer Softwareanwendung, einem System oder einem Prozess. Im Qualitätsmanagement und insbesondere im Kontext von Softwareentwicklung und Software-Testen wird der Begriff „Defect“ verwendet, um auf ein konkretes Problem oder einen Mangel hinzuweisen, der innerhalb des Produkts oder der Anwendung identifiziert wurde.
Ein Defect kann verschiedene Formen annehmen, darunter Programmierfehler, fehlende Funktionen, unerwartetes Verhalten, Sicherheitslücken oder andere Qualitätsprobleme. Der Prozess der Identifizierung, Dokumentation, Verfolgung und Behebung von Defekten ist ein wesentlicher Bestandteil des Qualitätsmanagements, um sicherzustellen, dass das Endprodukt den Anforderungen entspricht und von hoher Qualität ist. Defekte werden normalerweise in einer Fehlerverfolgungsdatenbank oder einem Fehlerverwaltungssystem dokumentiert, um ihre Nachverfolgung und Priorisierung zu erleichtern.
Das Defect-Management (auch: Fehlermanagement, Defectmanagement) bezieht sich auf den Prozess der Identifizierung, Dokumentation, Verfolgung, Analyse, Priorisierung und Behebung von Fehlern oder Mängeln in einem Produkt, einer Softwareanwendung oder einem System während des Entwicklungszyklus oder nach der Veröffentlichung. Das Ziel des Fehlermanagements besteht darin, sicherzustellen, dass Fehler erkannt und behoben werden, um die Qualität und Zuverlässigkeit des Produkts zu verbessern und die Kundenzufriedenheit zu gewährleisten.
Beispielhaftes Vorgehen im Defect Management:
- Identifikation und Meldung: Das Defect- oder Fehlermanagement beginnt mit der Identifizierung von Defects oder Fehlern, sei es durch Überwachungstools, Benutzerberichte oder Meldungen durch Tester. Die Vorfälle werden dokumentiert und gemeldet.
- Klassifizierung und Priorisierung: Jeder Defect/Fehler wird klassifiziert und priorisiert, um seine Schwere und seinen Einfluss auf den Geschäftsbetrieb zu bewerten. Dies hilft bei der Festlegung der Reaktionszeiten und -prioritäten für Behebungen.
- Zuweisung: Die Defects/Fehler werden an das entsprechende Team oder den entsprechenden Mitarbeiter zur Untersuchung und Behebung zugewiesen. Klare Verantwortlichkeiten werden festgelegt und resultieren aus dem Testkonzept.
- Untersuchung und Diagnose: Das Team oder der Mitarbeiter, dem der Vorfall zugewiesen ist, untersucht den Vorfall, um die Ursache zu ermitteln. Dies kann technische Diagnosen, Systemüberprüfungen und Tests umfassen.
- Lösungsentwicklung und Implementierung: Basierend auf der Diagnose wird eine Lösung entwickelt, um den Vorfall zu beheben. Die Lösung wird implementiert, um den tatsächlich gewünschten Zustand wiederherzustellen.
- Retest, Überwachung und Eskalation: Der Defect/Fehler wird erneut getestet und weiterhin überwacht bis der Test erfolgreich war, um sicherzustellen, dass die implementierte Lösung erfolgreich ist. Bei negativem Ergebnis oder langen Zeiträumen erfolgt eine Eskalation an höhere Ebenen oder spezialisierte Teams.
- Kommunikation: Die Kommunikation spielt eine wichtige Rolle im Fehler/Defect-Management. Stakeholder werden über den Vorfall, den Fortschritt bei der Lösung und ergriffene Maßnahmen informiert.
- Dokumentation und Berichterstattung: Alle Aktivitäten im Zusammenhang mit dem Fehler/Defect werden sorgfältig dokumentiert, einschließlich der Ursachenanalyse, der durchgeführten Maßnahmen und der Zeitpunkte der Wiederherstellung. Berichte können erstellt werden, um Trends und Muster zu analysieren.
- Abschluss und Verbesserung: Nach der erfolgreichen Lösung des Fehlers/Defects wird dieser als abgeschlossen markiert. Eine Nachbetrachtung wird durchgeführt, um zu ermitteln, wie ähnliche Vorfälle in Zukunft vermieden werden können.
Der Begriff „End-to-End-Test“ (auch: E2E-Test) bezieht sich auf eine Art von Softwaretest, bei dem die gesamte Anwendung oder ein bestimmter Prozess innerhalb der Anwendung von Anfang bis Ende getestet wird. Das Ziel eines E2E-Tests ist es, sicherzustellen, dass alle Komponenten eines Systems ordnungsgemäß zusammenarbeiten und die Anwendung wie erwartet funktioniert, wenn sie von einem Endbenutzer verwendet wird.
E2E-Tests sind besonders wichtig, um sicherzustellen, dass alle Schnittstellen, Integrationen und Interaktionen zwischen verschiedenen Systemteilen reibungslos verlaufen und keine kritischen Fehler oder Probleme auftreten, die die Benutzererfahrung beeinträchtigen könnten.
Beispielhaftes Vorgehen bei einem End-to-End-Test:
Sie entwickeln eine E-Commerce-Website, und Ihre Anwendung besteht aus verschiedenen Modulen oder Komponenten, darunter das Benutzerkonto-Modul, das Warenkorb-Modul und das Zahlungsmodul. Jedes dieser Module wurde bereits einzeln getestet (Komponententests), um sicherzustellen, dass es ordnungsgemäß funktioniert.
Jetzt möchten Sie sicherstellen, dass alle diese Module gut zusammenarbeiten, insbesondere wenn ein Benutzer einen Einkauf tätigt. Ihr Integrationstest könnte wie folgt aussehen:
- Vorbereitung: Stellen Sie sicher, dass die einzelnen Module in einer Testumgebung bereitstehen, die der Produktionsumgebung ähnelt.
- Durchführung: Simulieren Sie eine Einkaufstransaktion, bei der ein Benutzer ein Produkt in den Warenkorb legt, sich in seinem Konto anmeldet und dann zur Zahlungsseite weiter-geleitet wird.
- Überprüfung: Überwachen Sie den gesamten Ablauf der Transaktion, von der Auswahl des Produkts bis zur erfolgreichen Zahlung. Stellen Sie sicher, dass alle Daten korrekt zwischen den Modulen übertragen werden und dass es keine Kommunikationsprobleme oder Datenverluste gibt.
- Bericht: Dokumentieren Sie alle festgestellten Probleme oder Fehler während des Integrationstests, damit das Entwicklungsteam diese beheben kann.
Ein Beispiel für einen möglichen Problemfall in einem Integrationstest könnte sein, dass der Warenkorb die ausgewählten Produkte nicht korrekt an das Zahlungsmodul weiterleitet, was dazu führt, dass die Bezahlung nicht abgeschlossen werden kann. Dieser Integrationstest hilft dabei, solche Schwachstellen in der Gesamtfunktionalität der Anwendung zu identifizieren und sicherzu-stellen, dass alle Komponenten harmonisch zusammenarbeiten.
Bei der Testmethode des „explorativen Testens“ geht der Tester ohne vorherig detaillierte Testfälle vor und erkundet die Software, um Fehler und Probleme zu entdecken. Er beruft sich dabei auf seine bisherigen Erfahrungen und Intuitionen, sowie einen abgestimmten Testplan.
Ein Fehlerzustand tritt auf, wenn eine Softwareanwendung oder ein System nicht wie erwartet funktioniert oder nicht den definierten Anforderungen entspricht. Dies kann aufgrund von Programmierfehlern, unerwarteten Eingaben oder anderen unvorhergesehenen Umständen geschehen.
Beispielhafter Anwendungsfall für einen Fehlerzustand
Sie haben eine Anwendungssoftware entwickelt, die sicherstellen soll, dass Benutzer nur positive ganze Zahlen eingeben können. Der Benutzer gibt aber einen Buchstaben oder eine negative Zahl ein, und bekommt daraufhin allerdings keine Meldung „Eingabe ungültig“ oder ähnliches. Das System versucht dennoch eine Anwendung zu starten und führt zu falschen Ergebnissen. In diesem Fall entspricht die Anwendung nicht den Anforderungen und befindet sich in einem Fehlerzustand.
Ein Incident (auch: Störung oder Vorfall genannt) ist ein unerwartetes Ereignis oder eine Abweichung von normalen Betriebsabläufen, die die Qualität, den Betrieb oder die Leistung eines Systems, einer Anwendung, eines Services oder eines Prozesses beeinträchtigen können. Incidents können in verschiedenen Bereichen und Branchen auftreten, einschließlich Informationstechnologie, Gesundheitswesen, Produktion, Kundenservice und mehr.
Eine Störung kann vielfältige Formen annehmen und kann sowohl technischer als auch nicht-technischer Natur sein.
Incident Management (auch Störungsmanagement oder Vorfallmanagement) ist ein Prozess, der in der Informationstechnologie und anderen Bereichen verwendet wird, um Vorfallmeldungen oder Störungen effizient zu identifizieren, zu dokumentieren, zu überwachen und zu behandeln. Das Hauptziel des Vorfallmanagements besteht darin, die Servicekontinuität wiederherzustellen, indem Probleme schnell und effektiv gelöst werden, um Auswirkungen auf den normalen Betrieb zu minimieren.
Beispielhaftes Vorgehen im Incident Management:
- Identifikation und Meldung: Vorfall- oder Störungsmanagement beginnt mit der Identifizierung von Vorfällen oder Störungen, sei es durch Überwachungstools, Benutzerberichte oder andere Quellen. Die Vorfälle werden dokumentiert und gemeldet.
- Klassifizierung und Priorisierung: Jeder Vorfall wird klassifiziert und priorisiert, um seine Schwere und seinen Einfluss auf den Geschäftsbetrieb zu bewerten. Dies hilft bei der Festlegung der Reaktionszeiten und -prioritäten.
- Zuweisung: Die Vorfälle werden an das entsprechende Team oder den entsprechenden Mitarbeiter zur Untersuchung und Behebung zugewiesen. Klare Verantwortlichkeiten werden festgelegt.
- Untersuchung und Diagnose: Das Team oder der Mitarbeiter, dem der Vorfall zugewiesen ist, untersucht den Vorfall, um die Ursache zu ermitteln. Dies kann technische Diagnosen, Systemüberprüfungen und Tests umfassen.
- Lösungsentwicklung und Implementierung: Basierend auf der Diagnose wird eine Lösung entwickelt, um den Vorfall zu beheben. Die Lösung wird implementiert, um den normalen Betrieb wiederherzustellen.
- Überwachung und Eskalation: Der Vorfall wird weiterhin überwacht, um sicherzustellen, dass die implementierte Lösung erfolgreich ist. Bei Bedarf erfolgt eine Eskalation an höhere Ebenen oder spezialisierte Teams.
- Kommunikation: Die Kommunikation spielt eine wichtige Rolle im Vorfallmanagement. Stakeholder werden über den Vorfall, den Fortschritt bei der Lösung und ergriffene Maßnahmen informiert.
- Dokumentation und Berichterstattung: Alle Aktivitäten im Zusammenhang mit dem Vorfall werden sorgfältig dokumentiert, einschließlich der Ursachenanalyse, der durchgeführten Maßnahmen und der Zeitpunkte der Wiederherstellung. Berichte können erstellt werden, um Trends und Muster zu analysieren.
- Abschluss und Verbesserung: Nach der erfolgreichen Lösung des Vorfalls wird dieser als abgeschlossen markiert. Eine Nachbetrachtung wird durchgeführt, um zu ermitteln, wie ähnliche Vorfälle in Zukunft vermieden werden können.
Ein Integrationstest ist eine Art von Softwaretest, bei dem mehrere Komponenten oder Module einer Anwendung zusammengeführt werden, um sicherzustellen, dass sie ordnungsgemäß zusammenarbeiten und integriert funktionieren. Dieser Test zielt darauf ab, Probleme zu identifizieren, die bei der Interaktion zwischen verschiedenen Teilen einer Softwareanwendung auftreten könnten, einschließlich der Kommunikation zwischen Schnittstellen, Datenfluss und Funktionsaufrufen zwischen den Komponenten. Dieser wird auch oft als End-to-End-Test bezeichnet.
Beispielhafter Anwendungsfall für einen Integrationstest
Sie entwickeln eine E-Commerce-Website, und Ihre Anwendung besteht aus verschiedenen Modulen oder Komponenten, darunter das Benutzerkonto-Modul, das Warenkorb-Modul und das Zahlungsmodul. Jedes dieser Module wurde bereits einzeln getestet (Komponententests), um sicherzustellen, dass es ordnungsgemäß funktioniert.
Jetzt möchten Sie sicherstellen, dass alle diese Module gut zusammenarbeiten, insbesondere wenn ein Benutzer einen Einkauf tätigt. Ihr Integrationstest könnte wie folgt aussehen:
- Vorbereitung: Stellen Sie sicher, dass die einzelnen Module in einer Testumgebung bereitstehen, die der Produktionsumgebung ähnelt.
- Durchführung: Simulieren Sie eine Einkaufstransaktion, bei der ein Benutzer ein Produkt in den Warenkorb legt, sich in seinem Konto anmeldet und dann zur Zahlungsseite weitergeleitet wird.
- Überprüfung: Überwachen Sie den gesamten Ablauf der Transaktion, von der Auswahl des Produkts bis zur erfolgreichen Zahlung. Stellen Sie sicher, dass alle Daten korrekt zwischen den Modulen übertragen werden und dass es keine Kommunikationsprobleme oder Datenverluste gibt.
- Bericht: Dokumentieren Sie alle festgestellten Probleme oder Fehler während des Integrationstests, damit das Entwicklungsteam diese beheben kann.
Ein Beispiel für einen möglichen Problemfall in einem Integrationstest könnte sein, dass der Warenkorb die ausgewählten Produkte nicht korrekt an das Zahlungsmodul weiterleitet, was dazu führt, dass die Bezahlung nicht abgeschlossen werden kann. Dieser Integrationstest hilft dabei, solche Schwachstellen in der Gesamtfunktionalität der Anwendung zu identifizieren und sicherzustellen, dass alle Komponenten harmonisch zusammenarbeiten.
Ein Komponententest (auch: Unit-Test) ist eine Art von Softwaretest, bei dem eine einzelne Komponente oder ein kleiner, isolierter Teil eines Softwareprogramms unabhängig von anderen Teilen getestet wird. Das Hauptziel eines Komponententests besteht darin, sicherzustellen, dass die einzelne Komponente oder Einheit korrekt funktioniert und die erwarteten Ergebnisse liefert.
Beispielhafter Anwendungsfall für einen Komponententest
In diesem Beispiel haben wir eine Python-Funktion, die die Quadratwurzel einer gegebenen Zahl berechnet. Wir werden einen Komponententest für diese Funktion erstellen.
Annahme: Die zu testende Funktion heißt quadratwurzel_berechnen().
In diesem Beispiel:
Die quadratwurzel_berechnen()-Funktion berechnet die Quadratwurzel einer gegebenen Zahl, wobei negative Zahlen ausgeschlossen sind.
Der TestQuadratwurzel-Testfall erbt von unittest.TestCase und enthält drei Testmethoden:
test_positive_zahl testet, ob die Quadratwurzel einer positiven Zahl korrekt berechnet wird.
test_null testet, ob die Quadratwurzel von Null korrekt berechnet wird.
test_negative_zahl testet, ob die Funktion eine ValueError-Ausnahme auslöst, wenn eine negative Zahl übergeben wird.
Wenn Sie diesen Code ausführen, führt die unittest.main()-Methode die Tests aus und gibt aus, ob die Funktion quadratwurzel_berechnen() wie erwartet funktioniert. Dies ist ein einfaches Beispiel für einen Komponententest, der sicherstellt, dass eine einzelne Funktion in Ihrem Code ordnungsgemäß funktioniert.
Ein Lasttest ist eine Teststufe, bei der die Software unter erhöhter bzw. maximaler Last getestet wird, um die Leistungsfähigkeit und Stabilität unter realistischen Bedingungen zu überprüfen.
Beispielhafter Anwendungsfall für einen Lasttest
Der Launch ihrer Website „Mein perfekter Schuh“ steht kurz bevor. In sämtlichen Modezeitschriften und sozial Media-Plattformen sollen Werbeanzeigen geschaltet werden, die beim großen Launch 45% Nachlass anbieten. Sie erwarten für den ersten Tag über 100.000 Bestellungen. Um zu prüfen, ob die Server das aushalten, wird eine externe Firma beauftragt über Crowd-Testing mit 1000 Mitgliedern an einem Tag durchführt.
Qualitätsmanagement ist ein systematischer Ansatz zur Planung, Steuerung und Verbesserung der Qualität von Produkten oder Dienstleistungen. Im Bereich des Softwaretestens bezieht sich Qualitätsmanagement auf die Prozesse und Praktiken, die verwendet werden, um sicherzustellen, dass eine Softwareanwendung oder ein System die erforderlichen Qualitätsstandards erfüllt.
Konkreter Anwendungsfall für Qualitätsmanagement
Bei der Entwicklung einer neuen Softwareanwendung legt ihr Softwareentwicklungsteam Qualitätsstandards und -richtlinien fest, die sicherstellen, dass die Anwendung zuverlässig, sicher und benutzerfreundlich ist. Das Qualitätsmanagement beinhaltet die Planung von Tests, die Überwachung der Testergebnisse und die kontinuierliche Verbesserung des Entwicklungsprozesses, um sicherzustellen, dass die Software diese Qualitätsstandards erfüllt. Ein Beispiel für eine Qualitätsmanagementpraxis ist die Durchführung von regelmäßigen Code-Reviews, um Programmierfehler frühzeitig zu erkennen und zu beheben, bevor sie die Qualität der Software beeinträchtigen können.
Ein Regressionstest ist eine Teststufe, bei der bereits getestete Teile der Software erneut getestet werden, um sicherzustellen, dass neue Änderungen oder Erweiterungen keine vorhandenen Funktionen beeinträchtigt haben.
Beispielhafter Anwendungsfall für einen Regressionstest
In einem kleinen Stadtwerk werden zum 01.04. durch Vorgaben von EDI@Energy/BDEW Anpassungen für die Stammdatenänderung bei Neuanlage der Sparte Gas gefordert. Alle anderen Sparten bleiben unberührt und sollen weiter funktionieren wie bisher. Deswegen führt das kleine Stadtwerk aus Kosten und Zeitgründen noch einen Regressionstest Neuanlage Sparte Strom durch.
Ein Sichttest für Software bezieht sich auf eine Art von Software-Test, bei dem die Benutzeroberfläche und die visuelle Darstellung einer Anwendung auf ihre korrekte Funktionsweise und Benutzerfreundlichkeit überprüft werden. Der Schwerpunkt liegt darauf sicherzustellen, dass die Benutzeroberfläche ansprechend gestaltet ist, leicht verständlich ist und den Benutzern ein angenehmes und effizientes Nutzungserlebnis bietet.
Bei des Testmethode „Systemtest“ wird die gesamte Softwareanwendung als Ganzes getestet, um sicherzustellen, dass sie die spezifizierten Anforderungen erfüllt und in ihrer Umgebung ordnungsgemäß funktioniert.
Die Testanalyse ist ein Prozess im Softwaretesten, bei dem Testanforderungen und -ziele definiert, Testdaten erstellt und Testfälle entwickelt werden. Dieser Prozess beinhaltet die umfassende Untersuchung der Softwareanforderungen, um sicherzustellen, dass die Tests relevante und umfassende Abdeckung bieten. Damit ist die Testanalyse ein kritischer Schritt im Testprozess, der sicherstellt, dass die Tests den Anforderungen gerecht werden und die Software zuverlässig und fehlerfrei funktioniert.
Beispielhafter Anwendungsfall für eine Testanalyse
Ein Softwareentwicklungsteam arbeitet an einer neuen E-Commerce-Plattform, auf der Kunden Produkte suchen, auswählen und kaufen können. Für die Testanalyse gehen die Tester die Anforderungen sorgfältig durch. Sie identifizieren, dass das System die folgenden Funktionen unterstützen muss:
- Suche nach Produkten nach Kategorie und Schlüsselwörtern.
- Anzeigen von Produktinformationen, Bildern und Preisen.
- Hinzufügen von Produkten zum Warenkorb.
- Überprüfung des Warenkorbs und der Gesamtsumme
- Durchführung der Zahlung und Abschluss des Kaufs
Für die Testanalyse entwickeln die Tester detaillierte Testfälle, die diese Funktionen abdecken. Zum Beispiel erstellen sie Testfälle für verschiedene Kategorien von Produkten, unterschiedliche Suchanfragen und verschiedene Kombinationen von Produkten im Warenkorb. Die Testanalyse hilft sicherzustellen, dass alle wichtigen Aspekte der Anwendung getestet werden und dass die Testabdeckung ausreichend ist, um mögliche Fehler zu identifizieren.
Der Begriff „Testart“ bezieht sich auf die unterschiedlichen Methoden und Ansätze, die bei der Durchführung von Tests in verschiedenen Bereichen und Disziplinen angewendet werden. Testarten sind spezifische Arten von Tests, die für bestimmte Anwendungsfälle entwickelt wurden, um bestimmte Aspekte zu überprüfen, zu bewerten oder zu validieren. Sie können in verschiedenen Branchen und Domänen eingesetzt werden.
Testarten bilden die Grundlage für den gesamten Software-Testprozess und können je nach Projektanforderungen und -kontext angepasst und erweitert werden.
Beispiele verschiedener Testarten:
- Komponententest (Component Testing): Dieser Test konzentriert sich auf das Testen von einzelnen Softwarekomponenten oder Modulen, um sicherzustellen, dass sie ordnungsgemäß funktionieren. Oft werden hierbei Unit-Tests durchgeführt.
- Integrationstest (Integration Testing): Der Integrationstest zielt darauf ab, wie die verschiedenen Komponenten oder Module einer Anwendung zusammenarbeiten und miteinander integriert sind. Hier werden Schnittstellen und Datenfluss zwischen den Komponenten geprüft.
- Systemtest (System Testing): In diesem Test wird die gesamte Softwareanwendung als Ganzes getestet, um sicherzustellen, dass sie die spezifizierten Anforderungen erfüllt. Es handelt sich um einen End-to-End-Test, der die Funktionalität der Anwendung in ihrer gesamten Umgebung überprüft.
- Abnahmetest (Acceptance Testing): Der Abnahmetest wird vom Kunden oder Benutzer durchgeführt, um sicherzustellen, dass die Software seinen Anforderungen und Erwartungen entspricht. Dies kann in Form von Akzeptanztests oder Benutzertests erfolgen.
- Regressionstest (Regression Testing): Bei einem Regressionstest werden bereits getestete Funktionen erneut getestet, um sicherzustellen, dass sie nach Änderungen oder Erweiterungen der Software weiterhin ordnungsgemäß funktionieren.
- Lasttest (Load Testing): Der Lasttest prüft die Leistungsfähigkeit einer Anwendung unter erwarteter oder maximaler Last. Er zielt darauf ab, Engpässe und Leistungsprobleme zu identifizieren.
- Stresstest (Stress Testing): Beim Stresstest wird die Software unter extremen Bedingungen oder Lasten getestet, um ihr Verhalten in solchen Situationen zu bewerten. Dies kann helfen, potenzielle Absturzursachen zu ermitteln.
- Sicherheitstest (Security Testing): Hier wird die Software auf Sicherheitslücken und Schwachstellen geprüft, um sicherzustellen, dass sie vor Bedrohungen und Angriffen geschützt ist.
- Usability-Test (Usability Testing): Der Usability-Test konzentriert sich auf die Benutzerfreundlichkeit der Software, einschließlich Benutzeroberfläche, Navigation und allgemeiner Benutzererfahrung.
- Funktionstest (Functional Testing): Diese Testart überprüft die Funktionalität der Software gemäß den funktionalen Anforderungen, um sicherzustellen, dass sie ordnungsgemäß funktioniert.
Testautomatisierung ist der Prozess der Verwendung von Software oder speziellen Tools, um Testfälle und -szenarien automatisch auszuführen und die Ergebnisse zu überprüfen, anstatt sie manuell durchzuführen. Ziel der Testautomatisierung ist es, die Effizienz, Genauigkeit und Wiederholbarkeit von Tests zu verbessern, insbesondere in Softwareentwicklungsprojekten, in denen häufige Änderungen vorgenommen werden und Tests wiederholt werden müssen.
Beispielhafter Anwendungsfall: Vergleich zwischen manueller und automatisierter Durchführung
Manuelle Durchführung:
- Besuchen Sie die Anmeldeseite.
- Geben Sie einen gültigen Benutzernamen und ein gültiges Passwort ein.
- Klicken Sie auf die Schaltfläche „Anmelden“.
- Überprüfen Sie, ob die Anmeldung erfolgreich ist und Sie auf die Startseite weitergeleitet werden.
Automatisierte Durchführung:
- Das Testautomatisierungstool öffnet den Webbrowser und navigiert zur Anmeldeseite.
- Das Tool füllt automatisch die Benutzername- und Passwortfelder aus.
- Das Tool klickt automatisch auf die „Anmelden“-Schaltfläche.
- Das Tool überprüft automatisch, ob die Anmeldung erfolgreich war und ob die Startseite geladen wird.
Vorteile der Testautomatisierung in diesem Beispiel:
- Schnellere Ausführung: Die automatisierte Version des Tests ist in der Regel schneller als die manuelle Ausführung, was Zeit spart.
- Wiederholbarkeit: Der automatisierte Test kann beliebig oft wiederholt werden, um sicherzustellen, dass die Anmeldungslogik bei jeder Änderung intakt bleibt.
- Konsistenz: Da das Tool die gleichen Schritte jedes Mal wiederholt, gibt es keine menschlichen Variablen oder Fehler.
Das Testen ist der Prozess der systematischen Überprüfung und Evaluierung einer Softwareanwendung oder eines Systems, um sicherzustellen, dass es den spezifizierten Anforderungen entspricht und korrekt funktioniert. Dieser Prozess beinhaltet das Ausführen von Testszenarien, die Entwicklung von Testfällen und die Dokumentation von Testergebnissen.
Beispielhafter Anwendungsfall für Testen
Ein Softwareentwicklungsteam hat eine neue Version einer mobilen Banking-App entwickelt. Bevor sie diese App an Kunden ausliefern, führen sie umfangreiche Tests durch. Dies beinhaltet unter anderem:
- Funktionstests: Überprüfen, ob grundlegende Funktionen wie Überweisungen, Kontoauszüge und das Einloggen korrekt funktionieren.
- Sicherheitstests: Überprüfen, ob die App gegen Bedrohungen wie Datenlecks oder unbefugten Zugriff geschützt ist.
- Usability-Tests: Überprüfen, ob die Benutzeroberfläche intuitiv und benutzerfreundlich ist, indem echte Benutzer die App verwenden.
- Leistungstests: Überprüfen, wie die App unter Last funktioniert, indem sie gleichzeitig von vielen Benutzern verwendet wird.
Während des Testprozesses werden Probleme entdeckt, wie zum Beispiel eine Sicherheitslücke, die es einem Benutzer erlaubt, auf vertrauliche Informationen zuzugreifen. Das Testteam dokumentiert diese Ergebnisse und gibt sie an das Entwicklungsteam weiter, das die Probleme behebt. Dieser iterative Prozess des Testens und Verbesserns hilft sicherzustellen, dass die App den Qualitätsstandards entspricht und sicher von Kunden verwendet werden kann. Das Testen ist somit ein entscheidender Schritt im Entwicklungsprozess, um Software von hoher Qualität zu gewährleisten.
Ein Tester ist eine Person, die in der Softwareentwicklung und anderen Branchen für die Qualitätssicherung und den Testprozess verantwortlich ist. Die Hauptaufgabe eines Testers besteht darin, Softwareanwendungen, Systeme oder Produkte zu überprüfen, um sicherzustellen, dass sie den spezifizierten Anforderungen entsprechen, ordnungsgemäß funktionieren und frei von Fehlern sind. Tester spielen eine entscheidende Rolle bei der Gewährleistung der Qualität und Zuverlässigkeit von Produkten, bevor sie an Kunden oder Benutzer ausgeliefert werden.
Ein Testfall ist eine detaillierte Anweisung oder Beschreibung eines spezifischen Szenarios, das während des Softwaretestens getestet werden soll.
Ein Testfall umfasst typischerweise:
- Voraussetzungen des Tests: Wo wird getestet, warum wird getestet, was brauche ich um den Testfall durchführen zu können (zum Beispiel: System, Berechtigungen, User, Datenbanken, Zugriffsart)
- Schritte zur Durchführung des Tests inklusive vorgegebener Eingabewerte
- Sowie die erwarteten Ergebnisse inklusive möglicher Akzeptanzkriterien
Beispielhafter Anwendungsfall: Testfall – Überprüfung des E-Mail-Versands
Schritte zur Test-Durchführung:
- Öffnen Sie den E-Mail-Client im Browser XY
- Melden Sie sich mit gültigen Anmeldeinformationen an, welche sind: XY
- Klicken Sie auf die Schaltfläche „Neue E-Mail erstellen“
- Geben Sie die E-Mail-Adresse des Empfängers ein
- Geben Sie einen Betreff und eine Nachricht ein
- Klicken Sie auf die Schaltfläche „Senden“
Eingabewerte:
- E-Mail-Adresse des Empfängers: test@example.com
- Betreff: Test-E-Mail
- Nachricht: Dies ist eine Testnachricht.
Erwartetes Ergebnis:
- Die E-Mail wird erfolgreich gesendet
- Die E-Mail erscheint im „Gesendet“-Ordner
- Der Empfänger erhält die E-Mail in seinem Posteingang
Wenn der Test durchgeführt wird und die E-Mail nicht gesendet wird oder andere unerwartete Probleme auftreten, wird dies als ein nicht bestandener Testfall (negativer Test) betrachtet.
Ein Testfortschrittsbericht ist ein Dokument, das den aktuellen Status und den Fortschritt der Testaktivitäten für eine Softwareanwendung oder ein System zusammenfasst. Er bietet Informationen über durchgeführte Tests, identifizierte Probleme, Testabdeckung und den Zeitplan für zukünftige Testaktivitäten. Die Darstellungerfolgt meinst grafisch mittels Privot oder Excel Tabellen, alternativ in speziellen Test-Tools die Reportingfunktionen besitzen.
Der Testfortschrittsbericht dient dazu, allen Projektbeteiligten, einschließlich Entwicklern, Mana-gern und anderen Stakeholdern, einen klaren Einblick in den Status der Testaktivitäten zu bieten. Er ermöglicht es, rechtzeitig auf Probleme zu reagieren, den Fortschritt zu verfolgen und sicherzu-stellen, dass das Projekt planmäßig voranschreitet. Dieser Bericht ist ein wichtiger Bestandteil des Qualitätsmanagements im Softwareentwicklungsprozess.
Beispielhafter Anwendungsfall für einen Testfortschrittsbericht
Ein Testmanager erstellt einen Testfortschrittsbericht für ein Projekt zur Anpassung der energiewirtschaftlichen Marktprozesse und Datenformaten nach BDEW/EDI@Energy Vorgaben für ein Release zum 01.10., das sich nach der Haupt-Entwicklungsphase, in der Testphase und vor der Stabiphase befindet. Der Bericht enthält folgende Informationen:
- Übersicht: Eine Zusammenfassung des aktuellen Status der Testaktivitäten, einschließlich der abgeschlossenen und ausstehenden Tests.
- Testabdeckung: Eine Aufschlüsselung der Testabdeckung, einschließlich der Anzahl der durchgeführten Testfälle im Vergleich zu den insgesamt geplanten Tests.
- Probleme und Fehler: Eine Liste der während der Tests identifizierten Probleme, Fehler oder Qualitätsprobleme. Dies kann auch den Status der Fehlerbehebung enthalten.
- Zeitplan: Eine Übersicht über den Zeitplan für zukünftige Testaktivitäten, einschließlich der geplanten Testphasen und Meilensteine.
- Empfehlungen: Eventuelle Empfehlungen für Maßnahmen, die ergriffen werden müssen, um den Testfortschritt zu verbessern oder Probleme zu lösen.
Eine Testmethode ist ein systematischer Ansatz oder eine Vorgehensweise, die verwendet wird, um Software oder andere Produkte zu überprüfen, zu evaluieren oder zu testen, um sicherzustellen, dass sie den spezifizierten Anforderungen entsprechen. Testmethoden sind strukturierte Techniken oder Verfahren, die verwendet werden, um Tests durchzuführen und Testergebnisse zu sammeln und zu bewerten.
Beispiele verschiedener Testmethoden:
- Black-Box-Testmethode: Bei dieser Methode wird die interne Implementierung eines Produkts nicht berücksichtigt. Stattdessen werden Eingaben in das Produkt gegeben, und die erwarteten Ausgaben werden überprüft, um sicherzustellen, dass die Funktionalität gemäß den Spezifikationen funktioniert.
- White-Box-Testmethode: Im Gegensatz zum Black-Box-Test wird bei dieser Methode der interne Code und die Implementierung eines Produkts überprüft. Der Tester untersucht die Logik, den Datenfluss und die Codeabdeckung, um sicherzustellen, dass alle Teile des Codes korrekt funktionieren.
- Unit-Testmethode: Diese Methode konzentriert sich auf das Testen einzelner Einheiten oder Komponenten einer Software, wie einzelne Funktionen oder Module. Sie dient dazu, sicherzustellen, dass jede Einheit in Isolation korrekt funktioniert.
- Integrationstestmethode: Hierbei werden die Interaktionen zwischen verschiedenen Komponenten oder Modulen einer Software überprüft, um sicherzustellen, dass sie ordnungsgemäß miteinander integriert sind.
- Systemtestmethode: Bei dieser Methode wird die gesamte Softwareanwendung als Ganzes getestet, um sicherzustellen, dass sie die spezifizierten Anforderungen erfüllt und in ihrer Umgebung ordnungsgemäß funktioniert.
- Abnahmetestmethode: Der Abnahmetest wird vom Kunden oder Benutzer durchgeführt, um sicherzustellen, dass die Software ihren Anforderungen entspricht und akzeptabel ist.
- Regressionstestmethode: Diese Methode wird verwendet, um sicherzustellen, dass bereits getestete Funktionen nach Änderungen oder Erweiterungen weiterhin ordnungsgemäß funktionieren.
- Last- und Leistungstestmethode: Hierbei wird die Leistung und Skalierbarkeit einer Software unter erwarteten oder maximalen Lastbedingungen getestet.
- Sicherheitstestmethode: Diese Methode überprüft die Sicherheit einer Software auf Schwachstellen und potenzielle Sicherheitslücken.
- Usability-Testmethode: Der Usability-Test konzentriert sich auf die Benutzerfreundlichkeit und die Benutzererfahrung einer Anwendung.
- Exploratives Testen: Bei dieser Methode geht der Tester ohne vorherige detaillierte Testfälle vor und erkundet die Software, um Fehler und Probleme zu entdecken.
Eine Testsoftware (auch als Testtool oder Testwerkzeug bezeichnet) ist eine Softwareanwendung oder ein Programm, das entwickelt wurde, um verschiedene Aspekte des Testprozesses zu unterstützen, zu automatisieren oder zu vereinfachen. Testtools werden in der Softwareentwicklung und anderen Bereichen eingesetzt, um Testfälle zu erstellen, Testdaten zu generieren, Tests durchzuführen, Testergebnisse zu überprüfen und Testberichte zu erstellen. Sie spielen eine entscheidende Rolle in der Testautomatisierung und tragen dazu bei, den Testprozess effizienter und reproduzierbarer zu gestalten.
Die Anbieter von Testtools am Markt sind vielfältig. Hier beraten wir sie unabhängig gern direkt und geben ihnen einen Überblick aller Möglichkeiten.
Teststufen beschreiben eine spezifische Form/Gruppe von Testaktivitäten, denen jeweils eigene Testziele, Methoden und gegebenenfalls auch Tools zu Grunde liegen.
Obwohl der Begriff Teststufe eine aufeinanderfolgende Bearbeitung der einzelnen Stufen suggeriert, kann es zwischen den einzelnen Teststufen auch zu Überschneidungen kommen. In einer perfekten Welt ist jedoch jede Teststufe als eigene Einheit zu sehen. Erst nach Abschluss wird, gegebenenfalls unter Verwendung der bereits vorhandenen Ergebnisse, mit der nächsten Teststufe begonnen. Die einzelnen Teststufen sind jeweils direkt an Verantwortlichkeiten geknüpft. Während Komponententests in der Regel im Rahmen der IT-Umsetzung erfolgen, sind Abnahmetests Aufgabe der ausführenden Gruppe des zu testenden Prozesses bzw. Aufgabe einer festgelegten Gruppe von Fachtestern.
Beispiele für Teststufen:
- Komponententest oder auch Modul- und Unittests
- Integrationstest
- Abnahmetest
- Regressionstest
- Lasttest (oder auch Belastungstest)
- Sicherheitstest
- Usability-Test
Beispielhafter Anwendungsfall für Teststufen
In einem Projekt, welches sich mit der Integration einer Software mittels einer neuen Schnittstelle an eine bestehende Systemlandschaft beschäftigt, sollen Tests durchgeführt werden. In der Planung wird entschieden, dass erst einmal nur innerhalb der neunen Software gestestet wird, bevor diese an Schnittstellen angebunden wird. Erst nach Abschluss der eigentlichen Funktionalitäten innerhalb der Software sollen weiter Tests und eine mögliche Abnahme folgen.
Daraus folgt ein Teststufenplan mit folgenden Stufen:
- Komponententests / Unittests
- Integrationstests
- Prozesstests / Abnahmetest
Es ist wichtig anzumerken, dass „Testing as a Service“ verschiedene Formen annehmen kann und je nach Anbieter und Kundenanforderungen unterschiedlich umgesetzt wird. Es kann sich um manuelles oder automatisiertes Testen handeln, um funktionale oder nicht-funktionale Tests, um Performance-Tests oder Sicherheitstests. Die genaue Ausgestaltung hängt von den spezifischen Anforderungen des Kunden ab.
Ein Testreporting (auch Testfortschrittsbericht genannt) ist ein Dokument, das den aktuellen Status und den Fortschritt der Testaktivitäten für eine Softwareanwendung oder ein System zusammenfasst. Er bietet Informationen über durchgeführte Tests, identifizierte Probleme, Testabdeckung und den Zeitplan für zukünftige Testaktivitäten. Die Darstellungerfolgt meinst grafisch mittels Privot oder Excel Tabellen, alternativ in speziellen Test-Tools die Reportingfunktionen besitzen.
Der Testfortschrittsbericht dient dazu, allen Projektbeteiligten, einschließlich Entwicklern, Managern und anderen Stakeholdern, einen klaren Einblick in den Status der Testaktivitäten zu bieten. Er ermöglicht es, rechtzeitig auf Probleme zu reagieren, den Fortschritt zu verfolgen und sicherzustellen, dass das Projekt planmäßig voranschreitet. Dieser Bericht ist ein wichtiger Bestandteil des Qualitätsmanagements im Softwareentwicklungsprozess.
Beispielhafter Anwendungsfall für einen Testfortschrittsbericht
Ein Testmanager erstellt einen Testfortschrittsbericht für ein Projekt zur Anpassung der energiewirtschaftlichen Marktprozesse und Datenformaten nach BDEW/EDI@Energy Vorgaben für ein Release zum 01.10., das sich nach der Haupt-Entwicklungsphase, in der Testphase und vor der Stabiphase befindet. Der Bericht enthält folgende Informationen:
- Übersicht: Eine Zusammenfassung des aktuellen Status der Testaktivitäten, einschließlich der abgeschlossenen und ausstehenden Tests.
- Testabdeckung: Eine Aufschlüsselung der Testabdeckung, einschließlich der Anzahl der durchgeführten Testfälle im Vergleich zu den insgesamt geplanten Tests.
- Probleme und Fehler: Eine Liste der während der Tests identifizierten Probleme, Fehler oder Qualitätsprobleme. Dies kann auch den Status der Fehlerbehebung enthalten.
- Zeitplan: Eine Übersicht über den Zeitplan für zukünftige Testaktivitäten, einschließlich der geplanten Testphasen und Meilensteine.
- Empfehlungen: Eventuelle Empfehlungen für Maßnahmen, die ergriffen werden müssen, um den Testfortschritt zu verbessern oder Probleme zu lösen.
Ein Usability-Test ist eine Teststufe, bei der die Benutzerfreundlichkeit und die Benutzererfahrung der Software bewertet werden, um sicherzustellen, dass sie für die Benutzer leicht verständlich und effektiv ist.
Beispielhafter Anwendungsfall für einen Usability-Test
Benutzer werden gebeten, eine mobile App zu verwenden und ihre Erfahrungen bei der Navigation und der Interaktion mit der App zu bewerten.
Im Gegensatz zum Black-Box-Test wird bei der Testmethode des „White-Board-Tests“ der interne Code und die Implementierung eines Produkts überprüft. Der Tester untersucht die Logik, den Datenfluss und die Codeabdeckung, um sicherzustellen, dass alle Teile des Codes korrekt funktionieren.
Sie wollen keine News mehr verpassen?
Melden Sie sich zu unserem Newsletter an und lassen Sie sich mit monatlichen Publikationen & Veranstaltungstipps für Energieunternehmen versorgen.
INTENSE AG benötigt die Kontaktinformationen, um Ihnen den Newsletter schicken zu können. Sie können den Newsletter jederzeit abbestellen. Informationen zur Abmeldung sowie unsere Datenschutzpraktiken und unsere Verpflichtung zum Schutz Ihrer Privatsphäre finden Sie in unseren Datenschutzrichtlinien.