Created by EinBlonder Junge
almost 9 years ago
|
||
Question | Answer |
Testen heißt... | ... die Gewissheit gewinnen, dass eine Software tut, was sie tun soll [Myers 2004] oder: ... eine Software mit der Absicht auszuführen, um Fehler zu finden [Myers 2004] |
Testen heißt kein... | ... Monkey Testing = zufällig gewählte zahlreiche Eingabewerte probieren und beliebige Buttons drücken [ISTQB] |
Was ist das Ergebnis von Testen? | getestete Softwarekomponente |
Welche Probleme können beim Testen auftreten? | - Die Abwesenheit von Fehlern kann nicht bewiesen werden, weil es theoretisch immer noch Fehler geben kann, die zufällig nicht entdeckt worden sind - je später ein Fehler entdeckt wird, desto teurer ist die Behandlung |
Wie kann man die aufwendige Behandlung spät entdeckter Fehler vorbeugen? | komplexe/kritische Funktionen frühzeitig entwicklen |
Was sind die 7 Grundsätze im Testen? | 1. Testen zeigt die Anwesenheit von Fehlern 2. Vollständiges Testen ist nicht möglich 3. Mit dem Testen frühzeitig beginnen 4. Häufung von Fehlern beachten 5. Wiederholungen haben keine Wirksamkeit 6. Testen ist abhängig vom Umfeld 7. Trugschluss: keine Fehler bedeutet ein brauchbares System (ist nämlich nicht unbedingt so, s. auch "Probleme beim Testen", Folie 3) |
Welche sind die 4 Stufen des Testens (Teststufen)? | 1. Das A-Modell 2. Testfälle 3. Test der Komponenten 4. Test der Integration |
A-Modell: Welche Arbeitsschritte stehen im Laufe der Softwareentwicklung im Vordergrund (bei voranschreitender Zeit)? | 1. Requirement Engineering 2. Rquirement Review 3. Gesamtsystemtest, Akzeptanztest 4. Verifikation, Validierung |
A-Modell: Welche Schritte lassen sich unter "Konrektisierung der Systemtechnik" einordnen (Reihenfolge läuft gegen konkreter)? | 1. Machbarkeit, Projektwille 2. Umfeld und Grenzen der Funktionalität 3. Architekturdesign 4. Technisches Design 5. Codierung und Komponententest |
A-Modell: Welche Schritte liegen zwischen der Konkretisierung der Systemtechnik und der des Systemeinsatzes? | - Prüfung auf Zusatzfunktionen - Prüfung durch Projektpromotoren |
A-Modell Welche Schritte lassen sich unter "Konrektisierung des Systemeinsatzes einordnen (Reihenfolge geht gegen konkreter)? | 1. Codierung und Komponententest 2. Komponentenintegrationstest 3. Systemintegrationstest 4. Strategische Prüfung 5. Visions- und Zielprüfung |
Definition eines Testfalls bzw. test case? | ... ist eine Menge von Eingabewerten, Vor-Zuständen, erwarteten Ergebnissen und Nach-Zuständen, entwickelt für die prüfung einer Aufgabe wie die Ausführung eines Programmzweigs oder die Übereinstimmug mit einer Anforderung. |
Welches Ziel wird mit Testfällen verfolgt? | Ziel ist die möglichst hohe Abdeckung des Systems durch die Testfälle. |
Was ist ein "Stub" (deutsch: Stutzen)? | Ein Programmcode, der anstelle eines noch nicht vorhandenen Programmteils steht (wurde z.B. noch nicht entwickelt). |
Was ist ein Simulator? | Eine Anwendung etc., die das automatisierte Testen einer Software erlaubt. Tests sollen ja immer schön isoliert erfolgen, also muss man andere Komponenten als die gerade getestete simulieren. Das macht der Simulator. |
Was ist ein Testtreiber? | Bedient Schnittstellen (z.B. Benutzerschnittstelle sprich Textfelder, Knöpfe etc.) während des Testens (kann aber auch technische Schnittstelle sein) |
Welche Platzhalter werden bei Komponententests verwendet? | Stubs, Simulatoren und Testreiber |
Was ist das Ziel eines Komponententests? | Das Prüfen von seperat testbaren Komponenten (Module, Klassen, Objekte, ...) auf vorhandene Fehler |
Integrationstests: Welche Arten von Integration gibt es? | Big-Bang-Integration, inkrementelle Integration |
Was macht man bei Integrationstests? | Es werden zunehmend mehr und mehr Komponenten gemeinsam getestet, bis man das gesamte Programm testen kann (oder gleich alles testen, super effizient!!!einself #TestisolationLevelHurensohn) |
Was macht man bei der Big-Bang-Integration? | Gleichzeitig alle Komponenten integrieren |
Was macht man bei einer inkrementellen Integration? | Druch den Einsatz von Stubs und Testtreibern werden nach und nach die Komponenten zum System integriert |
Welche Arten von inkrementeller Integration gibt es? | vertikale, horizontale |
Was macht man bei der horizontalen Integration? | Es werden schichten weise die Komponenten Bottom-Up oder Top-down zum System integriert |
Was macht man bei der vertikalen Integration? | Es werden kooperierende Komponenten funktionsorientiert, alle zusammen integriert, sodass keine Komponenten zum Testen simuliert werden müssen. |
Welche Arten von Test-Werkzeugen gibt es? | - Unit-Test-Frameworks (z.B. JU... GUnit) - Automatieirte GUI-Tests - Bugtracker |
Was ist ein Unit-Test-Framework? | Anwendung, die Tests parallel in der Entwicklungsumgebung durchführen kann - Verifikationsmethoden (assertions) definieren den exakten Bereich der Testfälle |
Was machen automatisierte GUI-Tests? | Simulieren die Bedienung über die Bedienoberfläche des Systems |
Welche Testarten gibt es? | - Box Test - Testen von Strukturen - Testen von Funktionen - Testen nichtfunktionaler und systemischer Anforderungen |
Welche Arten von Box-Tests gibt es? | Backbox-Test, Whitebox-Test |
Was ist eine Blackbox-Test? | Test, der ohne Kenntnisse über die innere Funktionsweise des zu testenden Systems bzw. der zu testenden Komponente entiwckelt wird. Wichtig ist nur, dass das richtige rauskommt. (insgesamt recht simpel in der Durchführung und gut, um mehere kooperierende Komponenten zu testen) |
Was ist eine Whitebox-Test? | Komplexere Durchführung als Blackbox-Test, da Tests so enwickelt werden, dass man Fehler in Teilkomponenten aufdeckt und lokalisiert (Kenntnis über innere Funktionweise erforderlich) |
Mit welchen Testverfahren kann man Strukturen testen? | - Anweisungsüberdeckungstest - Zweigüberdeckungstest - Einfacher Bedingungsüberdeckungstest - Mehrfach-Bedingungsüberdeckungstest - Pfad-Überdeckungstest |
Was macht ein Anweisungsüberdeckungstest? | Alle Knoten eines Kontrollflussgraphen min. mit einem Testfall abdecken |
Was macht ein Zweigüberdeckungstest? | Min. jede Kante des Kontrollflussgraphen einmal durchlaufen, damit auch alle Kntoten (subsumiert Anweisungsüberdeckungstest) |
Was macht ein einfacher Bedingsungsüberdeckungstest? | Auswertung jeder einzelnen atomaren Entscheidung darauf prüfen, dass sie einmal wahr, und einmal falsch annehmen kann (gibt es Abfragen im Programm, die immer true oder immer false sind?) |
Was macht ein Mehfach-Bedingungsüberdeckungstest? | Auswertung jeder einzelnenen atomaren Teilnentscheidung und jeder Gesamtentscheidung, außerdem alle zusammengesetzte Teilentscheidunguen gegen true und false prüfen (subsumiert die einfache Variante) |
Was macht ein Pfad-Überdeckungstest? | Es müssen alle möglichen Pfade des Testobjekts d.h. alle möglichen Abläufe in min. einem Testall durchlaufen werden. (oft unendlich viele Pfade, also eig. unmöglich) |
Wie gestaltet sich ein Testprozess? | - Testen wird als eigenständiger, die Entwicklung begleitender Prozess gesehen - Ein Testprozess besteht aus zyklischen Aktivitäten |
Welche Testtypen gibt es? | - Systemtest: das Verhalten des Gesamtsystems testen - Akzeptanztest: vom Auftraggeber wird getestet - Regressionstest: Test auf unerwünschte Nebenwirkungen durch Änderungen - Smoke-Test: Sammlung von Testfällen, die nur die grundlegende Funktionalität einer Komponente/des Systems prüft (Details unwichtig, hauptsache, es läuft erstmal) - Alphatest: Simuliert oder echte Benutzung von potentiellen Benutzern/Kunden bzw. unabhängiger Gruppe von Testern - Betatest: quasi externer Akzeptanztest, Benutzung unter realen bedingungen von potentiellen oder existierenden Benutzern/Kunden - Feldtest: wie Beta |
Was wird bei der Äquivalenzklassenanalyse gemacht? | - man versucht, Eingabedaten, die ein gleiches funktionales Verhalten verursachen, zu Gruppen zusammenzufassen d.h. es werden Spezifikationen abgebildet auf Äquivalenzklassen - Es werden Werte von Klassen gewählt, bei denen angenommen wird, dass Fehler auftreten können - Beim Testen steht ein Wert aus einer Äquivalenzklasse representativ für alle Werte aus derselben Klasse - Grenzwertanalyse: Testfälle an den Grenzen des Äquivalenzklassen auswählen z.B. Spezifikation: eine Variable x muss zwischen 1 & 99 liegen Eingabebereich: 1 <= x <= 99 gültige Äquivalenzklasse: 1= < x <= 99 1. Ungültige Äquivalenzklasse: 1 < x 2. Ungültige Äquivalenzklasse: x > 99 Beim Testen ist es egal, ob ich 1, 50, 6.4, oder 99 einsetze; ich erhalte ein gültiges Ergebnis |
Welche Vorteile hat die Bildung von Äquivalenzklassen? | - Die Anzahl der Testfälle wird reduziert - eine große Menge an möglichen Testfällen wird abgedeckt |
Wie müssen die Äquivalenzklassen für eine Eingabebedingung, die einen Wertebereich beschreibt, gebildet werden? | 1 gültige, 2 ungültige: Eingabebereich: 1 <= x <= 99 gültige Äquivalenzklasse: 1= < x <= 99 1. Ungültige Äquivalenzklasse: 1 < x 2. Ungültige Äquivalenzklasse: x > 99 |
Wie müssen die Äquivalenzklassen für eine Eingabebedingung, die eine Menge von unterschiedlich zu behandelnden Werten beschreibt, gebildet werden? | 1 gültige, 1 ungültige (alle anderen) Eingabebereich: Klavier, Cembalo, Orgel gültige Äquivalenzklasse: Klavier, Cembalo, Orgel Ungültige Äquivalenzklasse: Violine |
Wie müssen die Äquivalenzklassen für eine Eingabebedingung, die eine zwingende Situation festlegt, gebildet werden? | 1 gültige, 1 ungültige Eingabebereich: "Erstes Zeichen muss Ziffer sein" gültige Äquivalenzklasse: "Erstes Zeichen ist eine Ziffer" Ungültige Äquivalenzklasse: "Erstes Zeichen ist keine Ziffer" |
Was wird bei der Grenzwertanalyse (Spezialfall der Äquivalenzklassenanalyse) gemacht? | Es wird mit Werten aus den Grenzbereichen von Äquivalenzklassen getestet (= liegen direkt über oder unter dem Grenzwert) z.B. gültige Äquivalenzklasse: 1= < x <= 99 1. Ungültige Äquivalenzklasse: 1 < x 2. Ungültige Äquivalenzklasse: x > 99 Getestet wird hier am besten mit 0 und 1, so wie mit 99 und 100 |
Worin liegt die Grundidee der Klassifikationsbaum-Methode | - eine Menge möglicher Eingaben für Testobjekt (z.B. Funktion) auf verschiedene Weisen unter jeweils geeigneten Gesichtspunkten zerlegen (bis hier analog zur Äquivalenzklassenanalyse) - durch Kombination dieser Uerlegungen zu Testfällen kommen |
Wie erhält man die Gesichtspunkte für die Klassifikationsbaum-Methode? | Analyse der funktionalen Spezifikationen Ergebnis: testrelevante Askpekte, auch "Gesichtspunkte" Dienen der einfachen Unterscheidung der Eingaben |
Was geschieht mit der jeweiligen Menge aller möglichen Eingaben eines Gesichtspunktes bei dem Erstellen eines Klassikifikationsbaums? Was entsteht so? | Unter den Gesichtspunkten werden die Werte in Klassen eingeteilt (analog zu Äquivalenzklassenanalyse) Es entstandenen Zerlegungen sind Klassifikationen |
In welchen Schritten geht man bei der Erstellung des Klassifikationsbaums vor? | 1. Analyse der funktionalen Spezifikationen --> Gesichtspunkte + je Menge aller Eingabewerte 2. Zerlegung der Eingabewerte --> Gesichtspunkte + Klassifikationen Rekursion: Klassifikationen in weitere Klassen aufteilen, wenn möglich und sinnvoll --> lässt den Baum entstehen |
Wie bilden sich folgende Elemente eines Klassifikationsbaums auf Knoten, Wurzel & Blätter ab? - Eingabedatenraum - Klassen - Klassifikationen - Testfälle | Wurzel: Eingabedatenraum Knoten: Klassen & Klassifikationen Blätter: Klassen Klassifikationen werden von einem Rechteck umrahmt Testfälle: Tabelle unter dem Baum - Blätter sind Tabellenkopf - jede Zeile steht für einen Testfall - Alle Klassen in der jeweiligen Zeile markiert, deren Werte an einem Testfall beteiligt sind http://abload.de/image.php?img=unbenanntxykhr.png |
Wie werden bei der Klassifikationsbaum-Methode Testfälle erzeugt? | Durch die Kombinations von Klassen aus verschiedenen Klassifikationen, wobei aus jeder Klassifikation genau eine Klasse ausgewählt wird |
Was ist das Ziel des Anwenders bei der Klassifikationsbaumanalyse & Äquivalenzklassenanalyse? | Minimale Menge an Testfällen bei möglichst großer Abdeckung aller möglichen Testszenarien (die auch relevant & logisch vereinbar sind) |
Want to create your own Flashcards for free with GoConqr? Learn more.