News

15 Arten von QA-Tests: Die verschiedenen Gesichter von QA-Tests, von denen Sie nichts wussten

DATE:
March 14, 2024
READING TIME:
10min

Mit verschiedenen Arten von Qualitätssicherungstests (QA) Wenn Sie die Welt der Softwareentwicklung durchqueren und die einzigartigen Eigenschaften der einzelnen Komponenten verstehen, können Sie nur Verwirrung darüber lösen, welche Option am besten zu Ihren Bedürfnissen passt.

Wir haben einen für das Team ausgewählt und beschlossen, die wichtigsten Arten von QA-Tests im Detail zu erläutern, in der Hoffnung, Ihnen bei der Auswahl des richtigen Ansatzes für Ihre Testanforderungen zu helfen.

Inhaltsverzeichniss

  1. Testen von Einheiten
  2. Integrationstests
  3. Durchgängiges Testen
  4. Manuelles Testen
  5. Automatisierungstests
  6. KI-Tests
  7. Funktionstests
  8. Visuelles Testen
  9. Leistungstests
  10. Regressionstests
  11. Kompatibilitätstests
  12. Prüfung der Barrierefreiheit
  13. Rauch- und Gesundheitstests
  14. White-Box- und Blackbox-Tests
  15. Testen auf verschiedene AUTs
  16. Arten von QA-Tests: Die wichtigsten Erkenntnisse
  17. Häufig gestellte Fragen

Testen von Einheiten

Unit-Tests konzentrieren sich auf das Testen der kleinsten Software — der Einheit. Eine Einheit kann eine Funktion, eine Methode, ein Modul oder sogar ein Objekt in einem objektorientierten Paradigma sein. Das Hauptziel besteht darin, zu überprüfen, ob jede Einheit der Software wie erwartet funktioniert, um sicherzustellen, dass sie mit größerer Wahrscheinlichkeit effektiv funktionieren, wenn sie zur vollständigen Anwendung kombiniert werden.

Ein regelmäßiger Komponententest umfasst in der Regel mehrere Elemente:

  • Prüfvorrichtung — Teile eines Komponententests, die bei der Einrichtung der Umgebung helfen, die für die Ausführung des Testfalls erforderlich ist. Es stellt sicher, dass keine externen Einflüsse den Testprozess stören, indem es die ersten Phasen für die zu testende Einheit erstellt.
  • Testfall — ein Skript, das verwendet wird, um das Verhalten der zu testenden Einheit zu bewerten.
  • Testläufer — eine Struktur, die die Durchführung zahlreicher Einzeltests erleichtert und eine detaillierte Analyse und Berichterstattung über deren Ergebnisse ermöglicht.
  • Daten testen — eine Reihe von Werten, die authentische Benutzereingaben in das System nachahmen.
  • Spotten und Stummeln — Ersatz für die tatsächlichen Abhängigkeiten der zu testenden Einheit, falls Tester zwei Einheiten zum Testen benötigen.

Unit-Tests bieten mehrere Vorteile, wie z. B. eine einfachere Codewartung, geringere Softwareentwicklungskosten und eine höhere Codequalität. Aus diesem Grund sind sich Experten einig, dass Komponententests Folgendes wettmachen sollten 70% Ihrer Teststrategie.

Beispiel für Komponententests

Stellen Sie sich eine Bankanwendung vor, bei der eine Einheit eine Funktion ist, die das auf dem Konto des Benutzers verfügbare Gesamtguthaben berechnet. Bei einem Komponententest wird ein Test erstellt, um zu überprüfen, ob die Funktion verschiedene Szenarien korrekt handhabt — sie summiert die Einzahlungsbeträge korrekt und zieht die Auszahlungsbeträge entsprechend ab.

Wenn das Konto beispielsweise ein Anfangssaldo von 1000 USD hatte und der Benutzer eine Einzahlung von 500 USD und eine Auszahlung von 200 USD tätigt, sollte die Funktion einen Endsaldo von 1300 USD zurückgeben. Beim Komponententest wird dieses Szenario als Testfall ausgeführt und bestätigt, dass die Funktion den richtigen Betrag zurückgibt. Ist dies nicht der Fall, signalisiert der fehlgeschlagene Test, dass ein Defekt im Funktionscode vorliegt, den Sie beheben müssen. Das ist Komponententest in Aktion!

Integrationstests

Ausgehend von einzelnen Komponenten kommen wir zu Interaktionstests, die sich auf die Verbindungen zwischen verschiedenen Funktionen, Modulen oder Diensten konzentrieren. Integrationstests stellen letztlich sicher, dass die einzelnen Komponenten der Software effektiv zusammenarbeiten, wenn sie kombiniert werden, was zu einem feineren Produkt und einer besseren Benutzererfahrung beiträgt.

Es gibt zwar viele Strategien für Integrationstests, aber die am meisten bevorzugten sind:

  • Urknall-Strategie, wo alle Komponenten zusammengeführt und als umfassende Einheit getestet werden.
  • Inkrementeller Ansatz in dem verschiedene Gruppen miteinander verbundener Logikkomponenten integriert und nacheinander getestet werden.

