1. Warum sind Softwaretests notwendig? Flashcards

1
Q

Ursachen von Softwarefehlern

A
  • Menschliche Fehlhandlungen
    • Zeitdruck
    • komplexer Code
    • Komplexität der Infrastruktur
    • sich ändernde Technologien und/oder
    • viele Systemwechselbeziehungen
  • Umgebungsbedingungen
    • Fehlerzustände in der Firmware (z.B.: durch Strahlung, Schmutz, elektromagnetische Felder)
    • Änderungen von Hardwarezuständen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Die Rolle des Testens bei

Entwicklung, Wartung und Betrieb von Software

A
  1. Reduktion des Risikos, dass Probleme im operativen Betrieb auftreten
  2. Erhöhung der Qualität des Softwaresystems:
    Fehlerzustände werden vor der betrieblichen Freigabe gefunden und behoben.
  3. Erfüllung von vertraglichen oder gesetzlichen Vorgaben oder speziellen Industrienormen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Testen und Qualität

A

Testen ermöglicht es, die Qualität (Anzahl der gefundenen Fehlerzustände) von Software zu messen.

Wenn wenige oder keine Fehlerzustände gefunden werden, kann Testen Vertrauen in dei Qualität eines Systems schaffen (–> Reduzierung des allgemeinen Risikioniveaus).

Behobene Fehler steigern die Qualität des Softwaresystems.

Wenn man die Fehlerursachen verstanden hat, die beim Testen in anderen Projeken gefunden wurden, kamm man den Entwicklungsprozess zielgerecht verbessern.

–> Testen sollte als eine Qualitätssicherungmaßnahme in den Entwicklungsprozess integriert sein.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie viel Testaufwand ist notwendig?

A

Hängt vom Risikoniveau ab:

  • technische
  • Betriebssicherheits-
  • und wirtschaftliche Risiken
  • sowie Projektrandbedingungen (Zeit und Budget)

Testen sollte genügenden Information liefern, um fundierte Entschiedungen über die Freigabe der getesteten Software oder des Systems treffen zu können.

Freigabe:

  • Übergabe des Systems an den nächsten Entwicklungsschritt
  • Übergabe des Systems an die Kunden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Testaktivitäten

A
  • Planung und Steuerung der Tests
  • Auswahl der Testbedingungen
  • Testfallspezifikation
  • Ausführung der Testfälle
  • Überprüfung der Ergebnisse
  • Auswertung der Enekritierien
  • Berichte über den Testprozess und das zu testende System
  • Abschlussarbeiten nach Abschluss einer Testphase
  • Prüfen von Dokumenten (auch Quellcode)
  • statische Analysen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Testziele

A
  1. Aufdecken von Fehlerzuständen
  2. Erzeugen von Vertrauen bezüglich des Qualitätsniveaus des Systems
  3. Liefern von Informationen zu Entscheidungsfindung
  4. Vorbeugen von Fehlerzuständen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Debugging

A

Debugging ist eine Entwicklungsaktivität, die die Ursache einer Fehlerwirkung identifiziert, analysiert und entfernt.

Anschließende Fehlernachtests durch einen Tester stellen sicher, dass die Lösung wirklich die Fehlerwikrung behoben hat.

Tester - testen

Entickler - Debugging

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Die sieben Grundsätze

des

Softwaretestens

A
  1. Testen zeigt die Anwesenheit von Fehlerzuständen
  2. Vollständiges Testen ist nicht möglich
  3. Mit dem Testen frühzeitig beginnen
  4. Häufung von Fehlern
  5. Widerholungen haben keine Wirksamkeit
  6. Testen ist abhängig vom Umfeld
  7. Trugschluss: “Kein Fehler” bedeutet brauchbares System
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Grundsatz 1:

Testen zeigt die Anwesenheit von Fehlerzuständen

A
  • Mit Testen wird das Vorhandensein von Fehlerzuständen nachgewiesen.
  • Mit Testen lässt sich nicht beweisen, dass keine Fehlerzustände im Testobjekt vorhanden sind,
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Grundsatz 2:

Vollständiges Testen ist nicht möglich

A
  • Ein vollständiger Test, bei dem all möglichen Eingabewerte und deren Kombinationen unter Berücksichtung aller unterschiedlichen Vorbedingungen ausgeführt werden, ist nicht durchführbar, mit Ausnahme von sehr trivialen Testobjekten.
  • Tests sind immer nur Stichproben, und der Testaufwand ist entsprechend Risiko und Priorität festzulegen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Grundsatz 3:

Mit dem Testen frühzeitig beginnen

A

Um Fehlerzustände frühzeitig zu finden, sollen Testaktivitäten im System- oder Softwarelebenszyklus so früh wie möglich beginnen und definierte Ziele verfolgen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Grundsatz 4:

