• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/33

Click to flip

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