Sie können den inkrementellen Ansatz auf verschiedene Arten durchführen:

  • Von unten nach oben — integriert und testet zuerst kleinere Komponenten, bevor größere Komponenten verwendet werden
  • Von oben nach unten — integriert und testet zuerst kleinere Komponenten, bevor größere Komponenten verwendet werden
  • Sandwich — kombiniert geschickt die Bottom-up- und Top-Down-Techniken zu einer ganzheitlichen Strategie

Beispiel für Integrationstests

Schauen wir uns ein typisches Beispiel für Integrationstests in einer Bankanwendung an. Angenommen, es gibt zwei Module: „Neues Konto erstellen“ und „Einzahlung“. Auf der Ebene der Einheiten müssen Sie jedes dieser Module einzeln testen.

Wenn es jedoch um Integrationstests geht, müssen wir beurteilen, wie diese Funktionen interagieren. Also, wie funktioniert der Prozess? Wir beginnen mit der Erstellung eines neuen Kontos mit dem Modul „Neues Konto erstellen“. Sobald das Konto erfolgreich erstellt wurde, verwenden wir das Modul „Einzahlung“, um eine Einzahlung auf das neu erstellte Konto vorzunehmen.

Während dieses Vorgangs überprüft der Integrationstest, ob das Modul „Einzahlung“ das neue Konto, das mit dem Modul „Neues Konto erstellen“ erstellt wurde, korrekt erkennt und mit ihm interagiert. Wenn der Einzahlungsvorgang erfolgreich ist und der richtige Betrag auf dem neu erstellten Konto angezeigt wird, ist der Integrationstest erfolgreich. Dies zeigt, dass die verschiedenen Module nahtlos zusammenarbeiten.

Durchgängiges Testen

Wir gehen in eine noch makroskopischere Perspektive über und kommen zu umfassenden Tests. Bei dieser Art von Tests wird aus der Benutzerperspektive die gesamte Funktionalität des Systems getestet, einschließlich der Schnittstelle zur Datenbank, zum Netzwerk und zu anderen Diensten. Es bestätigt, dass der gesamte Ablauf einer Anwendung von Anfang bis Ende wie geplant funktioniert.

Beispiel für einen umfassenden Test

Nehmen wir an, Sie testen eine Online-Shopping-Anwendung. Das umfassende Testen würde in diesem Fall Folgendes beinhalten:

  • Neues Benutzerkonto erstellen
  • In das Konto einloggen
  • Produkte durchsuchen
  • Wählen Sie ein Produkt aus und legen Sie es in den Warenkorb
  • Gehen Sie zur Kasse, wo Sie die Zahlungs- und Lieferdetails eingeben
  • Abschließend Bestellung aufgeben und Abmelden

Dieser Prozess validiert alle integrierten Komponenten des Systems, von der Benutzeroberfläche und der Datenbank bis hin zu Zahlungsintegrationen von Drittanbietern und E-Mail-Benachrichtigungen, und stellt sicher, dass jeder Teil wie vorgesehen funktioniert, wenn er als zusammenhängende Einheit interagiert.

Manuelles Testen

Gehen wir einen Schritt zurück von softwaregestützten Tests und betrachten wir eine klassische Form des Testens, die während der Entwicklung oft unverzichtbar ist. Manuelles Testen ist eine Art von Test, bei dem ein Mensch vor einem Computer sitzt und die Testschritte sorgfältig ausführt.

Diese Art von Tests ist anpassungsfähig und daher besonders in den frühen Entwicklungsphasen nützlich, wenn häufig Änderungen vorgenommen werden. Im Gegensatz zu automatisierten Tests kann es jedoch zeitaufwändig und anfällig für menschliche Fehler sein.

Beispiel für manuelles Testen

Ein Beispiel für manuelles Testen ist das Überprüfen einer Webseite. Der Tester könnte zunächst überprüfen, ob alle erwarteten Elemente wie Überschriften, Bilder und Formulare vorhanden sind. Dann interagierten sie mit diesen Elementen, füllten Formularfelder aus, navigierten durch Dropdownmenüs und klickten auf Schaltflächen und Links.

Sie würden testen, ob sich all diese Elemente auf verschiedenen Browsern und Geräten wie beabsichtigt verhalten. Ein manueller Tester sollte sich darauf konzentrieren, zu bestätigen, dass alle Validierungsfehler beim Absenden des Formulars wie erwartet angezeigt werden, und sicherstellen, dass eine Erfolgsmeldung angezeigt wird, wenn das Formular korrekt ausgefüllt wurde.

Automatisierungstests

Trotz des Werts manueller Tests hat das Aufkommen moderner Entwicklungsmethoden eine effizientere Testmethode erforderlich gemacht — Automatisierungstests. Es beinhaltet in erster Linie die Erstellung von Testskripten und die Verwendung anderer Software zur Durchführung der Testaufgaben. Der Tester muss die Skripts jedoch kontinuierlich aktualisieren, um den Änderungen an der getesteten Software Rechnung zu tragen.