Häufung von Fehlern

A

Ein kleiner Teil der Module enthält gewöhnlich die meisten Fehlerzustände, die während der Testphase entdeckt werden oder ist für die meisten Fehlerwirkungen im Betrieb verantwortlich.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Grundsatz 5:

Widerholungen haben keine Wirksamkeit

A

Wiederholungen der immer gleichen Testfälle führen nicht zu neuen Erkenntnissen.

–> neue Testfälle oder alte modifizieren.

–> nicht geprüfte Teile der Software und neue Konstellationen bei der Eingabe abdecken

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Grundsatz 6:

Testen ist abhängig vom Umfeld

A

Je nach Einsatzgebiet und Umfeld des zu prüfenden Systems ist das Testen anzupassen.

Sicherheitskritische Systeme vs. E-Commerce-Systeme

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Grundsatz 7:

Trugschluss: “Kein Fehler” bedeutet ein brauchbares System

A

Fehlerzustände zu finden und zu beseitigen, hilft nicht, wenn das gebaute System nicht nutzbar ist und nicht den Vorstellungen und Erwartungen der Nutzer entspricht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Fundamentaler Testprozess

A

Hauptaktivitäten:

  1. Testplanung und Steuerung
  2. Testanalyse und Testentwurf
  3. Testrealisierung und Testdurchführung
  4. Bewertung von Endekriterien und Bericht
  5. Abschluss der Testaktivitäten

Die Reihenfolge wird meist dem Projekt angepasst und all diese Testprozessaktivitäten können in der Praxis zeitlich überlappen oder parallel stattfinden.

17
Q

Testplanung und Steuerung

A

Zur Tesplanung gehören folgende Aktivitäten: die Definition der Testziele und die Festlegung der Testaktivitäten, die notwending sind, um Aufgabenumfang und Testziele erreichen zu können.

Teststeuerung ist die fortlaufende Aktivität, den aktuellen Testfortschritt mit dem Plan zu vergleichen und den Status, einschließlich eventueller Abweichungen, zu berichten und eventuell notwendige Anpassungen vorzunehmen.

18
Q

Testanalyse und Testentwurf

A

Testanalyse und -entwurf ist die Aktivität, in der die allgemeinen Testziele zu konkreten Testbedingungen und Testfällen verfeinert werden.

Hauptaufgaben:

  • Review der Testbasis (z.B. Anforderungen, Software Integrity Level1 (Risikoausmaß), Risikoanalysebericht, Architektur, Design, Schnittstellenspezifikation)
  • Bewertung der Testbarkeit von Testbasis und Testobjekten
  • Identifizierung und Priorisierung der Testbedingungen auf Grundlage der Testobjektanalyse, der Spezifikation, des Verhaltens und der Struktur der Software
  • Entwurf (Design) und Priorisierung von abstrakten Testfällen
  • Identifizierung benötigter Testdaten, um Definition von Testbedingungen und Testfällen zu unterstützen
  • Entwurf des Testumgebungsaufbaus und Identifikation der benötigten Infrastruktur und Werkzeuge
  • Erzeugen (bzw. Sicherstellung) der Rückverfolgbarkeit zwischen Testbasis und Testfällen in beiden Richtungen
19
Q

Testrealisierung und Testdurchführung

A

Testrealisierung und -durchführung ist die Aktivität, bei der unter Berücksichtigung aller anderen Informationen, die zur Testdurchführung nötig sind, Testabläufe und Testskripte spezifiziert werden, indem Testfälle in einer besonderen Reihenfolge kombiniert werden. Des Weiteren wird die Testumgebung in dieser Phase entsprechend konfiguriert und genutzt.

20
Q

Testrealisierung und Testdurchführung

Hauptaufgaben

A
  • Endgültige Festlegung, Realisierung und Priorisierung von Testfällen (einschließlich Festlegung der Testdaten)
  • Erstellung und Priorisierung des Testablaufs, Erstellung der Testdaten, der Testszenarien und optional Vorbereitung der Testrahmen und Entwicklung von Skripten zur Testautomatisierung
  • Erstellung von Testsuiten basierend auf dem Testablauf
  • Kontrolle, ob die Testumgebung korrekt aufgesetzt wurde.
  • Überprüfung und Aktualisierung der Rückverfolgbarkeit zwischen Testbasis und Testfällen in beide Richtungen
  • Ausführung von Testabläufen (manuell oder automatisiert) unter Einhaltung des Testplans (Reihenfolge, Testsuiten etc.)
  • Protokollierung der Testergebnisse und Dokumentation
  • Vergleich der Ist-Ergebnisse mit den vorausgesagten Ergebnissen gefundene Fehlerwirkungen oder Abweichungen festhalten und analysieren, um den Grund eines Problems festzustellen
  • Alle Testfälle, die eine Fehlerwirkung aufgedeckt haben, müssen nach der Behebung der jeweiligen Ursachen nochmals getestet werden (Fehlernachtest).
