Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
33 Cards in this Set
- Front
- Back
Definieren Sie kurz Software Testing
|
Software Testing is the execution of code using
combinations of input and state selected to reveal bugs oder The process of operating a system or component under specified conditions, observing the results, and making an evaluation of some aspect of the system or component |
|
Was ist Testen?
|
• Testen ist eine Maßnahme zur Qualitätssicherung von Software, mit dem Ziel möglichst fehlerfreie Software zu schreiben.
• Testen dient zum Aufzeigen von Fehlern in Software; es kann nicht die Korrektheit der Software zeigen. • Testen ist damit das geplante und strukturierte Ausführen von Programmcode, um Probleme zu entdecken |
|
Testen sollte Teil welches Prozesses sein?
|
Des Entwicklungsprozesses
|
|
Wann ist eine Software-Einheit korrekt?
|
• Die Korrektheitvon Software kann immer nur in Relation zu ihrer Spezifikation gesehen werden - eine Software-Einheit ist korrekt, wenn sie ihre Spezifikation erfüllt.
• Der formale Nachweis, dass eine Software-Einheit ihre Spezifikation erfüllt, ist sehr aufwendig und schwierig und für umfangreichere Programme auch heutzutage noch völlig impraktikabel. (Hinweis: Lehman SPE-Programmtypen-Definition) • Voraussetzung für einen formalen Nachweis der Korrektheit ist außerdem, dass die Spezifikation formal definiert ist. Dies ist nur sehr selten der Fall, meist sind Spezifikationen problembedingt nur informell formuliert. • Selbst wenn eine formale Spezifikation vorliegt: Wie kann nachgewiesen werden, dass die Spezifikation selbst korrekt ist? |
|
Was ist der Unterschied zwischen Fault und Failure?
|
Failure = Versagen, d. h. die Software tut nicht, was sie soll
Fault = Fehler, Ursache für das Versagen Aber nicht jeder Fehler, für zu einem Versagen der Anwendung |
|
Testen kann keine Korrektheit nachweisen, was aber schon?
|
Den Eindruck belegen, dass eine Software-Einheit ihre Aufgabe in angemessener Weise erfüllt ("das Vertrauen erhöhen")
|
|
Welche technischen Probleme können beim Testen entstehen?
|
• Testen ist schwierig (insbesondere bei grafischen Oberflächen)
• Testen braucht Zeit (und die ist in den meisten Projekten knapp) • Tests müssen gut vorbereitet sein (Testplan) • Tests müssen wiederholt werden (und damit wiederholbar sein) |
|
Welche psychologischen Probleme können beim Testen entstehen?
|
• Die Beteiligten neigen dazu, nur die Fälle zu testen, die sie wirklich in ihrer Implementierung abgedeckt haben
• Testen ist stark beeinflusst durch die Programmier-/Testerfahrung • häufig wird nur "positiv" getestet • Benutzer neigen dazu, ihre Standardprozesse zu testen. |
|
Wovon spricht man, wenn nur erwartete / gültige Eingabewerte getestet werden?
Welche gewünschten Auswirkungen sind damit verbunden? |
Von positivem Testen, welches das Vertrauen in die KORREKTHEIT der Software-Einheit erhöhen sollen
|
|
Wovon spricht man, wenn nur unerwartete/ ungültige Eingabewerte getestet werden?
Welche gewünschten Auswirkungen sind damit verbunden? |
Von negativem Testen, welches das Vertrauen in die Robustheit erhöhen soll.
|
|
Woraus besteht ihm Üblichen ein Testfall?
|
Ein Testfall besteht aus der Beschreibung der Eingaben und der erwarteten Ausgabedaten für bestimmte Eingabedaten
|
|
Von einem vollständigen Test spricht man, wenn...
|
ALLE gültigen Eingabewerte getestet wurden
|
|
Wie werden vollständige Tests auch genannt?
Und warum? |
Erschöpfende Tests.
Weil ein Test aller gültigen Eingabewerte sehr lange dauern kann. |
|
Was ist eine sogenannte Äquivalenzklasse?
|
• Da vollständige Tests impraktikabel sind, werden
verschiedene Eingabewertebereiche in Kategorien eingeteilt. • Die Werte eines solchen Wertebereichs werden dann als für den Test äquivalent angesehen und brauchen deshalb nicht einzeln getestet werden. Stattdessen reicht es, wenn wenige Vertreter einer solchen Äquivalenzklassegetestet werden |
|
Was sind in Bezug auf Äquivalenzklassen die sogenannten Grenzwerte?
|
Die Werte, die am Rand von Äquivalenzklassen liegen.
Bei den Äquivalenzklassen positive und negative int-Werte also z. B. Integer.Max_Value, Integer.Min_Value und 0 |
|
Wann spricht man von einem Modultest?
|
• Wenn die Einheiten eines Systems (Operationen, Klassen, Systemteile) für sich isoliert getestet werden, spricht man von einem Modultest(engl.: unit test). Modultests sind eher technisch motiviert und orientieren sich an den programmier-sprachlichen Einheiten eines Systems.
|
|
Wann spricht man von einem Integrationstest?
|
• Wenn die getesteten Einzelteile eines Systems in ihrem Zusammenspiel getestet werden, spricht man von einem Integrationstest(engl.: functional test). Integrationstests werden aus Sicht eines Benutzers des Systems formuliert -und sind sehr anwendungsbezogen
|
|
Unterteilen sie grob die Methoden zum Modultest
|
Black-Box-Test
White-Box-Test Schreibtischtest |
|
Definieren Sie Black-Box-Test
|
• Ein Black-Box-Testbetrachtet nur das ein Ausgabeverhalten einer Software-Einheit und nicht deren interne Implementierung (diese wird als ein "schwarzer Kasten" angesehen). Die Testfälle können also nur auf Basis der Spezifikation bzw. der Schnittstellendefinition der Software-Einheit formuliert werden
• Ein Black-Box-Test sollte die zu testende Schnittstelle vollständig abdecken. Unter Zuhilfenahme von Grenzwerten und Äquivalenzklassen sollte etwa bei einer Klasse jede Operation der Schnittstelle mindestens einmal aufgerufen werden • Black-Box-Tests sollten sowohl positiv als auch negativ durchgeführt werden |
|
Definieren Sie White-Box-Test
|
• Bei einem White-Box-Test wird eine Software-Einheit mit Blick auf ihre Implementierung getestet
• Es werden möglichst alle Kontrollpfade des Programmtextes getestet, d.h., bei jedem if-else Statement sollte sowohl der if- als auch der else-Pfad getestet werden, bei jedem switch-Statement jeder Case Label angesprungen werden, jede private Operation aufgerufen werden etc. • Ein White-Box-Test ist somit stärker technisch orientiert als ein Black-Box-Test. Er testet nicht das, was eine Software-Einheit machen soll, sondern das, was die Software-Einheit tatsächlich tut. • White-Box-Tests werden häufig nur als Ergänzung von Black-Box-Tests durchgeführt |
|
Definieren Sie Schreibtischtest
|
• Beim Schreibtischtestwird der Programmtext auf dem Papier durchgegangen und der Programm-ablauf nachvollzogen. Da der Implementierer oft Fehler in seinem eigenen Programm übersieht, sollte zu solch einem walk-through eine zweite Person hinzugezogen werden, der der Programmablauf erklärt wird
• Eine Variante des Schreibtischtest ist ein Code-Review. Dieses wird vom Implementierer vor-bereitet, indem die relevanten Quelltextteile für alle Teilnehmer (Größenordnung etwa 5 bis 10) des Reviews ausgedruckt werden. Nachdem alle Teilnehmer den Programmtext gelesen haben, wird das Design und mögliche Alternativen diskutiert. • Code-Reviews dienen damit eher der Verbesserung (Laufzeit, Speicherplatz) des Quelltextes als dem Finden von Fehlern |
|
Nennen Sie unterschiedliche Testarten, deren Synonyme (sofern vorhanden) und wer die Tests erstellt und ausführt
|
|
|
Neben den Tests ist was eine wesentliche Aufgabe im Software-Lifecycle?
|
Ein kontinuierliches Qualitätsmanagement
|
|
Definieren Sie (Software-)Qualität
|
|
|
Was sind wichtige Voraussetzungen für die Prozessqualität des Software Engineerings?
|
• Modelle und Kriterien zum Entwicklungsprozess;
• Projektorganisation • Projektmanagement |
|
Was ist eine Grundvoraussetzung für Produktqualität im Software Engineering?
|
- Den tatsächlichen Zweck einer Software herausfinden
- Die Anforderungen des Kunden kommen immer zuerst und - Anforderungen des Kunden beinhalten Anforderungen an Qualität, nicht ausschließlich an Funktionalität |
|
Definieren Sie Project Quality Management
|
Project Quality Management beinhaltet die Prozesse und Aktivitäten der ausführenden Organisation, welche qualitätsrichtlinien, Ziele und Verantwortlichkeiten festlegen, so dass das Projekt den Zweck erfüllen kann, für den es gestartet wurde.
|
|
Nennen Sie 3 Kernprozesse im QM
|
• Qualitätsplanung: Festlegen von Qualitätsanforderungen und/oder Standards
• Qualitätssicherung: Überprüfen der Qualitätsanforderungen und der Ergebnisse aus Qualitätskontrollmessungen, um die Angemessenheit der Qualitätsstandards zu sichern • Qualitätskontrolle: Die laufende Erfassung von Ergebnissen der (Herstellungs-)Aktivitäten, um die Performanz zu evaluieren und ggf. notwendige Änderungen einzuleiten |
|
Nennen Sie Techniken der Qualitätskontrolle
|
- Verifikation und Validierung:
Entwicklung und Einsatz von Testtechniken zur Ermittlung der Korrektheit des Softwareprodukts - Reviews und Audits |
|
In Bezug auf Reviews und Audits als Techniken der Qualitätskontrolle gibt es unterschiedliche Verfahren zur Kontrolle des Prozesses. Nennen Sie mindestens 2
|
• Management Reviews
• Technical Reviews • Inspections • Walk-Throughs • Audits |
|
Es gibt verschiedene Techniken zur Sicherstellung von Softwarequalität. Nennen Sie mindestens 2 und jeweils 1 Beispiel
|
Statische Techniken:
• Projektdokumentation, • Code Analyse “People Intensive Techniques”: • Testsessions, • reviews, • audits, Analytische Techniken: (zumeist tool-unterstützt) • Komplexitätsanalyse, • control flow Analyse, • Algorithmische Analyse. Dynamische Techniken:z.B. • “critical path” Analysen • Testen |
|
Es gibt verschiedene Mittel zur Messung von Softwarequalität. Nennen Sie mindestens 2 und geben Sie jeweils 1 Beispiel
|
• Statistiken (z.B. Paretoanalyse, runcharts, scatter plots, Normalverteilung)
• StatistischeTests(z.B.Binomialtest,Chi-QuadratTest) • Trendanalyse • Vorhersage(z.B.Reliabilitätsmodelle) |
|
Welche sind die wichtigsten Einflussgrößen auf die Qualität einer Software?
|
- Prüfung (Test)
- Prozesse - Personen |