Hier sind einige der Vorteile von Automatisierungstests:

  • Geschwindigkeit: Automatisierte Tests können schnell und wiederholt ausgeführt werden und eignen sich daher ideal für Agile- oder DevOps-Umgebungen.
  • Effizienz: Durch die Automatisierung können mehr Tests ausgeführt werden als manuelle Tests.
  • Vermeidet menschliche Fehler: Automatisierte Tests führen bei jeder Ausführung exakt den gleichen Vorgang aus, wodurch die Möglichkeit menschlicher Fehler ausgeschlossen wird.
  • Breite Abdeckung: Automatisierte Tests können ein breiteres Spektrum an Tests und Szenarien abdecken, sodass sie für alles von Lasttests bis hin zu Regressionstests von Vorteil sind.

Beispiel für Automatisierungstests

Stellen Sie sich Ihre bevorzugte Online-Einkaufsplattform vor, egal ob es sich um Amazon, eBay oder eine lokale E-Commerce-Website handelt. Stellen Sie sich vor, jedes Mal, wenn eine neue Funktion hinzugefügt wird, beispielsweise eine neue Zahlungsmethode, müssen die Softwareentwickler sicherstellen, dass diese Ergänzung keine bereits vorhandenen Funktionen der Website beeinträchtigt. Dies manuell zu tun kann ziemlich mühsam und zeitaufwändig sein. Hier kommen Automatisierungstests ins Spiel, um den Tag zu retten.

Mithilfe von Automatisierungstools können die Entwickler Skripte für die neue Funktion schreiben, in diesem Fall für den Checkout-Prozess, der die neue Zahlungsmethode beinhaltet. Sobald diese Skripte fertig sind, werden sie ausgeführt. Dazu gehören die Simulation von Aktionen wie dem Klicken auf Schaltflächen, dem Ausfüllen von Zahlungsinformationen und dem Abschluss des Kaufs.

Wenn alles glatt läuft, besteht das Feature den Test. Wenn es jedoch zu einem abrupten Stopp oder zu einem unerwarteten Ergebnis kommt, liegt ein Problem vor, das Aufmerksamkeit erfordert. Dieser gesamte Prozess, der bei manueller Ausführung Stunden gedauert hätte, könnte dank Automatisierungstests innerhalb von Minuten effizient abgeschlossen werden.

KI-Tests

Als Nächstes stehen KI-Tests an, eine der neueren Testformen, die durch technologische Fortschritte ermöglicht werden. KI-Tests halten sich an den etablierten Lebenszyklus von Softwaretests, bauen aber darauf auf, indem künstliche Intelligenz, maschinelles Lernen, natürliche Sprachverarbeitung und Computer Vision eingeführt werden, um den Testprozess zu verbessern

Diese Art von QA-Test hat sich als zahllose Vorteile erwiesen, wie zum Beispiel:

  • Effizienz: Durch das Erlernen von Mustern und den Einsatz prädiktiver Analysen kann KI die erforderlichen Tests effizient identifizieren und ausführen, wodurch die Produktivität der Tester insgesamt verbessert wird.
  • Genauigkeit: Mit KI können Ungenauigkeiten, die durch menschliches Versagen entstehen, ausgeschlossen werden.
  • Intelligente Fehlererkennung: KI kann auch helfen, Fehler im System genauer und schneller zu finden als manuelle Methoden.

Beispiel für KI-Tests

Nehmen wir zum Beispiel eine E-Commerce-Website. Die Website hat Hunderte von Produktseiten, und jede Seite hat verschiedene Komponenten — ein Produktbild, Preisdetails, Produktbeschreibung, Kundenrezensionen und eine Schaltfläche „Jetzt kaufen“. Bei herkömmlichen Testmethoden könnte es ewig dauern, die Funktionalität und visuelle Integrität aller Komponenten auf allen Produktseiten sicherzustellen.

Führen Sie nun ein KI-gestütztes Testtool in die Gleichung ein. Das Tool verwendet einen Algorithmus für maschinelles Lernen (ML), um die Struktur der Website zu „lernen“. Anschließend navigiert es wie ein Mensch durch jede Produktseite und identifiziert und testet jede Komponente. Wenn das Beschreibungsfeld eines neuen Produkts leer bleibt oder wenn eine Schaltfläche „Jetzt kaufen“ nicht funktioniert, identifiziert die KI diese Probleme während der Navigation und markiert sie zur Überprüfung.

Funktionstests

Funktionstests sind eine Sammlung von Tests, die durchgeführt werden, um zu bestätigen, dass die Funktionalität des Systems im Vergleich zur Spezifikation der Softwareanforderungen erwartungsgemäß funktioniert. Das Grundprinzip hinter Funktionstests lautet 'Was das System macht'eher als'Wie macht es das'.

