Grundlagen Testen

Das Testen von Software ist ein Prozess, bei dem die Korrektheit und die Ausführung der Software überprüft wird, um Fehler oder Defekte zu finden.


Erklärung

Um eine gute Anwendung zu erstellen, muss getestet und geprüft werden, ob die Anwendung alle Anforderungen erfüllt.

Softwaretests bieten eine unabhängige und objektive Sicht auf die Software und liefern potenziellen Kunden Informationen über die Qualität.

Das Testen ist beim Programmieren obligatorisch (also zwingend erforderlich), da es teilweise zu gefährlichen Situationen kommen kann, wenn eine Software nicht eingehend getestet wurde.

Jans Computer ist explodiert.

Testen kann jedoch nicht alle Fehler der Anwendung finden.

Beim Testen wird nicht nachgewiesen, dass ein Produkt unter allen Bedingungen ordnungsgemäß funktioniert, sondern nur, dass es unter bestimmten Bedingungen nicht funktioniert.

Das Testen umfasst meist eine Prüfung des Codes und auch die Ausführung des Codes in verschiedenen Umgebungen und Bedingungen.

Arten von Tests

In dieser Grafik sind die wichtigsten Testarten aufgelistet:

Es gibt verschiedene Testarten. Automatisiertes und manuelles Testen. Zu dem manuellen Testen gehört das White-Box-, Black-Box- und Grey-Box-Testen. Das Black-Box-Testen besteht aus dem funktionalen und nicht-funktionalen Testen. Das funktionale Testen setzt sich zusammen aus dem Unit-, Integrations- und System-Test. Das nicht-funktionale aus Performanz-, Benutzbarkeits- und Sicherheitstest.

Wie du siehst, wird dabei zuerst einmal in Automatisiertes und Manuelles Testen unterschieden.

Automatisiertes Testen

Bei dem Automatiserten Testen werden Testfälle mit Hilfe von Automatisierungswerkzeugen oder einer Programmiersprache in Testskripte umgewandelt.

Manuelles Testen

Für die Durchführung manueller Tests wird das Produkt manuell (per Hand) durchgegangen und mithilfe von Testfällen überprüft, wo mögliche Fehler oder Defekte auftreten können.

Bei den manuellen Tests wird in drei verschiedene Arten unterschieden:

  • White Box Tests
  • Black Box Tests
  • Grey Box Tests

White Box Test

Bei White Box Tests haben die Tester vollen Zugriff auf den Quellcode. Das ist nicht immer ratsam, da bei manchen Programmen dieser sehr vertraulich behandelt werden muss.

Diesen Quellcode gehen sie Schritt für Schritt durch und überprüfen das Programm auf mögliche Fehler bzw. Defekte.

Dabei beziehen sie jedoch nicht die Systemanforderungen in die Tests ein, sondern betrachten ausschließlich den Programmcode.

Lesbarer Code, jedoch wird auf die Anforderungen nicht geachtet.

Black Box Test

Bei Black Box Tests werden alle Tests ohne Kenntnisse über die innere Funktionsweise/Implementierung des zu testenden Programms entwickelt.

Die Tester haben also keine Idee, was genau in den Klassen oder Methoden passiert.

Der Fokus bei Black Box Tests liegt auf der Funktionalität, die sich aus den Anforderungen an das System ableiten lassen.

Unlesbarer Code und eine Liste an Anforderungen

Black Box Tests lassen sich dabei noch in zwei Testarten unterteilen:

  • Funktionales Testen
  • Nichtfunktionales Testen
Funktionales Testen

Die Testingenieure prüfen bei den funktionalen Tests alle Komponenten systematisch anhand der Anforderungen an das System.

Dabei werden alle Komponenten getestet, indem beispielsweise bei Methoden der Wert vorgegeben, die Ausgabe definiert und die tatsächliche Ausgabe mit dem erwarteten Wert verglichen wird.

Funktionale Tests beinhalten dabei folgende drei Schritte:

  1. Unit-Tests
  2. Integrationstests
  3. System-Tests
1. Unit-Test

Bei den Unit-Tests (deutsch Modultests) werden abgrenzbare Teile (z.B. ausgewählte Code-Abschnitte, Unterprogramme, Klassen) einzeln auf Fehler und Defekte getestet.

Das Hauptziel der Durchführung von Unit-Tests ist die Bestätigung der Funktionalität von Unit-Komponenten und ihrer Leistung.

2. Integrationstest

Nach der erfolgreichen Implementierung der Unit-Tests werden die Integrationstests durchgeführt.

Dabei wird der Datenfluss zwischen voneinander abhängigen Modulen oder die Schnittstelle zwischen zwei Klassen getestet.

Der Zweck des Integrationstests besteht darin, die Richtigkeit und Funktionsfähigkeit der Verbindung zwischen einzelnen Modulen zu überprüfen.

3. System-Test

Sobald die Unit- und Integrationstests fertig sind, werden die System-Tests durchgeführt.

Dabei wird das Softwareprodukt als komplettes System noch einmal Schritt für Schritt unter möglichst realistischen Nutzungsbedingungen getestet.

Unit-Test
Integrationstest
System-Test
Nichtfunktionales Testen

Bei den nichtfunktionalen Tests wird das Programm auf mögliches Fehlverhalten in der Performanz, allgemeinen Benutzbarkeit und Sicherheit getestet.

Viele nichtfunktionale Eigenschaften wie z.B. Benutzbarkeit sind jedoch nur schwer quantifizierbar, sie können also schwer an konkreten Werten oder Verhalten des Programms festgemacht werden.

Auch fehlen oft konkrete Angaben aus der Anforderungsdefinition, wodurch entsprechende Tests und die Bewertung erzielter Testergebnisse erschwert werden.

Funktionstests stellen also sicher, dass das Softwareprodukt ordnungsgemäß funktioniert, während bei nichtfunktionalen Tests nichtfunktionale Aspekte wie Leistung, Verwendbarkeit, Zuverlässigkeit usw. geprüft werden.

Grey Box Test

Grey Box Tests sind eine Kombination aus White Box Tests und Black Box Tests. Die Tester haben also Zugriff auf den Quellcode und auf die Anforderungen an das System.

Liste an Anforderungen und lesbarer Code

Grey Box Tests sind vorteilhaft, weil sie die einfache Technik der Black Box Tests mit dem auf den Code ausgerichteten System der White Box Tests kombinieren.


Was haben eigentlich Insekten mit Testen zu tun?

Vielleicht hast du ja schonmal von einem Bug im Kontext von Programmen gehört.

Dabei handelt es sich um Fehler im Code, die in manchen Fällen verheerende Folgen haben können.

Bug heißt übersetzt Insekt und tatsächlich löste schon einmal eine Motte eine Störung eines Computers aus!

Eine Motte ist in Leas Computer geflogen, wodurch der Computer anfing zu rauchen.

Die Wissenschaftler schrieben nach diesem Vorfall in ihr Notizheft: "First actual case of bug being found" ("Der erste Fall, bei dem tatsächlich ein Insekt gefunden wurde").

No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen