Podcast
Questions and Answers
Welche Aussage beschreibt am besten die aktuelle Rolle von Softwaretests im Vergleich zu traditionellen Modellen wie dem Wasserfallmodell?
Welche Aussage beschreibt am besten die aktuelle Rolle von Softwaretests im Vergleich zu traditionellen Modellen wie dem Wasserfallmodell?
- Tests werden hauptsächlich am Ende des Entwicklungsprozesses durchgeführt, um die Funktionalität zu überprüfen.
- Tests werden nur in der Implementierungsphase durchgeführt, um Fehler frühzeitig zu erkennen.
- Tests sind integraler Bestandteil aller Phasen des Entwicklungszyklus, von der Anforderungsanalyse bis zur Wartung. (correct)
- Tests sind optional und werden nur bei Bedarf zur Qualitätssicherung eingesetzt.
Welchen Vorteil bietet die kontinuierliche Integration von Tests in den gesamten Softwareentwicklungszyklus?
Welchen Vorteil bietet die kontinuierliche Integration von Tests in den gesamten Softwareentwicklungszyklus?
- Sie verkürzt die Entwicklungszeit und verbessert die Softwarequalität durch frühzeitige Fehlererkennung. (correct)
- Sie vereinfacht die Implementierungsphase, da Fehler erst später behoben werden müssen.
- Sie reduziert die Notwendigkeit einer detaillierten Anforderungsanalyse.
- Sie macht das Design des Systems irrelevant, solange die Tests am Ende erfolgreich sind.
Was sind analytische Qualitätsmaßnahmen im Kontext der Softwareentwicklung?
Was sind analytische Qualitätsmaßnahmen im Kontext der Softwareentwicklung?
- Systematische Bewertungen und Verbesserungen der Produktqualität. (correct)
- Einmalige Überprüfungen der Software nach der Implementierung.
- Subjektive Bewertungen des Entwicklerteams über die Benutzerfreundlichkeit.
- Marketingstrategien zur Verbesserung des Images der Software.
Welche der folgenden Optionen beschreibt am besten das Ziel von Softwaretests?
Welche der folgenden Optionen beschreibt am besten das Ziel von Softwaretests?
In welcher Beziehung stehen Softwaretests zu analytischen Qualitätsmaßnahmen?
In welcher Beziehung stehen Softwaretests zu analytischen Qualitätsmaßnahmen?
Warum ist es vorteilhaft, Tests frühzeitig in den Entwicklungsprozess zu integrieren?
Warum ist es vorteilhaft, Tests frühzeitig in den Entwicklungsprozess zu integrieren?
Welche der folgenden Aussagen beschreibt den Unterschied zwischen traditioneller und moderner Softwareentwicklung in Bezug auf Tests am besten?
Welche der folgenden Aussagen beschreibt den Unterschied zwischen traditioneller und moderner Softwareentwicklung in Bezug auf Tests am besten?
Welche der folgenden Optionen stellt den größten Vorteil der Testintegration über den gesamten Entwicklungszyklus dar?
Welche der folgenden Optionen stellt den größten Vorteil der Testintegration über den gesamten Entwicklungszyklus dar?
Welche der folgenden Aussagen beschreibt am besten den Zweck des 'Assert'-Schritts in einem Unit-Test?
Welche der folgenden Aussagen beschreibt am besten den Zweck des 'Assert'-Schritts in einem Unit-Test?
Warum ist die Automatisierung von Unit-Tests wichtig im Kontext der Continuous Integration (CI)?
Warum ist die Automatisierung von Unit-Tests wichtig im Kontext der Continuous Integration (CI)?
Welchen Vorteil bieten Unit-Tests hinsichtlich der Dokumentation eines Systems?
Welchen Vorteil bieten Unit-Tests hinsichtlich der Dokumentation eines Systems?
Warum ist es wichtig, den 'Act'-Schritt in einem Unit-Test auf eine einzige Aktion zu beschränken?
Warum ist es wichtig, den 'Act'-Schritt in einem Unit-Test auf eine einzige Aktion zu beschränken?
In welchem Zusammenhang stehen Unit-Tests und die frühzeitige Fehlererkennung?
In welchem Zusammenhang stehen Unit-Tests und die frühzeitige Fehlererkennung?
Was bedeutet 'Isolation' im Kontext von Unit-Tests?
Was bedeutet 'Isolation' im Kontext von Unit-Tests?
Warum ist die schnelle Ausführung von Unit-Tests ein wichtiges Merkmal?
Warum ist die schnelle Ausführung von Unit-Tests ein wichtiges Merkmal?
Ein Stresstest wird durchgeführt, um die Systemleistung über festgelegte Grenzwerte hinaus zu prüfen. Welches spezifische Ziel wird mit diesem Test primär verfolgt?
Ein Stresstest wird durchgeführt, um die Systemleistung über festgelegte Grenzwerte hinaus zu prüfen. Welches spezifische Ziel wird mit diesem Test primär verfolgt?
Welche Rolle spielen Mock-Objekte oder Stubs bei Unit-Tests?
Welche Rolle spielen Mock-Objekte oder Stubs bei Unit-Tests?
Bei einem Zuverlässigkeitstest wird die Systemreaktion im Dauerbetrieb untersucht. Welche Metrik ist hierbei besonders relevant?
Bei einem Zuverlässigkeitstest wird die Systemreaktion im Dauerbetrieb untersucht. Welche Metrik ist hierbei besonders relevant?
Ein Softwareentwickler führt einen Robustheitstest durch. Welches Szenario wird hierbei hauptsächlich berücksichtigt?
Ein Softwareentwickler führt einen Robustheitstest durch. Welches Szenario wird hierbei hauptsächlich berücksichtigt?
Ein Unternehmen plant, eine neue Software in seine bestehende IT-Infrastruktur zu integrieren und führt einen Kompatibilitätstest durch. Welcher Aspekt steht hierbei im Vordergrund?
Ein Unternehmen plant, eine neue Software in seine bestehende IT-Infrastruktur zu integrieren und führt einen Kompatibilitätstest durch. Welcher Aspekt steht hierbei im Vordergrund?
Welche Aussage beschreibt am besten den Zweck von Testebenen im Softwaretestprozess?
Welche Aussage beschreibt am besten den Zweck von Testebenen im Softwaretestprozess?
Bei einem Konfigurationstest wird die Flexibilität eines Systems in unterschiedlichen Umgebungen geprüft. Welche Umgebungsvariablen sind typischerweise von Bedeutung?
Bei einem Konfigurationstest wird die Flexibilität eines Systems in unterschiedlichen Umgebungen geprüft. Welche Umgebungsvariablen sind typischerweise von Bedeutung?
Ein Usability-Test wird durchgeführt, um die Benutzerfreundlichkeit eines Systems zu bewerten. Welches Kriterium ist entscheidend, um festzustellen, ob ein System benutzerfreundlich ist?
Ein Usability-Test wird durchgeführt, um die Benutzerfreundlichkeit eines Systems zu bewerten. Welches Kriterium ist entscheidend, um festzustellen, ob ein System benutzerfreundlich ist?
Was ist das Hauptziel von Unit-Tests (Komponententests/Modul-Tests)?
Was ist das Hauptziel von Unit-Tests (Komponententests/Modul-Tests)?
Dokumentationstests sind ein wichtiger Bestandteil der Qualitätssicherung. Welche Arten von Dokumentationen werden hierbei typischerweise geprüft?
Dokumentationstests sind ein wichtiger Bestandteil der Qualitätssicherung. Welche Arten von Dokumentationen werden hierbei typischerweise geprüft?
Welche der folgenden Aussagen beschreibt NICHT korrekt die Vorteile von Unit-Tests?
Welche der folgenden Aussagen beschreibt NICHT korrekt die Vorteile von Unit-Tests?
Ein Volumentest wird durchgeführt, um das Verhalten eines Systems bei der Verarbeitung großer Datenmengen zu untersuchen. Welche potenzielle Auswirkung großer Datenmengen auf das System wird hierbei besonders berücksichtigt?
Ein Volumentest wird durchgeführt, um das Verhalten eines Systems bei der Verarbeitung großer Datenmengen zu untersuchen. Welche potenzielle Auswirkung großer Datenmengen auf das System wird hierbei besonders berücksichtigt?
In welcher Beziehung stehen Unit-Tests zu anderen Testebenen im Softwaretestprozess?
In welcher Beziehung stehen Unit-Tests zu anderen Testebenen im Softwaretestprozess?
Was ist das Arrange-Act-Assert (AAA) Muster im Kontext von Unit-Tests?
Was ist das Arrange-Act-Assert (AAA) Muster im Kontext von Unit-Tests?
Welche Aufgabe hat die "Arrange"-Phase im Arrange-Act-Assert (AAA) Muster?
Welche Aufgabe hat die "Arrange"-Phase im Arrange-Act-Assert (AAA) Muster?
Was ist der Zweck der "Assert"-Phase im Arrange-Act-Assert (AAA) Muster?
Was ist der Zweck der "Assert"-Phase im Arrange-Act-Assert (AAA) Muster?
Warum ist das Arrange-Act-Assert (AAA) Muster für Unit-Tests wichtig?
Warum ist das Arrange-Act-Assert (AAA) Muster für Unit-Tests wichtig?
Welchen Hauptvorteil bieten Reviews, Inspektionen und Walkthroughs im Softwareentwicklungsprozess?
Welchen Hauptvorteil bieten Reviews, Inspektionen und Walkthroughs im Softwareentwicklungsprozess?
Was unterscheidet eine Inspektion von einem Walkthrough im Kontext der Softwarequalitätssicherung?
Was unterscheidet eine Inspektion von einem Walkthrough im Kontext der Softwarequalitätssicherung?
In welcher Phase des Softwareentwicklungszyklus sind statische Analysen wie Reviews, Inspektionen und Walkthroughs am effektivsten?
In welcher Phase des Softwareentwicklungszyklus sind statische Analysen wie Reviews, Inspektionen und Walkthroughs am effektivsten?
Welche Aussage beschreibt am besten das Ziel eines Walkthroughs?
Welche Aussage beschreibt am besten das Ziel eines Walkthroughs?
Warum sind sowohl statische (Reviews, Inspektionen, Walkthroughs) als auch dynamische Softwaretests wichtig?
Warum sind sowohl statische (Reviews, Inspektionen, Walkthroughs) als auch dynamische Softwaretests wichtig?
Welche der folgenden Tätigkeiten ist typischerweise KEIN Bestandteil einer formalen Software-Inspektion?
Welche der folgenden Tätigkeiten ist typischerweise KEIN Bestandteil einer formalen Software-Inspektion?
Was ist das Hauptziel der dynamischen Softwaretests?
Was ist das Hauptziel der dynamischen Softwaretests?
Welche der folgenden Aussagen beschreibt am besten, wie statische und dynamische Testmethoden sich ergänzen?
Welche der folgenden Aussagen beschreibt am besten, wie statische und dynamische Testmethoden sich ergänzen?
Welche Aussage beschreibt am besten die Funktion von Fixtures in pytest im Kontext von Integrationstests?
Welche Aussage beschreibt am besten die Funktion von Fixtures in pytest im Kontext von Integrationstests?
Wie tragen Marker in pytest zur Flexibilität bei Integrationstests bei?
Wie tragen Marker in pytest zur Flexibilität bei Integrationstests bei?
Warum ist die Möglichkeit, Tests in einer bestimmten Reihenfolge auszuführen, besonders wichtig für Integrationstests?
Warum ist die Möglichkeit, Tests in einer bestimmten Reihenfolge auszuführen, besonders wichtig für Integrationstests?
Welchen Vorteil bietet die Verwendung von unittest oder pytest sowohl für Unit- als auch für Integrationstests?
Welchen Vorteil bietet die Verwendung von unittest oder pytest sowohl für Unit- als auch für Integrationstests?
In welcher Phase des Softwaretestprozesses werden Systemtests typischerweise durchgeführt?
In welcher Phase des Softwaretestprozesses werden Systemtests typischerweise durchgeführt?
Was ist das Hauptziel von Systemtests?
Was ist das Hauptziel von Systemtests?
Welche Aspekte werden bei Systemtests typischerweise bewertet?
Welche Aspekte werden bei Systemtests typischerweise bewertet?
Warum ist es wichtig, dass die Umgebung, in der Systemtests durchgeführt werden, so nah wie möglich an der realen Einsatzumgebung der Endbenutzer ist?
Warum ist es wichtig, dass die Umgebung, in der Systemtests durchgeführt werden, so nah wie möglich an der realen Einsatzumgebung der Endbenutzer ist?
Flashcards
Analytische Qualitätsmaßnahmen
Analytische Qualitätsmaßnahmen
Systematische Bewertung und Verbesserung der Produktqualität.
Black-Box-Test
Black-Box-Test
Ein Softwaretest, bei dem die interne Struktur und der Code der Software nicht berücksichtigt werden.
White-Box-Test
White-Box-Test
Ein Softwaretest, bei dem die interne Struktur und der Code der Software bekannt sind und zur Testgestaltung verwendet werden.
Kontinuierliches Testen
Kontinuierliches Testen
Signup and view all the flashcards
Unit-Tests
Unit-Tests
Signup and view all the flashcards
Ziel des kontinuierlichen Testens
Ziel des kontinuierlichen Testens
Signup and view all the flashcards
Testen im Wasserfallmodell
Testen im Wasserfallmodell
Signup and view all the flashcards
Nutzen des kontinuierlichen Testens
Nutzen des kontinuierlichen Testens
Signup and view all the flashcards
Volumentest
Volumentest
Signup and view all the flashcards
Stresstest
Stresstest
Signup and view all the flashcards
Security-Test
Security-Test
Signup and view all the flashcards
Zuverlässigkeitstest
Zuverlässigkeitstest
Signup and view all the flashcards
Robustheitstest
Robustheitstest
Signup and view all the flashcards
Kompatibilitätstest
Kompatibilitätstest
Signup and view all the flashcards
Konfigurationstest
Konfigurationstest
Signup and view all the flashcards
Usability-Test
Usability-Test
Signup and view all the flashcards
Was ist ein Review?
Was ist ein Review?
Signup and view all the flashcards
Was ist eine Inspektion?
Was ist eine Inspektion?
Signup and view all the flashcards
Was ist ein Walkthrough?
Was ist ein Walkthrough?
Signup and view all the flashcards
Ziel von Reviews, Inspektionen und Walkthroughs?
Ziel von Reviews, Inspektionen und Walkthroughs?
Signup and view all the flashcards
Wie ergänzen statische Methoden dynamische Testmethoden?
Wie ergänzen statische Methoden dynamische Testmethoden?
Signup and view all the flashcards
Was sind dynamische Softwaretests?
Was sind dynamische Softwaretests?
Signup and view all the flashcards
Was ist der Wert von dynamischen Softwaretests?
Was ist der Wert von dynamischen Softwaretests?
Signup and view all the flashcards
Wie tragen statische Methoden zur Softwarequalität bei?
Wie tragen statische Methoden zur Softwarequalität bei?
Signup and view all the flashcards
Testebenen
Testebenen
Signup and view all the flashcards
Ziel von Testebenen
Ziel von Testebenen
Signup and view all the flashcards
Ziel von Unit-Tests
Ziel von Unit-Tests
Signup and view all the flashcards
AAA-Muster
AAA-Muster
Signup and view all the flashcards
Arrange (AAA)
Arrange (AAA)
Signup and view all the flashcards
Act (AAA)
Act (AAA)
Signup and view all the flashcards
Assert (AAA)
Assert (AAA)
Signup and view all the flashcards
Act-Schritt im Unit-Test
Act-Schritt im Unit-Test
Signup and view all the flashcards
Assert-Schritt im Unit-Test
Assert-Schritt im Unit-Test
Signup and view all the flashcards
Isolation im Unit-Test
Isolation im Unit-Test
Signup and view all the flashcards
Mock-Objekte/Stubs
Mock-Objekte/Stubs
Signup and view all the flashcards
Automatisierung im Unit-Test
Automatisierung im Unit-Test
Signup and view all the flashcards
Continuous Integration (CI)
Continuous Integration (CI)
Signup and view all the flashcards
Schnelle Ausführung von Unit-Tests
Schnelle Ausführung von Unit-Tests
Signup and view all the flashcards
Unit-Tests als Dokumentation
Unit-Tests als Dokumentation
Signup and view all the flashcards
Pytest
Pytest
Signup and view all the flashcards
Fixtures (pytest)
Fixtures (pytest)
Signup and view all the flashcards
Marker (pytest)
Marker (pytest)
Signup and view all the flashcards
Integrationstests
Integrationstests
Signup and view all the flashcards
Testreihenfolge
Testreihenfolge
Signup and view all the flashcards
Wiederverwendung im Testen
Wiederverwendung im Testen
Signup and view all the flashcards
Systemtests
Systemtests
Signup and view all the flashcards
Systemtest-Umgebung
Systemtest-Umgebung
Signup and view all the flashcards
Study Notes
Systematisches Testen
- Tests sind heutzutage in jede Phase des Entwicklungsprozesses integriert, von der Anforderungsanalyse bis zur Wartung.
- Kontinuierliche Tests helfen, Fehler frühzeitig zu erkennen und zu beheben, was die Qualität verbessert und die Entwicklungszeit verkürzt.
- Es existiert eine Vielzahl unterschiedlicher Testverfahren.
- Ziel qualitativ hochwertiger Software ist die systematische Bewertung und Verbesserung der Produktqualität durch analytische Qualitätsmaßnahmen.
- In traditionellen Entwicklungsmodellen fand die Testphase typischerweise am Ende des Prozesses statt.
- Die sequenzielle Herangehensweise umfasste strikt getrennte Phasen für Konzeption, Gestaltung, Implementierung und Verifizierung.
- Erst nach Abschluss aller Entwicklungsschritte erfolgte die Bewertung der Qualität und Funktionalität des fertigen Produkts.
- Heutzutage sind Tests ein integraler Bestandteil aller Phasen des Entwicklungszyklus.
- Die kontinuierliche Integration von Testverfahren ermöglicht es, Fehler und Probleme frühzeitig zu erkennen und zu beheben.
- Die frühe Fehlererkennung verbessert die Softwarequalität erheblich und verkürzt die Entwicklungszeit.
- Moderne, agile und iterative Entwicklungsansätze integrieren kontinuierliche Rückmeldung und Anpassung.
- Die Einbettung des Testens in jede Phase steigert die Qualität der Endprodukte und fördert die Zusammenarbeit zwischen Entwicklern und Testern, was zu einer effizienteren Entwicklung führt.
Wichtige Testarten
- Der Artikel gibt eine Einteilung von was alles getestet werden kann bei einem Softwaretest.
Funktionale Tests
- Funktionale Tests sind das Rückgrat der Teststrategien in der Softwareentwicklung und stellen sicher, dass Softwarefunktionen die spezifizierten Anforderungen erfüllen.
- Bestandteil sind die Überprüfung von Benutzeroberflächen, APIs, Datenbanken, Sicherheitsfunktionen und Funktionalität unter verschiedenen Betriebsbedingungen.
- Funktionale Tests werden typischerweise ohne Kenntnis des internen Codes oder der Struktur durchgeführt, was Black-Box-Tests genutzt
- Der Tester konzentriert sich ausschließlich darauf, ob erwartete Ergebnisse geliefert werden, ohne die interne Struktur zu kennen.
Nicht-funktionale Tests
- Nicht-funktionale Tests konzentrieren sich auf Aspekte wie Effizienz und Benutzerfreundlichkeit.
- Leistungstests bewerten die Systemleistungs unter Lastbedingungen.
- Volumentests überprüfen die Handhabung großer Datenmengen.
- Stresstests testen die Systemstabilität unter Extrembedingungen.
- Security-Tests prüfen die Widerstandsfähigkeit gegen unerlaubte Zugriffe.
- Usability-Tests beschäftigen sich mit der Benutzererfahrung.
- Wesentlich ist zu gewährleisten, dass die Software nicht nur korrekte Ergebnisse liefert, sondern auch zuverlässig, sicher und benutzerfreundlich ist.
Strukturbezogene Tests oder White-Box-Tests
- White-Box-Tests bieten einen tiefen Einblick in den Aufbau der Software.
- Im Gegensatz zu Black-Box-Tests setzen White-Box-Tests Wissen über die interne Logik voraus.
- Entwickler verwenden diese Tests, um spezifische Teile des Codes zu überprüfen, wobei der Schwerpunkt auf der Codeabdeckung liegt.
- Diese Tests sind besonders nützlich, um sicherzustellen, dass alle möglichen Wege durch den Code korrekt funktionieren.
Änderungsbezogene Tests
- Auch bekannt als Regressionstests, sind von Bedeutung wenn Software aktualisiert oder geändert wird.
- Hauptziel sicherzustellen, dass neue Codeänderungen keine unbeabsichtigten Nebeneffekte in bereits geprüften Teilen des Systems verursachen.
- Sollen die beständige Funktionalität der Software über die Zeit hinweg sicherstellen.
- Aufgrund der wiederholten Natur bietet sich Automatisierung an, was eine kontinuierliche Qualitätssicherung während der Entwicklung und Wartung gewährleistet.
- Testautomatisierung hilft kosten zu senken und beschleunigt die Release-Zyklen.
Testmethoden
- Es gibt zwei grundsätzliche Zugänge: statische Tests und dynamische Tests.
Statische Tests
- Formen der Analyse, die ohne Ausführung des Codes stattfinden.
- Konzentrieren sich darauf, den Quellcode, seine Struktur und die begleitende Dokumentation zu untersuchen, um potenzielle Fehlerquellen zu identifizieren.
- Können manuell oder automatisiert erfolgen und stellen oft einen ersten Schritt in der Qualitätssicherung dar.
Dynamische Tests
- Betreffen das aktive Ausführen des Programms in einer Laufzeitumgebung.
- Ziel ist es, das tatsächliche Verhalten der Software unter verschiedenen Bedingungen zu beobachten und zu analysieren.
- Unverzichtbar, um zu überprüfen, ob die Software in der realen Anwendung funktioniert.
- Statische und dynamische Softwaretests bilden zusammen ein Rahmenwerk für analytische Qualitätsmaßnahmen.
- Sie erlauben Entwicklerteams, Schwachstellen frühzeitig zu erkennen und korrigierende Maßnahmen zu ergreifen.
Statische Softwaretests
- Eine Form statischer Softwaretests war vorher schon bekannt durch die diskutierten Softwaremetriken.
- Zu den statischen Softwaretests können Reviews und Inspektionen gezählt werden.
Reviews und Inspektionen
- Reviews (Stellungnahmen) sind systematische Untersuchungen von Software-Dokumenten.
- Ziel ist, Fehler zu finden, Verständlichkeit zu gewährleisten und die Einhaltung der festgelegten Standards zu überprüfen.
- Bei einem Review wird das Dokument in der Regel von Kollegen gelesen, die dann Feedback, Kommentare und Bedenken äußern.
- Inspektionen sind formalere Überprüfungsverfahren, die strengen Richtlinien folgen und oft Teil eines Qualitätskontrollprozesses sind.
- Während einer Inspektion überprüft ein Team die Software-Dokumente.
- Alle drei Methoden tragen dazu bei, die Softwarequalität zu verbessern, indem sie eine frühzeitige Fehlererkennung ermöglichen und die Einhaltung von Projektstandards sicherstellen.
- Sie ergänzen dynamische Testmethoden, indem sie mögliche Probleme identifizieren, bevor Zeit und Ressourcen für weitergehende Tests aufgewendet werden.
Dynamische Softwaretests
- Dynamische Softwaretests beinhalten das Ausführen des Programms oder Codes in einer Laufzeitumgebung.
- Man will dabei Fehler, Schwachstellen oder Abweichungen von den Anforderungen zu identifizieren.
- Sie ermöglichen es, das tatsächliche Verhalten der Software unter verschiedenen Bedingungen zu beobachten und zu analysieren.
- Bieten Einblicke in Leistung, Stabilität und Zuverlässigkeit, helfen nicht nur Code-Fehler, sondern auch Probleme mit der Softwareintegration, Benutzerinteraktion und im Systembetrieb zu entdecken und zu beheben.
Testfälle
- Ein Testfall ist ein dokumentiertes Set von Bedingungen und Schritten.
- Sie werden ausgeführt, um zu testen, ob eine Softwarefunktion richtig arbeitet oder ein bestimmtes Nutzerverhalten adäquat unterstützt wird, um systematisch Fehler und Probleme in der Software zu finden, bevor diese den Endbenutzer erreicht.
- Die Anzahl der benötigten Testfälle variiert und hängt vom Umfang und der Komplexität der Anwendung, Risiken, Arten der Tests und dem Detailgrad der Testabdeckung ab.
- Grundsätzlich sollten ausreichend Testfälle existieren, um alle Anforderungen abzudecken und alle Teile des Systems ausreichend zu prüfen.
- Es ist in der Praxis jedoch fast unmöglich, eine Software komplett austesten, das heißt, alle möglichen Zustände und Interaktionen innerhalb einer Anwendung zu überprüfen.
- Die Komplexität moderner Software, die kombinatorische Explosion, zeitliche Ressourcen und dynamische Umgebungen sprechen dagegen.
- In der Softwareentwicklung strebt man eine risikobasierte Annäherung an, indem man sich auf die wichtigsten Anwendungsfälle konzentriert und die Bereiche mit dem höchsten Risiko priorisiert.
- Der Anteil der Testabdeckung, der als ausreichend angesehen wird, hängt von der Anwendung ab.
- Kombination aus manuellen und automatisierten Tests sichern eine breite und effiziente Testabdeckung zu gewährleisten
- Testfälle werden meist von Testerinnen entwickelt, die sich die Anwendungsfälle und Anforderungsdokumente genau ansehen.
- Die Dokumentation von Testfällen erfolgt oft in Testmanagement-Tools oder einfach mittels Tabellenkalkulationsprogrammen, die eine strukturierte Darstellung ermöglichen.
- Testfall-ID, eine Beschreibung, Testumgebung, Testdaten, Schritte, erwartetes Ergebnis, tatsächliches Ergebnis, Schlussfolgerung/Status sowie Bemerkungen sollten dokumentiert werden.
White-Box-Tests
- Schwerpunkt auf der Analyse und Überprüfung aller möglichen Pfade durch die interne Struktur des Testobjekts.
- Die Untersuchung konzentriert sich auf die interne Logik und Aufbau der Softwarekomponente und basiert auf Kenntnis der Programmlogik und des Quelltexts.
- Ziel der Testmethode die Zuverlässigkeit von Schleifen, Verzweigungen und anderen Strukturelementen des Programms zu überprüfen, indem man den Grad der Codeabdeckung misst.
- Point of Control (PoC) und Point of Observation (PoO) befinden direkt im Testobjekt.
- White Box ist der Zugang zum Quellcode um sicherzustellen, das jede Zeile des Codes im Rahmen der Tests mindestens einmal ausgeführt wird.
Black-Box-Tests
- Konzentriert man sich auf das Ergebnis der Testdurchführung.
- Die internen Mechanismen des untersuchten Systems werden nicht berücksichtigt.
- Ein Test gilt als erfolgreich, wenn das Ergebnis den Erwartungen entspricht, unabhängig von der internen Logik der getesteten Einheit.
- Black-Box-Tests werden bei extern bezogenen Komponenten oder Klassen angewandt, da der Quellcode oft nicht zugänglich ist.
- Um die Anzahl von Testfällen zu bestimmen gibt es zwei Prinzipien, die Minimalforderung und das Effizienzprinzip.
- Mittels der Grenzwertanalyse kann man Testfälle ableiten und verdächtige oder fehleranfällige Testfälle finden.
- DieGrenzwertanalyse ist Teil eines breiteren Spektrums an heuristischen Methoden mit mehreren Ansätzen wie der Äquivalenzklassenbildung oder des Zustandsbasierten Testens.
Testebenen
- Testebenen sind Stadien im Software-Testprozess, bei denen unterschiedliche Aspekte eines Produkts überprüft werden und helfen, den Testaufwand zu strukturieren und sicherzustellen.
Unit Tests
- Auch als Komponententests oder Modul-Tests bezeichnet, sind eine Methode des Softwaretestens, bei der die kleinsten testbaren Teile isoliert geprüft werden und stellen die unterste Testebene dar.
- Ziel ist, sicherzustellen, dass jede isolierte Komponente korrekt funktioniert.
- Kernpunkte zum Unit Tests sind das AAA - Muster: Arrange, Act, Assert
- Sowie die Isolation, Automatisierung, schnelle Ausführung, Dokumentation, frühe Fehlerkennung, Selbstvalidierung und ob der Test Rechtzeitig stattfindet
- Zur Unterstützung gibt es verschiedene Frameworks wie beispielweise das UnitTest-Framework in Python.
Integrationstests
- Integrationstests spielen eine wesentliche Rolle im Softwareentwicklungsprozess und führen so verschiedene Module oder Komponenten zusammen und setzen dort an, wo Unit Tests enden.
- Der Fokus steht wo die Schnittstellen zwischen den Modulen zusammenarbeiten.
- Konsistenzen und Kommunikationsfehler zwischen integrierten Einheiten sollen identifiziert werden, die während der Unit-Testphase möglicherweise nicht aufgefallen sind.
- Es wird eine Testumgebung eingerichtet, wobei die notwendige Abhängigkeiten konfiguriert werden und danach spezifische Testfälle ausgeführt werden.
- Für Integrationstest können verschiedene Tools wie unittest und pytest verwendet werden.
Systemtests
- Systemtests werden typischerweise nach den Unit- und Integrationstests durchgeführt und ist der letzte Schritt vor den Abnahme- oder Nutzertests und überprüft, ob die Software als Ganzes funktioniert und ob sie bereit für die Veröffentlichung ist.
- Es wird überprüft ob alle Funktionalitäten gegeben sind, die Systemleistung stimmt und die Kompatibilität stimmt.
Abnahme- und Nutzertests
- Abnahme- und Nutzertests sind Testphasen, bei denen die fertiggestellte Software von der Zielgruppe evaluiert wird und sind dadurch entscheidend, da sie Feedback direkt von denjenigen einholen, die die Software im Alltag nutzen werden.
- Es gibt drei geläufige Arten von Abnahmetests vor: Beta-Tests, Usability-Tests und A/B-Tests.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.