Hier finden Sie einen Überblick über wichtige Punkte zum Funktionstest:

  • Es bewertet jede Funktion der Softwareanwendung, indem es entsprechende Eingaben liefert und die Ausgabe anhand der funktionalen Anforderungen überprüft.
  • Es handelt sich um eine Form des Black-Box-Tests, was bedeutet, dass die interne Logik des getesteten Systems dem Tester unbekannt ist.
  • Funktionstests können auf allen Testebenen durchgeführt werden — Einheiten-, Integrations-, System- und Abnahmetests.

Beispiel für Funktionstests

Nehmen wir ein anderes hypothetisches Szenario, um zu erklären, wie Funktionstests funktionieren. Stellen Sie sich vor, es gibt ein webbasiertes Reisebuchungsportal. Hier sind einige wichtige Funktionen, die einem Funktionstest unterzogen werden können:

  • Registrierung neuer Benutzer: Wenn ein Benutzer auf die Schaltfläche „Anmelden“ klickt, sollte er zum Registrierungsformular weitergeleitet werden. Nach dem Ausfüllen und Absenden des Formulars sollten sie eine Bestätigungs-E-Mail erhalten und ihre Daten sollten sicher in der Datenbank gespeichert werden.
  • Suchfunktion: Wenn ein Benutzer einen Städtenamen in die Suchleiste eingibt und auf „Suchen“ drückt, sollten alle relevanten Optionen angezeigt werden.
  • Buchung: Sobald ein Benutzer seinen bevorzugten Flug ausgewählt und die erforderlichen Informationen eingegeben hat, sollte beim Klicken auf die Schaltfläche „Jetzt buchen“ eine Bestätigungsnachricht angezeigt, der Betrag von seiner bevorzugten Zahlungsmethode abgezogen und die Buchungsbestätigung per E-Mail gesendet werden.

Während der Funktionstestphase werden Testfälle erstellt, um jede dieser Funktionen effektiv zu validieren. Alles, was von den erwarteten Ergebnissen abweicht, wird aufgezeichnet und dem Entwicklungsteam zur Korrektur mitgeteilt. Das ist das Schöne und Wesentliche an Funktionstests — sie stellen sicher, dass jeder Teil Ihrer Anwendung wie vorgesehen funktioniert.

Visuelles Testen

Visuelles Testen ist eine Qualitätssicherungsmaßnahme, mit der sichergestellt werden soll, dass die grafische Benutzeroberfläche (GUI) den Benutzern korrekt angezeigt wird. Es hilft zu überprüfen, ob jedes GUI-Element an seinem Platz ist, die richtige Form, Größe und Farbe hat und den richtigen Text enthält.

Ein einzigartiger Aspekt des visuellen Testens ist der Vergleich von Screenshots der GUI in verschiedenen Kombinationen aus Plattform, Gerät und Browser, um deren Reaktionsfähigkeit und Konsistenz zu überprüfen.

Beispiel für visuelle Tests

Stellen Sie sich vor, Sie haben eine neue Online-Shopping-Anwendung erstellt. Während der visuellen Testphase überprüfen Sie alle Elemente, wie zum Beispiel:

  • Werden die Bilder der aufgelisteten Produkte in allen Auflösungen korrekt geladen?
  • Ist das Layout der Produktinformationen (Titel, Preis, Beschreibung usw.) auf jeder Produktseite einheitlich?
  • Befindet sich der Kaufbutton auf der Checkout-Seite in einer angemessenen, benutzerfreundlichen Position?
  • Sind alle Schriftarten in der gesamten Anwendung konsistent?
  • Sind die Textfarben ausreichend kontrastiert, um lesbar zu sein?

Wenn Sie sicherstellen, dass all diese visuellen Aspekte mit Ihrem ursprünglichen Design übereinstimmen, können Sie ein angenehmeres und intuitiveres Benutzererlebnis bieten.

Leistungstests

In der Technologiewelt gibt es ein weit verbreitetes Sprichwort: „Leistung ist der Schlüssel.“ Jeder Benutzer verlangt eine Software, die sofortige Antworten ohne Trägheit bietet. Hier kommen Leistungstests ins Spiel.

Es handelt sich um einen Softwaretestprozess, mit dem Geschwindigkeit, Reaktionszeit, Stabilität, Zuverlässigkeit, Skalierbarkeit und Ressourcenverbrauch einer Softwareanwendung unter einer bestimmten Arbeitslast getestet werden. In diesem Sinne können wir über Folgendes sprechen:

  • Belastungstest: Dieser Test überprüft, wie sich das System bei normaler und hoher Belastung verhält, und hilft dabei, die maximale Betriebskapazität einer Anwendung zu ermitteln.
  • Stresstests: Dieser Test überprüft die Robustheit und Fehlerbehandlung unter extremen Workloads und hilft dabei, die Bruchstelle einer Anwendung zu identifizieren.
  • Ausdauertests: Bei diesem Test wird überprüft, ob das System der erwarteten Dauerbelastung standhält. Er weist auf potenzielle Speicherlecks oder Leistungseinbußen hin.
  • Spitzentests: Bei diesem Test wird überprüft, ob die Software plötzliche starke Lastspitzen vieler Benutzer bewältigen kann.
  • Volumentests: Große Datenmengen werden in der Datenbank gespeichert, während die Kapazität der Datenbank und das Verhalten der Software bewertet werden.

