Title: EPI_Klausur
Tags: Softwaretests Algorithmen Datentypen Objektorientierung Computer Daten_Informartion_Wissen

Q: Was versteht man unter dem Begriff aggregierter Datentyp?
A: Zusammengesetzte (aggregierte) Datentypen sind Datenkonstrukte, welche aus einfacheren (elementaren) Datentypen oder zusammengesetzten Datentypen bestehen.

Q: was bedeutet es für einen Algorhitmus determiniert zu sein?
A: Bei jeder Ausführung mit den gleichen Startwerten muss das gleiche Ergebnis heraus kommen.

Q: was bedeutet es für einen Algorhitmus deterministisch zu sein?
A: Zu jedem Zeitpunkt in der Ausührung gibt es nur eine Möglichkeit zur Programm Fortsetzung.

Q: Ist jeder determinierte Algorhitmus auch deterministisch?
A: Nein.
Jeder deterministische Algorhitmus ist deteminiert. Umgekehrt ist das allerdings nicht unbedingt der Fall

Q: Was ist das "most significant bit"?
A: Das höchstwertige Bit, was an erster Stelle einer Binärzahl steht

Q: Was ist ein Datentyp?
A: eine Zusammenfassung von Objektmengen mit dazugehörigen Operationen/Kapselung

Q: was ist statische Typisierung?
A: Schon vor der Laufzeit muss feststehen was für ein Datentyp eine Variable hat

Q: was ist dynamische Typisierung?
A: Typzuweisung während der Laufzeit.
Eine Variable bekommt erst dann einen Datentyp, wenn ihr ein Wert (eines best. Datentyps) zugewiesen wird.

Q: Welche Datentypen sind in Python mutable?
A: lists, sets und dictionaries

Q: Wie heißt ein Attribut, das für alle Objekte einer Klasse gleich ist?
A: objektübergreifendes Attribut

Q: Welche verschiedenen Sichtbarkeiten gibt es für Variablen/Methoden in der Objektorientierung?
A: -public
-private
-protected
(-package)

Q: Was bedeutet es einen Operator zu überladen? (Objektorientierung)
A: Dass es mehrere Methoden mit dem gleichen Namen geben kann, die sich
durch die Argumente unterscheiden, die ihnen übergeben werden.

Q: Was bedeutet es, wenn ein Algorithmus terminierend ist?
A: Wenn der Algorithmus für beliebige Eingaben nach einer endlichen Anzahl von Schritten zu einem Ergebnis kommt.

Q: Was sind die 5 Funktionseinheiten der von-Neumann-Architektur?
A: -Speicher (M für Memory)
-Steuerwerk(CC)
-Rechenwerk(CA)
-Eingabe(I für Input)
-Ausgabe(O für Output)
(Steuerwerk und Rechenwerk zusammen bilden den Prozessor)

Q: Was sind die Phasen des Befehls-Ausführungszyklus?
A: 1. FETCH
    Befehl aus dem Speicher holen
2. DECODE
    Befehl im Prozessor interpretieren
3. FETCH OPERANDS
    Operanden holen (Op-Codes)
4. EXECUTE
    Befehl ausführen
5. UPDATE INSTRUCTIONS
    Erhöhen des Befehlszählers

Q: Was bedeutet statische Finitheit für einen Algorhitmus?
A: Die Beschreibung des Algorhitmus ist endlich

Q: Was bedeutet dynamische Finitheit für einen Algorhitmus?
A: Die Menge an Daten inkl. Zwischenspeicherung ist zu jedem Zeitpunkt endlich

Q: Was ist präfix-freier Code?
A: Code, der die Fano-Bedingung erfüllt: kein Codewort des Codes darf Präfix eines anderen Codeworts sein.

Q: Mit welcher Methode kann in Python der ASCII-Code eines Zeichens ausgegeben werden?
A: ord(x)

Q: Welche Ausdrücke sind keywords in python und damit als Variablennamen verboten?
A: False else import async
 try as def from nonlocal
 pass None except if break
 raise in True class
 and continue for lambda
 while assert
 del global not with
 await elif or yield
 finally is return

Q: Was bedeutet für einen Algorithmus dynamische Finitheit?
A: Die Menge an Daten inklusive  Zwischenspeicherungen sind zu jeder Zeit endlich.

Q: Was ist ein Glass Box Test?
A: Test wobei Implementierung des Programmes bekannt ist.
1.Programm wird speziell präpariert
2. Durchlauf mit Testcase, Dokumentation von Ergebnis und Lauf
3. Resultat: welcher Code wurde ausgeführt, welcher nicht?

Q: Was ist ein Black-Box-Test?
A: ein spezifikationsbasierter Test
System wird von aussen betrachtet,
   Testerin kennt das Programm nicht
—-> vermeidet Bias
   Testgetriebene Entwicklung
   Grundlage für Testfälle:
   -Annahmen
   -Aufgaben
   -Anforderung

Q: Was ist ein guter Test?
A: - repräsentativ
     stellvertretend für viele Fälle
- fehlersensitiv
     hohe Wahrscheinlichkeit Fehler aufzuzeigen
- redundanzarm
     prüft nicht was andere schon prüfen

Q: was ist Äquivalenzklassenbildung?
A: Eine Methode um Testcases zu finden
-Spezifikation von Ein- und Ausgabe, und Gültigkeitsbereiche
-für jeden Gültigkeitsbereich wird eine Äquivalenzklasse gebildet
-kartesisches Produkt aus Eingabe und Ausgabemenge ergibt Äquivalentklassen

Q: Was ist Grenzwertanalyse?
A: wählen Testcases am Rand

Q: Was ist Zustandsüberdeckung bei einem Test?
A: Im Test wird jeder Zustand im Programm einmal erreicht

Q: Was ist Zustandspaarüberdeckung bei einem Test?
A: wir auch Entscheidungsüberdeckung genannt,
von jedem Zustand muss in jeden möglichen  Nachfolgezustand gewechselt werden.

Q: was ist Transitionsüberdeckung bei einem Test?
A: Alle Zustandsübergänge werden ausgeführt

Q: Was für Arten von Fehlern können bei Softwaretest aufgedeckt werden? (Fehler auf Software Ebene)
A: - Error    Fehlhandlung
       eine Person macht den Fehler
- Bug Defekt
       Das Programm macht den Fehler
- Failure Fehlverhalten
        Die Anwendung führt zu einem Fehler

Q: Was ist ein Unit Test?
A: Test der Module, Nachweis der Lauffähigkeit, fachliche Korrektheit
(oft von Entwicklerinnen ausgeführt)

Q: was ist ein Integrationstests?
A: Test ob Komponenten zusammen arbeiten, Schnittstellen funktionieren

Q: Was ist ein Systemtests?
A: Test ob das Gesamtsystem funktioniert

Q: was ist ein Abnahmetest?
A: Testen der Software durch Kundin/Anwenderin

Q: Was sind die verschiedenen Arten von Überdeckungen, die mit Glass-Box Tests erzielt werden können?
A: Anweisungsüberdeckung  18 % Fehlererkennung
statement coverage, c0-Test:
- jede Anweisung wir einmal durchlaufen
Ablaufszweigüberdeckung 34 % Fehlererkennung
branch coverage, c1-Test:
    - jeder Ablaufzweig wird einmal durchlaufen
Ablaufpfadüberdeckung 63 % Fehlererkennung
c2a-Test:
- jeder mögliche Pfad durch das Programm wird durchlaufen (solange es nur Zweige gibt)

was macht man in einem Glassbox Test wenn es Rekursionen oder Schleifen gibt?