21
Q

Bewertung von Endekriterien und Bericht

A

Mit der Bewertung der Endekriterien/Testauswertung werden die Testaktivitäten auf ihre Ziele hin untersucht. Diese Phase sollte in jeder Teststufe abgehandelt werden.

22
Q

Bewertung von Endekriterien und Bericht

Hauptaufgaben

A
  • Auswertung der Testprotokolle in Hinblick auf die im Testkonzept festgelegten Endekriterien
  • Entscheidung, ob mehr Tests durchgeführt oder die festgelegten Endekriterien angepasst werden müssen
  • Erstellung des Testabschlussberichts für die Stakeholder
23
Q

Abschluss der Testaktivitäten

Hauptaufgaben

A

Finden zu einem Projektmeilenstein statt:

  • Kontrolle, welche der geplanten Arbeitsergebnisse geliefert wurden,
  • Schließung der Fehler-/Abweichungsberichte oder Erstellung von Änderungsanforderungen für weiter bestehende Fehler/Abweichungen
  • Dokumentation der Abnahme des Systems
  • Dokumentation und Archivierung der Testmittel, Testumgebung und der Infrastruktur für spätere Wiederverwendung
  • Übergabe der Testmittel an die Wartungsorganisation
  • Analyse und Dokumentation von „lessons learned“
  • Nutzung der gesammelten Informationen, um die Testreife zu verbessern
24
Q

Stufen der Unabhängigkeit

A
  • Der Test wird vom Entwickler für den eigenen Code durchgeführt (keine Unabhängigkeit).
  • Der Test wird von einem anderen Entwickler durchgeführt (z.B. innerhalb des Entwicklungsteams).
  • Der Test wird von ein oder mehreren Personen aus einer anderen organisatorischen Einheit (z.B. unabhängiges Testteam) oder einem Testspezialisten (z.B. Spezialist für Benutzungsfreundlichkeit oder Performance) durchgeführt.
  • Der Test wird von ein oder mehreren Personen außerhalb der (entwickelnden) Organisation durchgeführt.
25
Q

Kommunitkationsgrundlagen

A
  • Beginnen Sie mit der Zusammenarbeit anstatt zu streiten – erinnern Sie jeden an das zentrale Ziel: eine bessere Qualität der Software!
  • Kommunizieren Sie gefundene Fehler eines Produkts neutral, sachbezogen und vermeiden Sie Kritik an der verantwortlichen Person.
  • Versuchen Sie, das Verhalten und die Gefühle der anderen Person zu verstehen.
  • Stellen Sie sicher, dass Sie die andere Person richtig verstanden haben und umgekehrt.
26
Q

Ethische Leitlinie

ÖFFENTLICHKEIT

A

Das Verhalten zertifizierter Softwaretester soll nicht im Widerspruch zum öffentlichen Interesse stehen.

27
Q

Ethische Leitlinie

KUNDE UND ARBEITGEBER

A

Das Verhalten zertifizierter Softwaretester soll den Interessen ihrer Kunden und Arbeitgeber entsprechen und dabei nicht im Widerspruch zum öffentlichen Interesse stehen.

28
Q

Ethische Leitlinie

PRODUKT

A

Zertifizierte Softwaretester sollen sicherstellen, dass die Arbeitsergebnisse, die sie liefern (für die von ihnen getesteten Produkte und Systeme), höchste fachliche Anforderungen erfüllen.

29
Q

Ethische Leitlinie

URTEILSVERMÖGEN

A

Zertifizierte Softwaretester sollen bei ihrer professionellen Beurteilung aufrichtig und unabhängig sein.

30
Q

Ethische Leitlinie

MANAGEMENT

A

Zertifizierte Softwaretestmanager und -testleiter sollen eine ethische Haltung beim Management des Softwaretestens haben und fördern.

31
Q

Ethische Leitlinie

BERUFSBILD

A

Zertifizierte Softwaretester sollen Integrität und Ansehen ihres Berufs fördern und dabei nicht im Widerspruch zum öffentlichen Interesse stehen.

32
Q

Ethische Leitlinie

KOLLEGEN

A

Zertifizierte Softwaretester sollen sich ihren Kolleginnen und Kollegen gegenüber fair und hilfsbereit verhalten und die Kooperation mit Softwareentwicklern fördern.

33
Q

Ethische Leitlinie

PERSÖNLICH

A

Zertifizierte Softwaretester sollen sich in ihrem Beruf lebenslang fort- und weiterbilden und eine ethische Haltung in ihrer Berufsausübung vertreten.