47% der Nutzer erwarten, dass eine Webseite geladen wird in zwei Sekunden oder weniger und 40% verlassen eine Website, deren Laden länger als drei Sekunden dauert. Dies zeigt, wie wichtig Leistungstests für die Zufriedenheit und Kundenbindung sind.

Beispiel für Leistungstests

Angenommen, ein Online-Händler bereitet sich auf einen Black Friday-Verkauf vor. Sie erwarten während des Verkaufszeitraums einen erheblichen Anstieg des Traffics auf ihrer Website. Die IT-Abteilung des Einzelhändlers beschließt, Leistungstests durchzuführen, um sicherzustellen, dass ihre Server den prognostizierten Benutzerzuwachs bewältigen können.

Das Team entwickelt eine Testumgebung, die die erwartete Anzahl gleichzeitiger Benutzer simuliert und eine Vielzahl von Aufgaben ausführt, z. B. die Suche nach Produkten, das Hinzufügen von Artikeln zum Warenkorb und das Auschecken. Sie überwachen die Antwortzeiten, die Fehlerraten, die Serverlast und andere relevante Messwerte, um zu beurteilen, ob das System den erwarteten Datenverkehr bewältigen kann.

Der Leistungstest ergab, dass die Ladezeiten der Seiten erheblich zunehmen, sobald die simulierten Benutzer eine bestimmte Anzahl überschreiten. Mit diesen Informationen kann die IT-Abteilung die notwendigen Änderungen vornehmen, um die Leistung der Website vor der Verkaufsveranstaltung zu verbessern. Dadurch kann das Unternehmen möglicherweise vor Umsatzeinbußen aufgrund von Verzögerungen oder Ausfallzeiten der Website bewahrt werden.

Regressionstests

Die Entwicklung hört nicht nach einer Produkteinführung auf. Kontinuierliche Verbesserungen und Bugfixes können unbeabsichtigt zu neuen Fehlern führen, was oft als „Softwareregression“ bezeichnet wird. An dieser Stelle kommen Regressionstests ins Spiel. Es handelt sich um eine Form des Testens, die sicherstellt, dass zuvor entwickelte und getestete Software nach Änderungen oder Aktualisierungen immer noch die gleiche Leistung erbringt.

In Ermangelung von Regressionstests können die Kosten für Fehler, die bei der Nachbearbeitung festgestellt werden, betragen bis zu 15 mal mehr als wenn sie während der Entwurfsphase gefunden wurden, zehnmal mehr als wenn sie während der Entwicklungsphase bemerkt wurden, und siebenmal mehr als wenn sie während der Testphasen erkannt würden.

Beispiel für Regressionstests

Ziehen Sie eine Online-Buchungsplattform in Betracht. Wenn eine neue Funktion, wie z. B. ein Bewertungssystem, eingeführt wird, kann dies möglicherweise die Funktionalität vorhandener Funktionen wie Kontoanmeldungen, Buchungsvorgänge oder Zahlungsvorgänge beeinträchtigen.

Bei Regressionstests würden wir das gesamte System erneut testen, um sicherzustellen, dass keine zuvor funktionellen Aspekte aufgrund der Integration der neuen Funktion negativ beeinflusst wurden.

Ein schrittweiser Ansatz für diesen Regressionstest könnte wie folgt aussehen:

  1. Loggen Sie sich in das Konto ein und überprüfen Sie den erfolgreichen Betrieb
  2. Versuchen Sie eine Buchung und gehen Sie jeden Schritt systematisch durch, um die Funktionalität zu überprüfen
  3. Führen Sie eine Zahlungstransaktion durch und bestätigen Sie deren erfolgreichen Abschluss
  4. Hinterlassen Sie eine Bewertung für einen gebuchten Service, um die Funktionsweise der neuen Funktion zu bestätigen
  5. Versuchen Sie schließlich alle diese Aufgaben in verschiedenen Kombinationen erneut, um die Kohärenz des gesamten Systems sicherzustellen

Durch diese Schritte können wir feststellen, ob das neue Bewertungssystem unbeabsichtigt andere Bereiche der Plattform gestört hat, und so sicherstellen, dass die Anwendung für Endnutzer zuverlässig und effektiv bleibt.

Kompatibilitätstests

Wie der Name schon sagt, wird bei Kompatibilitätstests die Kompatibilität einer Softwareanwendung in verschiedenen Umgebungen — Betriebssystemen, Browsern, Datenbanken, Hardware, Netzwerken usw. — bewertet. Diese Tests stellen sicher, dass die Software in verschiedenen Umgebungen wie vorgesehen ohne Probleme funktioniert.

In diesem Zusammenhang können wir über Folgendes sprechen:

  • Hardwarekompatibilitätstests: Überprüft die Kompatibilität Ihrer Software mit verschiedenen Hardwarekonfigurationen.
  • Kompatibilitätstests für Betriebssysteme/Browser: Testet die Softwarekompatibilität mit verschiedenen Betriebssystemen und Browsern.
  • Softwarekompatibilitätstests: Überprüft die Softwarekompatibilität mit anderen Softwaremarken.

Beispiele für Kompatibilitätstests

Stellen Sie sich vor, Sie haben eine Anwendung für die Videobearbeitung entwickelt. Die Funktionalität ist unglaublich! Benutzer können Videos ausschneiden und zusammenfügen, Soundtracks hinzufügen, Texte einfügen und vieles mehr. Können Sie jedoch garantieren, dass es auf einem iMac genauso einwandfrei funktioniert wie auf einem Windows-PC oder einem Linux-Computer? Sie müssen auch verschiedene Versionen der einzelnen Betriebssysteme und möglicherweise verschiedene Browser berücksichtigen, wenn es sich um eine Web-App handelt. Hier kommen Kompatibilitätstests ins Spiel.

In diesem Fall führt Ihr QA-Team eine Reihe von Tests auf verschiedenen Betriebssystemen durch, z. B. Windows 7, Windows 10, OSX Mojave, Linux Ubuntu usw. Das Team wird nach Unstimmigkeiten in der Leistung der Anwendung auf den einzelnen Systemen suchen. Sie werden verschiedene Browser wie Chrome, Firefox, Safari und Edge ausprobieren. Sie werden untersuchen, wie sich das Layout und die Funktionalität der Anwendung bei verschiedenen Bildschirmauflösungen verhalten, und sie werden sie auch auf verschiedenen Geräten wie Laptops, Tablets und Smartphones testen.

Sobald der Test abgeschlossen ist, erhalten Sie einen detaillierten Bericht über die Kompatibilität Ihrer Anwendung mit verschiedenen Systemen. Dies ist wichtig, da Ihre Benutzer im Wesentlichen unterschiedliche Hintergründe haben und unterschiedliche Hardware, Software und Geräte verwenden. Sie möchten allen eine reibungslose Benutzererfahrung bieten. Der erste Schritt, um dies zu erreichen, ist die Sicherstellung, dass Ihre Anwendung mit ihrem System kompatibel ist.

Prüfung der Barrierefreiheit

Inklusivität ist wichtig und digitale Plattformen sind keine Ausnahme. Barrierefreiheitstests sind ein integraler Bestandteil von Softwaretests, die sicherstellen, dass die Software oder Anwendung von Menschen mit Behinderungen wie Seh-, Hör- und anderen körperlichen Behinderungen verwendet werden kann.

Allerdings können QA-Tester testen auf:

  • Barrierefreiheit beim Sehen: Dies bedeutet, dass Software von sehbehinderten Benutzern verwendet werden kann. Techniken wie Bildschirmvergrößerung, Verwendung von Brailleschrift und kontrastreiche Benutzeroberflächen könnten verwendet werden.
  • Barrierefreiheit für Hörgeschädigte: Stellen Sie sicher, dass Audioinformationen auch in visueller oder taktiler Form für Personen mit Hörbehinderungen bereitgestellt werden.
  • Mobilität und Barrierefreiheit: Die Eingabe für Menschen mit eingeschränkter Bewegungsfähigkeit so einfach wie möglich machen.

Fast einer von fünf Menschen in den USA eine Behinderung haben. Dies unterstreicht die Bedeutung von Barrierefreiheitstests, um die Software für alle ohne jegliche Form von Diskriminierung nutzbar zu machen.

Beispiel für Barrierefreiheitstests

Angenommen, Sie arbeiten an einer Nachrichtenwebsite. Zu den wichtigsten Elementen, die Sie berücksichtigen müssen, gehören:

  • Farbkontrast: Sind die Text- und Hintergrundfarben unterscheidbar? Menschen mit Farbenblindheit oder Sehschwäche benötigen einen starken Kontrast, um Inhalte lesen zu können.
  • Barrierefreiheit der Tastatur: Können Besucher alle Funktionen der Website allein mit der Tastatur verwalten? Dies ist entscheidend für diejenigen, die aufgrund körperlicher Bedingungen keine Maus benutzen können.
  • Klartext und visueller Inhalt: Ist der Text leicht zu verstehen? Haben alle Bilder Bildunterschriften? Menschen mit kognitiven Behinderungen benötigen möglicherweise diese Überlegungen.
  • Verwendung von ARIA-Rollen: Diese Rollen helfen Screenreadern dabei, den Inhalt der Website für Menschen mit Sehbehinderungen zu interpretieren.

Diese Maßnahmen bilden in diesem Szenario den Kern der Barrierefreiheitstests und stellen sicher, dass die Website für alle zugänglich ist, unabhängig von ihren körperlichen Fähigkeiten. Um diesen Prozess zu unterstützen, stehen Tools wie WINKEN oder Axt kann sich als nützlich erweisen.

Rauch- und Gesundheitstests

Rauch- und Hygienetests sind zwei wichtige Arten von QA-Testmethoden, die in entscheidenden Phasen des Softwareentwicklungszyklus eingesetzt werden. Die Implementierung dieser Testmethoden gewährleistet ein stabileres, zuverlässigeres Produkt, eine verbesserte Kundenzufriedenheit und letztendlich eine erfolgreiche Softwareeinführung.

Grundsätzlich gilt:

  • Rauchtest, auch bekannt als Build-Verifizierungstest — wird durchgeführt, um zu beurteilen, ob der bereitgestellte Build stabil ist und ob Sie einen detaillierten Test durchführen können
  • Prüfung der geistigen Gesundheit, auch Surface Level Testing genannt, wird während der Release-Phase durchgeführt, um nach kleineren Problemen und Bugs zu suchen.

Beispiele für Rauch- und Gesundheitstests

Sobald Sie festgestellt haben, dass der Software-Build stabil ist, ist es Zeit für Rauchtests. Dies könnte die Durchführung einer Reihe von Tests beinhalten, wie zum Beispiel:

  • Prüfen, ob die Software korrekt gestartet wird
  • Überprüfen, ob die Elemente der Benutzeroberfläche wie erwartet angezeigt werden
  • Testen wesentlicher Funktionen wie Speichern und Laden
  • Testen der Fehlerbehandlung durch absichtliches Erzwingen einiger Fehler

Andererseits führen die Tester nach Erhalt eines kleineren Softwareupdates oder Patches, das bestimmte Probleme behebt, Plausibilitätstests durch, um:

  • Überprüfen Sie die Korrekturen für die relevanten Fehler, die Sie mit dem Update behoben haben.
  • Testen Sie verwandte Funktionen, um sicherzustellen, dass die Updates nicht unbeabsichtigt Nebenfunktionen oder Aspekte der Software störten.
  • Führen Sie kurze Überprüfungen aller Hauptkomponenten der Software durch, um deren Stabilität zu überprüfen.
  • Führen Sie alle fehlgeschlagenen Testfälle aus dem vorherigen Build aus

White-Box- und Blackbox-Tests

White-Box- und Black-Box-Tests bilden zwei separate Methoden zur Softwarevalidierung. Im Wesentlichen:

White-Box-Test konzentriert sich auf die internen Abläufe einer Anwendung, ähnlich wie wir das Innere einer weißen Box sehen können. Es basiert auf der Kenntnis der zugrunde liegenden Logik des Codes einer Anwendung und umfasst Tests wie Pfadabdeckung, Anweisungsabdeckung und zyklomatische Komplexität. Das beinhaltet:

  • Testen einzelner Funktionen oder Methoden innerhalb des Codes auf Gültigkeit
  • Überprüfung interner Software und Code-Working
  • Sicherstellen, dass Schleifen, Bedingungen und Anweisungen wie erwartet funktionieren

Blackbox-Tests betrachtet die Funktionalität der Anwendung, ohne einen Blick auf ihre internen Strukturen oder Abläufe zu werfen, ähnlich wie das Innere einer Blackbox nicht sichtbar ist. Dieser Ansatz konzentriert sich auf Eingabe und Ausgabe, ohne zu berücksichtigen, wie die Anwendung die Ausgabe erzeugt. Zu den wichtigsten Aspekten von Black-Box-Tests gehören:

  • Vergleich der Leistung eines Systems mit dem erwarteten Ergebnis.
  • Sicherstellen, dass das System nicht anfällig für Abstürze aufgrund unerwarteter Eingaben ist.
  • Es wird überprüft, ob das System erwartungsgemäß nach Ausfällen wiederhergestellt wird.

Beispiele für White-Box- und Black-Box-Tests

Angenommen, wir haben eine Anwendung, die die Summe zweier Zahlen berechnet. Hier hätten Tester Zugriff auf den zugrunde liegenden Code und wüssten, dass die Anwendung zwei Eingaben (die Zahlen) liest, sie im Code der Anwendung zusammenzählt und dann eine Ausgabe (die Summe) liefert.

Zum Testen würden sie die internen Operationen der Anwendung untersuchen und prüfen, ob die Eingaben korrekt gelesen werden, ob die Additionsoperation korrekt implementiert ist und ob die Ausgabe die Summe der Eingaben korrekt wiedergibt. Sie könnten eine Reihe von Zahlen (wie 3 und 5) eingeben, um zu sehen, ob die Anwendungsausgabe tatsächlich 8 ist, wodurch die internen Abläufe überprüft und sichergestellt werden, dass jede Komponente wie vorgesehen funktioniert. Diese Art des tiefen Eintauchens in den Code der Anwendung ist die Essenz des White-Box-Tests.

Umgekehrt verfolgen Blackbox-Tests einen anderen Ansatz. Anstatt sich mit den komplizierten Codierungsdetails zu befassen, betrachten Black-Box-Tests die Software aus der Perspektive des Endbenutzers.

In einer Taschenrechneranwendung konzentriert sich ein QA-Tester beispielsweise möglicherweise nur darauf, ob die Anwendung 8 korrekt als Summe aus 3 und 5 anzeigt. Sie würden sich nicht darum kümmern, was hinter den Kulissen passiert — wie die Eingaben gelesen werden oder wie die Summe berechnet wird. Der Tester kümmert sich nur darum, ob die endgültige Ausgabe — in diesem Fall die Summe — korrekt ist oder nicht. Und wenn nicht, ist das eine Flagge, mit der sich das Entwicklungsteam befassen und das Problem beheben muss.

Testen auf verschiedene AUTs

Application Under Test wird manchmal als AUT abgekürzt und beinhaltet die Anwendung der oben genannten Testmethoden auf verschiedene Anwendungen.

In diesem Zusammenhang können wir über Folgendes sprechen:

  • Testen von Webanwendungen: Der Schwerpunkt liegt auf Leistung, Benutzerfreundlichkeit und Sicherheit, um sicherzustellen, dass der serverseitige Betrieb gut funktioniert.
  • Testen von Desktop-Anwendungen: Prüfen Sie die Funktionalität, Benutzerfreundlichkeit und Konsistenz der Anwendung auf dem Desktop.
  • Testen mobiler Anwendungen: Überprüfen Sie die Funktionalität, Benutzerfreundlichkeit und Konsistenz der Anwendung auf verschiedenen Mobilgeräten.

Arten von QA-Tests: Die wichtigsten Erkenntnisse

All diese QA-Tests sind entscheidend für eine optimale Softwareentwicklung. Von manuellen Tests bis hin zu automatisierten Integrationen helfen sie dabei, potenzielle Probleme frühzeitig im Prozess zu erkennen, Entwicklungszeiten und -kosten zu reduzieren und gleichzeitig ein effizientes, qualitativ hochwertiges Produkt zu gewährleisten.

Häufig gestellte Fragen

Warum sind QA-Tests wichtig?

QA-Tests sind von entscheidender Bedeutung, da sie die Funktionalität, das Design und die Benutzerfreundlichkeit eines Softwareprodukts validieren, um sicherzustellen, dass es die angegebenen Kriterien erfüllt und die Benutzeranforderungen zuverlässig erfüllt. Es mindert das Risiko, minderwertige oder fehlerhafte Produkte auf den Markt zu bringen, schützt den Ruf des Unternehmens und spart Kosten, die mit Produktrückrufen oder Reparaturen verbunden sind. Noch wichtiger ist, dass es ein zufriedenstellendes Nutzererlebnis gewährleistet und zur Nutzerbindung und -bindung beiträgt.

Welche ist die am meisten bevorzugte Testmethode?

Die Wahl einer Testmethode hängt von den spezifischen Anforderungen der Software und dem Entwicklungsstadium ab. Automatisierungstests bieten jedoch Geschwindigkeit und eine konstante Verwendung ohne menschliches Versagen, weshalb sie für regelmäßige und sich wiederholende Testaufgaben bevorzugt werden. Manuelles Testen ist jedoch immer noch für Fälle erforderlich, die eine menschliche Berührung und logisches Denken erfordern, wie z. B. Benutzeroberflächen- und explorative Tests.

READ MORE ON OUR BLOG
Discover similar posts
Zehn Best Practices für QA-Tests, die den Unterschied ausmachen

Was genau sind Qualitätssicherungstests (QA)? Warum ist es ein wichtiges Element im Softwareerstellungsprozess? Lassen Sie uns in diese Themen eintauchen und die verschiedenen Arten von QA-Tests, ihre gegenseitigen Prozesse und die besten Praktiken untersuchen, die zu einer reibungslosen Projektabwicklung beitragen. Unterwegs werden wir auch die gemeinsamen Herausforderungen in diesem Bereich erörtern.

Read More
Was ist Atomic Design System Methodology?

Designer müssen komplizierte Benutzeroberflächen erstellen, die in einer Vielzahl von Bildschirmgrößen und Kontexten gut funktionieren. Dies hat die Art und Weise verändert, wie Designer an den Designprozess herangehen. Atomic Design ist eine Technik zum Erstellen von Seiten, mit der erfolgreiche Benutzeroberflächen von Grund auf erstellt werden können. Diese Technik wurde von der Naturwissenschaft inspiriert — Atome sind die grundlegenden Bausteine aller Materie, und zwei oder mehr Atome verbinden sich zu Molekülen.

Read More
Was ist besser für 2022: Kotlin oder Java?

Wahrscheinlich hast du einen Hinweis aus dem heutigen Blog-Titel bekommen. Im heutigen Artikel werden wir uns mit den grundlegenden Unterschieden zwischen Kotlin und Java befassen. Alle unsere Vergleiche werden auf Java und Kotlin basieren. Die Entwicklung von Android-Apps ist für jedes Unternehmen, ob groß oder klein, zu einer gängigen Methode geworden, um zu wachsen. Die zur Erstellung der App verwendete Programmiersprache ist jedoch der wichtigste Aspekt der Android-App-Entwicklung, der sich auf Ihr Unternehmen auswirken kann.

Read More