Merge remote-tracking branch 'origin/main'
4
Semester 6/COMARCH/Beispiele Klausurfragen.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Was ist das Amdahlsche Gesetz
|
||||
Das Amdahlsche Gesetz bezieht sich auf die maximale Prozessbeschleunigung, die man anhand X Prozessoren im Multi-Threading erreichen kann.
|
||||
|
||||
$µs = \frac{1}{1-p+\frac{p}{s}}$
|
||||
8
Semester 6/COMARCH/Klausurvorbereitungs Spreadsheed.md
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
# Hazards
|
||||
## DATA Hazard
|
||||
![[Pasted image 20250709205101.png]]
|
||||
Durch 'optimierungen' (verlagern des 2. LOAD WORD lw Befehls) wird Stalling verhindert und man spart sich 2 Takte. --> 11 Takte
|
||||
## CONTROL Hazard
|
||||
## STRUCT Hazard
|
||||
Es dürfen Fetch und Memory nicht gleichzeitig geschehen, Fetch müsste anhand eines NOPs delayed werden.
|
||||
BIN
Semester 6/COMARCH/Pasted image 20250709205049.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
Semester 6/COMARCH/Pasted image 20250709205101.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
14
Semester 6/COMARCH/Zusammenfassung/Fragenkatalog.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Übung 1
|
||||
- Beim von-Neumann-Rechner lassen sich Programme im Speicher genauso ändern wie Daten. Wo könnte das sinnvoll sein?
|
||||
- Beim der Rechner der Harvard-Rechner sind Programme und Daten strikt getrennt. Wo könnte das sinnvoll sein?
|
||||
- Welche Gatter kennen Sie?
|
||||
- Welche Darstellungen (graphisch) von Gattern kennen Sie?
|
||||
- Wie viele unterschiedliche Gatter gibt es, sind möglich?
|
||||
- Was für Komponenten kennen Sie eine Abstraktionsebene über den Gattern?
|
||||
- Noch eine Ebene höher?
|
||||
- Beim der Rechner der Harvard-Rechner sind Programme und Daten strikt getrennt. Wo könnte das sinnvoll sein?
|
||||
- Was beschreibt das Moore’sche Gesetz?
|
||||
|
||||
- Auf einem Datenpfad benötigt das Laden der Eingaberegister 5 ns, die ALU-Verarbeitung 10 ns und das Rückspeichern 5 ns. Wie viel MIPS hat dieser Rechner?
|
||||
$\frac{1}{20^{-9}s} = 0.05 * 10^9 = 50 \text{ MIPS}$
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 233 KiB |
|
After Width: | Height: | Size: 122 KiB |
@@ -22,10 +22,10 @@
|
||||
|
||||
1. **Ebene 0 – Digitale Logik:** Gatter, Flipflops
|
||||
2. **Ebene 1 – Mikroarchitektur:** ALU, Register, Datenpfade
|
||||
3. **Ebene 2 – ISA (Instruction Set Architecture):** Maschinensprache
|
||||
4. **Ebene 3 – Betriebssystemebene:** Multiprogramming, IO-Abstraktion
|
||||
3. **Ebene 2 – Befehlssatzachritektur (ISA):** Maschinensprache
|
||||
4. **Ebene 3 – Betriebssystem:** Multiprogramming, IO-Abstraktion
|
||||
5. **Ebene 4 – Assemblersprache:** maschinennahe Programmierung
|
||||
6. **Ebene 5 – Höhere Programmiersprachen:** unabhängige Algorithmen
|
||||
6. **Ebene 5 – Problemorientierte Sprachen:** unabhängige Algorithmen, Compiler oder Interpreter
|
||||
|
||||
---
|
||||
|
||||
@@ -87,16 +87,6 @@
|
||||
|
||||
---
|
||||
|
||||
### 📝 Organisatorisches
|
||||
|
||||
- **Vorlesung:** Do 13:30–15:00
|
||||
- **Übung:** Do 15:15–16:00
|
||||
- **Labor:** Do 16:15–19:15 (alle 2 Wochen)
|
||||
- **Prüfung:** E-Klausur 90 min (mind. 50% zum Bestehen)
|
||||
- **Voraussetzungen:** DIGIT & BESYST bestanden
|
||||
|
||||
---
|
||||
|
||||
### 🧠 Für die Klausur merken
|
||||
|
||||
✅ Unterschiede Von-Neumann vs. Harvard-Architektur
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- Auswirkungen:
|
||||
- Kleinere Strukturen → geringere Kosten
|
||||
- Mehr Komponenten → höhere Leistung
|
||||
- Geringerer Stromverbrauch
|
||||
- > Resultierend: Geringerer Stromverbrauch
|
||||
- Aber: Miniaturisierung wird zunehmend teurer und schwieriger.
|
||||
|
||||
---
|
||||
@@ -25,12 +25,12 @@
|
||||
### 📊 Leistungsmessung von Computern
|
||||
|
||||
- **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge
|
||||
- **Kennzahlen:**
|
||||
- Instruktionen/Sekunde (IPS), FLOPS
|
||||
- **Kenngrößen:**
|
||||
- Instruktionen/Sekunde (IPS), FLOPS (Floating point operations/second)
|
||||
- Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC)
|
||||
- Speicherzugriffszeit, Durchsatz
|
||||
- Netzwerk- & Grafikleistung (FPS, TPS)
|
||||
- Kritik an MIPS: „Misleading Information to Promote Sales“ – nicht immer aussagekräftig.
|
||||
- Kritik an MIPS: „Misleading Information to Promote Sales“ – nicht immer aussagekräftig. (MIPS => Million instructions per second)
|
||||
|
||||
---
|
||||
|
||||
@@ -39,10 +39,13 @@
|
||||
- **Zustände:** durch Bitmuster repräsentiert
|
||||
- **Operation:** Boolesche Funktion auf Teilzuständen
|
||||
- Vergleichbare Modelle:
|
||||
- Schaltnetz (ohne Schleifen)
|
||||
- Endlicher Automat (deterministisch/nichtdeterministisch)
|
||||
- Kellerautomat (mit Stack)
|
||||
- Turingmaschine (unendliches Band)
|
||||
- Schaltnetz: keine Schleifen, keine Rückkopplung)
|
||||
- Endlicher Automat (Deterministisch und Nichtdeterministisch)
|
||||
- Kellerautomat (unendlich, aber Zugriff nur auf oberstes Element)(Hardwarelimitierungen?)
|
||||
- Turing-Maschine (endliche Zustände des Automaten, unendliches Band zum Lesen und Schreiben)
|
||||
![[Pasted image 20250708185128.png]]
|
||||
![[Pasted image 20250708185152.png]]
|
||||
![[Pasted image 20250708185618.png]]
|
||||
|
||||
---
|
||||
|
||||
@@ -64,22 +67,44 @@
|
||||
- Operationen: +, −, *, /, logische Operationen
|
||||
- Moderne CPUs: mehrere Register → direkte Register-Register-Operationen
|
||||
- Ältere CPUs: Akkumulator-Register für ALU-Operationen
|
||||
|
||||
![[Pasted image 20250708185932.png]]****
|
||||
#### Steuerwerk
|
||||
|
||||
- Verantwortlich für:
|
||||
- Ausführung der Befehle
|
||||
- Datenflusskontrolle
|
||||
- Ausnahmebehandlung & Interrupts
|
||||
|
||||
#### Register
|
||||
- Program Counter PC
|
||||
- Befehlsregister (Instruction Registers IR)
|
||||
- **optional**: Stackpointer SP
|
||||
- **Statusregister**: Zustandsregister, Flags usw.
|
||||
- Einfache CPUs haben einen speziellen Akkumulator-Register (Accu)
|
||||
- Aus diesem wird ein Wert gelesen
|
||||
- Ergebnis einer Operation wird hier gelagert
|
||||
- Moderne CPUs können nicht direkt Daten aus dem Hauptspeicher in das Rechenwerk lesen (Sicherheit oder warum?)
|
||||
|
||||
#### Bottleneck Datentransfer
|
||||
| Speichertyp | Geschwindigkeit |
|
||||
| -------------------- | -------------------- |
|
||||
| CPU Register | < Nanosekunde |
|
||||
| CPU Cache | ~wenige Nanosekunden |
|
||||
| Arbeitsspeicher | 60-70 Nanosekunden |
|
||||
| Sekundärspeicher SSD | 0,4 ms |
|
||||
| Sekundärspeicher HDD | 8-10 ms |
|
||||
|
||||
---
|
||||
|
||||
### 🧵 Befehlssatzarchitekturen (ISA)
|
||||
|
||||
**Befehle bestimmen die Architektur und umgekehrt**
|
||||
|
||||
#### 1️⃣ Stack-Architektur
|
||||
|
||||
- Operanden und Ergebnisse liegen auf Stack.
|
||||
- Vorteile: kompakter Code, minimaler Prozessorzustand
|
||||
- Benötigt Stack Pointer **SP Register**
|
||||
- Ergebnis wird final auf den Stack gelegt
|
||||
- Vorteile: kompakter Code, minimaler Prozessorzustand, sog. Null-Address Machine
|
||||
- Nachteil: viele Speicherzugriffe
|
||||
- Heute: nur noch in virtuellen Maschinen (JVM, p-Machine)
|
||||
|
||||
@@ -88,6 +113,7 @@
|
||||
- Ein Register (Akkumulator) für Operanden & Ergebnis
|
||||
- Speicherzugriff für zweiten Operand nötig
|
||||
- Kompakt, aber teuer durch Speicherzugriffe
|
||||
- **Ein-Adress-Maschine**
|
||||
|
||||
#### 3️⃣ Register-Memory-Architektur
|
||||
|
||||
@@ -109,14 +135,27 @@
|
||||
|
||||
### 🔥 RISC vs CISC
|
||||
|
||||
|**Merkmal**|**RISC**|**CISC**|
|
||||
|---|---|---|
|
||||
|**Befehlssatz**|Einfach, einheitlich, kurze Befehle|Komplex, unterschiedliche Länge|
|
||||
|**Hardware**|Einfach, energieeffizient|Komplex oder Mikroprogramme|
|
||||
|**Codegröße**|Größer|Kompakter|
|
||||
|**Beispiele**|ARM, MIPS, SPARC, PowerPC|x86 (Intel, AMD), Zilog Z80|
|
||||
|**Vorteile**|Schneller bei genügend Registern|Speichereffizient|
|
||||
|**Nachteile**|Mehr Programmspeicher nötig|Langsame komplexe Befehle|
|
||||
| **Merkmal** | **RISC** | **CISC** |
|
||||
| --------------- | ----------------------------------- | ------------------------------- |
|
||||
| **Befehlssatz** | Einfach, einheitlich, kurze Befehle | Komplex, unterschiedliche Länge |
|
||||
| **Hardware** | Einfach, energieeffizient | Komplex oder Mikroprogramme |
|
||||
| **Codegröße** | Größer | Kompakter |
|
||||
| **Beispiele** | ARM, MIPS, SPARC, PowerPC | x86 (Intel, AMD), Zilog Z80 |
|
||||
| **Vorteile** | Schneller bei genügend Registern | Speichereffizient |
|
||||
| **Nachteile** | Mehr Programmspeicher nötig | Langsame komplexe Befehle |
|
||||
|
||||
Unterschied zwischen CISC und RISC CPUs – Gibt es Mischformen?
|
||||
|
||||
| ==Merkmal== | ==CISC (Complex Instruction Set Computer)== | ==RISC (Reduced Instruction Set Computer)== |
|
||||
| :--------------- | :------------------------------------------ | :------------------------------------------ |
|
||||
| Befehlssatz | Viele, komplexe Befehle | Wenige, einfache Befehle |
|
||||
| Hardwareaufbau | Komplexe Steuerlogik oder Mikroprogramme | Einfache, schnelle Hardware |
|
||||
| Befehlslänge | Unterschiedlich lang (z. B. 1–15 Byte) | Gleich lang (z. B. 4 Byte) |
|
||||
| Operationen | Direkt mit Speicher möglich | Nur mit Registern (Load/Store-Prinzip) |
|
||||
| Speicherbedarf | Geringer, da kompakter Code | Höher, da mehr Befehle nötig |
|
||||
| Energieeffizienz | Weniger effizient | Höher, da keine ungenutzten Logikblöcke |
|
||||
| Fokus | Effizienz bei Assembler-Programmierung | Optimierung für Compiler und Pipeline |
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -28,16 +28,9 @@
|
||||
- 32 Register: z. B. `$s0-$s7`, `$t0-$t9`, `$zero` (immer 0), `$sp`, `$ra`\
|
||||
- Daten müssen in Register geladen werden, bevor ALU-Operationen möglich sind.\
|
||||
|
||||
#### 🛠️ Befehle (Beispiele)
|
||||
|
||||
|**Kategorie**|**Befehl**|**Beispiel**|**Bedeutung**|
|
||||
|---|---|---|---|
|
||||
|Arithmetisch|`add`|`add $s1,$s2,$s3`|`$s1 = $s2 + $s3`|
|
||||
|Datentransfer|`lw`, `sw`|`lw $s1,20($s2)`|`$s1 = Memory[$s2+20]`|
|
||||
|Logisch|`and`, `or`|`and $s1,$s2,$s3`|`$s1 = $s2 & $s3`|
|
||||
|Bedingte Verzweigung|`beq`, `bne`|`beq $s1,$s2,Label`|Sprung, falls `$s1 == $s2`|
|
||||
|Unbedingter Sprung|`j`, `jal`|`j Label`|Sprung zu Adresse `Label`|
|
||||
|
||||
#### 🛠️ Befehle
|
||||
![[Pasted image 20250708193917.png]]
|
||||
![[Pasted image 20250708193937.png]]
|
||||
---
|
||||
|
||||
### 🧮 Aufbau der CPU: Datenpfad (Datapath)
|
||||
|
||||
@@ -3,90 +3,61 @@
|
||||
### 🔁 Wiederholung aus Teil 1
|
||||
|
||||
- **Instruktionstypen (MIPS):**
|
||||
|
||||
- **R-Format:** arithmetische/logische Operationen (z. B. `add $s1,$s2,$s3`)
|
||||
|
||||
- **Load/Store:** Speicherzugriff (z. B. `lw`, `sw`)
|
||||
|
||||
- **Branch:** bedingte Sprünge (`beq`, `bne`)
|
||||
|
||||
- **R-Format:** arithmetische/logische Operationen (z. B. `add $s1,$s2,$s3`)
|
||||
- **Load/Store:** Speicherzugriff (z. B. `lw`, `sw`)
|
||||
- **Branch:** bedingte Sprünge (`beq`, `bne`)
|
||||
- **Datenpfad (Full Datapath):**
|
||||
|
||||
- Register → ALU → Speicher → Register
|
||||
|
||||
- Separate Instruktions- und Datenspeicher nötig, da ein Zugriff pro Zyklus
|
||||
|
||||
- Register → ALU → Speicher → Register
|
||||
- Separate Instruktions- und Datenspeicher nötig, da ein Zugriff pro Zyklus
|
||||
|
||||
---
|
||||
|
||||
### ⚙️ Steuerungseinheit (Control Unit)
|
||||
|
||||
- **Erzeugt Steuersignale aus dem Opcode:**
|
||||
|
||||
- **MemtoReg:** bestimmt Datenquelle für Register-Schreiben
|
||||
|
||||
- **ALUSrc:** wählt ALU-Operand (Register vs. unmittelbarer Wert)
|
||||
|
||||
- **RegWrite:** aktiviert Schreibzugriff auf Register
|
||||
|
||||
- **MemRead/MemWrite:** steuern Speicherzugriffe
|
||||
|
||||
- **Branch:** aktiviert bei bedingten Sprüngen
|
||||
|
||||
- **MemtoReg:** bestimmt Datenquelle für Register-Schreiben
|
||||
- **ALUSrc:** wählt ALU-Operand (Register vs. unmittelbarer Wert)
|
||||
- **RegWrite:** aktiviert Schreibzugriff auf Register
|
||||
- **MemRead/MemWrite:** steuern Speicherzugriffe
|
||||
- **Branch:** aktiviert bei bedingten Sprüngen
|
||||
- **ALU Control:**
|
||||
|
||||
- Basierend auf Opcode und Funct-Feld
|
||||
|
||||
- Basierend auf Opcode und Funct-Feld
|
||||
- Beispiel Mapping:
|
||||
|
||||
|ALUOp|Funct|ALU-Funktion|
|
||||
|---|---|---|
|
||||
|00|XXXXXX|`add`|
|
||||
|01|XXXXXX|`sub`|
|
||||
|10|100000|`add`|
|
||||
|10|100010|`sub`|
|
||||
|10|100100|`and`|
|
||||
|10|100101|`or`|
|
||||
|10|101010|`slt`|
|
||||
|
||||
|
||||
| ALUOp | Funct | ALU-Funktion |
|
||||
| ----- | ------ | ------------ |
|
||||
| 00 | XXXXXX | `add` |
|
||||
| 01 | XXXXXX | `sub` |
|
||||
| 10 | 100000 | `add` |
|
||||
| 10 | 100010 | `sub` |
|
||||
| 10 | 100100 | `and` |
|
||||
| 10 | 100101 | `or` |
|
||||
| 10 | 101010 | `slt` |
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 📦 Erweiterter Datenpfad
|
||||
|
||||
- Unterstützung für:
|
||||
|
||||
- **Jumps (`j`, `jal`):**
|
||||
|
||||
- PC-Update mit 26-Bit Zieladresse + oberen 4 Bit des alten PCs
|
||||
|
||||
- Steuerleitung „Jump“ wird aus Opcode dekodiert
|
||||
|
||||
- **Branches (`beq`, `bne`):**
|
||||
|
||||
- Zieladresse berechnen (PC+4 + Offset << 2)
|
||||
|
||||
- ALU prüft, ob Bedingung erfüllt (Zero-Flag)
|
||||
|
||||
- **Jumps (`j`, `jal`):**
|
||||
- PC-Update mit 26-Bit Zieladresse + oberen 4 Bit des alten PCs
|
||||
- Steuerleitung „Jump“ wird aus Opcode dekodiert
|
||||
- **Branches (`beq`, `bne`):**
|
||||
- Zieladresse berechnen (PC+4 + Offset << 2)
|
||||
- ALU prüft, ob Bedingung erfüllt (Zero-Flag)
|
||||
|
||||
---
|
||||
|
||||
### 🚨 Performance-Betrachtung
|
||||
|
||||
- **Ein-Zyklus-Datenpfad Problem:**
|
||||
|
||||
- Längster Pfad (Critical Path) bestimmt Taktfrequenz
|
||||
|
||||
- Beispiel: Load-Befehl → Instruktionsspeicher → Registerfile → ALU → Datenspeicher → Registerfile
|
||||
|
||||
- Unterschiedliche Instruktionen hätten unterschiedliche Latenzen → nicht praktikabel
|
||||
|
||||
- Längster Pfad (Critical Path) bestimmt Taktfrequenz
|
||||
- Beispiel: Load-Befehl → Instruktionsspeicher → Registerfile → ALU → Datenspeicher → Registerfile
|
||||
- Unterschiedliche Instruktionen hätten unterschiedliche Latenzen → nicht praktikabel
|
||||
- **Lösung:** **Pipelining**
|
||||
|
||||
- Aufteilung des Datenpfads in Stufen
|
||||
|
||||
- Überlappende Bearbeitung mehrerer Instruktionen
|
||||
|
||||
- Aufteilung des Datenpfads in Stufen
|
||||
- Überlappende Bearbeitung mehrerer Instruktionen
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -3,13 +3,9 @@
|
||||
### 🚀 Was ist Pipelining?
|
||||
|
||||
- **Prinzip:** Überlappende Ausführung mehrerer Instruktionen
|
||||
|
||||
- **Analogie:** Waschstraße – mehrere Autos gleichzeitig in unterschiedlichen Phasen
|
||||
|
||||
- **Ziel:** Erhöhung des Durchsatzes (mehr Befehle pro Zeiteinheit)
|
||||
|
||||
- **Wichtig:** Latenz einzelner Instruktionen bleibt gleich
|
||||
|
||||
|
||||
---
|
||||
|
||||
@@ -28,13 +24,9 @@
|
||||
### 📈 Performance-Vorteile
|
||||
|
||||
- **Single-Cycle Datapath:** 800 ps pro Befehl
|
||||
|
||||
- **Pipelined Datapath:** 200 ps pro Befehl
|
||||
|
||||
- **Theoretisches Speedup:** Anzahl Stufen = 5x schneller
|
||||
|
||||
- **Realität:** Speedup < 5 wegen Hazard-Stalls und unbalancierter Stufen
|
||||
|
||||
|
||||
---
|
||||
|
||||
@@ -43,57 +35,39 @@
|
||||
#### 🏗 Struktur-Hazards
|
||||
|
||||
- Konflikt um Ressource (z. B. Instruktions- und Datenspeicher gleichzeitig benötigt)
|
||||
|
||||
- **Lösung:** Getrennte Instruktions-/Datenspeicher oder Caches
|
||||
|
||||
|
||||
#### 📦 Daten-Hazards
|
||||
|
||||
- Instruktion benötigt Ergebnis der vorherigen Instruktion
|
||||
|
||||
- Beispiel:
|
||||
|
||||
```asm
|
||||
add $s0, $t0, $t1
|
||||
sub $t2, $s0, $t3
|
||||
```
|
||||
|
||||
- **Lösungen:**
|
||||
|
||||
- **Forwarding (Bypassing):** Ergebnis direkt weiterleiten
|
||||
|
||||
- **Stalls:** Pipeline anhalten
|
||||
|
||||
- **Code Scheduling:** Befehle umsortieren, um Abhängigkeiten zu vermeiden
|
||||
|
||||
- **Forwarding (Bypassing):** Ergebnis direkt weiterleiten
|
||||
- **Stalls:** Pipeline anhalten
|
||||
- **Code Scheduling:** Befehle umsortieren, um Abhängigkeiten zu vermeiden
|
||||
|
||||
#### 🔁 Kontroll-Hazards
|
||||
|
||||
- Sprünge (`beq`, `bne`) → Ziel erst spät bekannt
|
||||
|
||||
- **Lösungen:**
|
||||
|
||||
- Warten bis Branch-Entscheidung (Stalls)
|
||||
|
||||
- **Branch Prediction:**
|
||||
|
||||
- **Static:** Vorwärts nicht nehmen, Rückwärts nehmen
|
||||
|
||||
- **Dynamic:** Verlauf der Branches aufzeichnen und vorhersagen
|
||||
|
||||
- Warten bis Branch-Entscheidung (Stalls)
|
||||
- **Branch Prediction:**
|
||||
- **Static:** Vorwärts nicht nehmen, Rückwärts nehmen
|
||||
- **Dynamic:** Verlauf der Branches aufzeichnen und vorhersagen
|
||||
|
||||
---
|
||||
|
||||
### 📦 Optimierungen
|
||||
|
||||
- **Forwarding:** Verhindert unnötige Stalls
|
||||
|
||||
- **Branch Prediction:** Reduziert Control Hazards
|
||||
|
||||
- **Separate Speicher:** Löst Struktur-Hazards
|
||||
|
||||
- **Code Scheduling:** Compiler verschiebt Befehle zur Vermeidung von Stalls
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
186
Semester 6/SWTEST/Klausurrelevantes Milan.md
Normal file
@@ -0,0 +1,186 @@
|
||||
Softwaretest (Was ist klausurrelevant?)
|
||||
Klausur besteht aus zwei Teilen:
|
||||
Ankreuzen (30 Fragen, 1 Punkt, immer nur eine richtig)
|
||||
Freitextaufgaben (Begründen oder unterscheiden usw. aber immer nur kurze Texte, zwischen 2 und 6 Punkte pro Aufgabe)
|
||||
14 - 15:30 am 15.07.
|
||||
|
||||
Kapitel 0
|
||||
Folien:
|
||||
Die Tatsache das es unmöglich ist eine Software vollständig zu testen und Fehlerfreiheit zu garantieren.
|
||||
|
||||
Kapitel 1
|
||||
Folien:
|
||||
- [x] 7 Fehler und Mangel Unterschied
|
||||
- [x] 12 Begriffe und deren Zusammenhang
|
||||
- [x] 15 Validierung Verifikation
|
||||
- [x] 17 Unterscheidungen zwischen funktionalen- und nichtfunktionalen Anforderungen sollte klar sein und mit Beispielen belegen
|
||||
- [x] 17 - … Qualitätsmerkmale Beispiele benennen können oder was dazu sagen können (aber nicht im Detail) Nur eine Vorstellung davon haben, was das bedeutet.
|
||||
- [x] 30 Zwischen analytischer- und konstruktiver Qualitätssicherung unterscheiden können.
|
||||
- [x] 33 Grundsätze kennen, nicht auswendig wiedergeben aber zumindest verstehen was damit gemeint ist.
|
||||
- [x] 48 Faktoren die den Testprozess beeinflussen können (Keine Detailfragen)
|
||||
- [x] 50 Rückverfolgbarkeit (Horizontal und Vertikal)
|
||||
- [x] 51 Aktivitäten des Testprozesses sollten klar sein und wer das durchführt.
|
||||
- [x] 54 Grob wissen was die Testüberwachung und -Steuerung beinhaltet. Sachen einordnen können.
|
||||
- [x] Folgefolien: Grob verstehen was die einzigen Aktivitäten sind.
|
||||
- [x] 69 Da ist sie ja wieder die Rückverfolgbarkeit
|
||||
- [x] 73 Unterschied zwischen abstrakten und konkreten Testfällen (Testentwurf immer abstrakt bsp. Äquivalenzklassen, Realisierung ist dann konkret weil da müssen wir dann ja Werte einfügen)
|
||||
- [x] 74 Testspezifikation (Wie viele Testfälle brauchen wir hier)
|
||||
- [x] 76 Das Testorakel
|
||||
- [ ] 81 Entwicklertests bei Psychologie des Testens
|
||||
- [ ] 82 Vor und Nachteile vom unabhängigen Testen nochmal durchlesen und verstehen.
|
||||
- [ ] 83 Abstufungen
|
||||
- [ ] 91 Fragen sollte man beantworten können (Sind da wirklich alle wichtig?) Der Begriff Fehlermaskierung sollte klar sein genauso wie der Unterschied zwischen Testen und Debugging.
|
||||
|
||||
Kapitel 2
|
||||
Folie:
|
||||
- [x] 10 Verschiedene Teststufen sollten bekannt sein.
|
||||
- [x] 15 Validierung
|
||||
- [x] 16 Verifizierung (Bilder oben in der Ecke sind falschrum. Validierung links, Verifizierung rechts)
|
||||
- [x] 17 Nochmal Unterschied zwischen Validierung und Verifizierung
|
||||
- [x] 25 Continuous Integration (wissen was das ist)
|
||||
- [x] Auf agiles Testen wird nicht eingegangen
|
||||
- [x] 27 Testaktivitäten, Tester früher einbinden
|
||||
- [x] Folgende Folien Verschiedene Teststufen kennen, Testbasen kennen
|
||||
- [x] 40 Isoliert wird getestet, Test driven Development
|
||||
- [x] 51 Ingegrationstest Fehlerzustände und Fehlerwirkungen nochmal lesen und verstehen (Vom Prinzip her)
|
||||
- [x] 56 Nochmal das Gleiche nur im Unit Test
|
||||
- [x] 71 Systemtest, Betrachtung des System als ganzen
|
||||
- [x] 73 Testziele, welche Aspekte sind relevant?
|
||||
- [x] 76 Fehlerzustände und Fehlerwirkungen lesen
|
||||
- [x] 82 Verständnis für nichtfunktionale Anforderungen
|
||||
- [x] 91 Einfach nochmal durchlesen (eventuell keine Frage dazu, aber kann man mit nachdenken ein Beispiel benennen)
|
||||
- [x] 95 Spezielle Form des Systemtests
|
||||
- [x] 106 Unterschied Alpha und Beta Test (Alpha intern, Beta - Software wird nach außen gegeben)
|
||||
- [x] 111 Funktionale, Nichtfunktionale, Strukturelle und Änderungsbezogene Tests. Fehlernach und Regressionstest
|
||||
- [x] 112 Teststufen und Testarten
|
||||
- [x] 113 Funktionale Tests
|
||||
- [x] 114 Nichtfunktionale Tests
|
||||
- [x] 115 White-Box Tests
|
||||
- [ ] 123 Testarten und Teststufen (Bankanwendung mal durchlesen)
|
||||
- [ ] Verschiedene Anlässe für Wartungen
|
||||
- [ ] 130 Typische Wartungsanlässe sollen grob klar sein. Additive Wartung und andere drei Begriffe sollten klar sein.
|
||||
- [ ] 140 Könnte man sich nochmal anschauen um einen Überblick zu bekommen
|
||||
- [ ] 142 Fragen sollten beantwortet werden können.
|
||||
|
||||
Kapitel 3
|
||||
Folie:
|
||||
- [ ] 6 Software-Qualitätssicherung
|
||||
- [ ] 18 Grundlegende Arbeitsschritte Reviews sollte so wiedergegeben werden können.
|
||||
- [ ] 20 Sollte soweit klar sein.
|
||||
- [ ] 27 Grob was da steht aber nicht jedes Detail
|
||||
- [ ] 39 Ablauf eines Reviewprozesses sollte grundlegend klar sein.
|
||||
- [ ] 41 Rollen
|
||||
- [ ] 42 Reviewarten und sortieren können und grob wissen was das jeweils bedeutet und wo die Unterschiede sind. (Wenn ein Reviewprozess sehr formell durchgeführt wird, was könnte das für ein Prozess sein?)
|
||||
- [ ] 56 Reviewarten zusammengefasst sollte verstanden werden. Alles außer Frage 3 wichtig
|
||||
- [ ] 84 Datenflussanalyse und
|
||||
- [ ] 89 Datenflussanomalien kennen und wissen was das ist (benennen)
|
||||
- [ ] 94 Begriffe verstehen und erklären können
|
||||
- [ ] 98 Zyklomatische Zahl
|
||||
- [ ] 99 Maßtypen
|
||||
- [ ] 100 Wie berechnet man die zyklomatische Zahl
|
||||
|
||||
Kapitel 4.1
|
||||
Folie:
|
||||
- [ ] 5 Blackbox von Whitebox unterscheiden können
|
||||
- [ ] 7 Statischen vom Dynamischen Test abgrenzen können.
|
||||
- [ ] 8 Begriffe sollten alle klar sein
|
||||
- [ ] 13 Rückverfolgbarkeit
|
||||
- [ ] 17 Aufbau eines Testrahmens
|
||||
- [ ] 18 Begriffe
|
||||
- [ ] 24 Blackbox
|
||||
- [ ] 44 Heuristiken und wie man damit die Testfälle minimiert.
|
||||
- [ ] 64 Begriffe
|
||||
- [ ] 66 Zustandsübergangstabelle sollte klar sein
|
||||
- [ ] 69 Der Ablauf sollte klar sein
|
||||
- [ ] 85 Entscheidungstabellentest Beispiel
|
||||
- [ ] 109 Fragen beantworten können
|
||||
|
||||
Kapitel 4.1
|
||||
Folie:
|
||||
- [ ] 3 Begriffe und Zusammenhänge verstehen
|
||||
- [ ] 5 Blackbox Whitebox immer in Kombination, Fokus auf Blackbox. Erfahrungsbasierte können zusätzlich gemacht werden als Ergänzung
|
||||
- [ ] Kontrollflusstest und Bedingungstest sollten klar sein.
|
||||
- [ ] 7 Das ist sowieso wichtig
|
||||
- [ ] 9 Begriffe
|
||||
- [ ] 10 Arten von Kontrollflusstests und welchen Sinn die haben (wichtig) -> in Folie 11 besser dargestellt.
|
||||
- [ ] Anweisungsüberdeckung und Entscheidungsüberdeckung
|
||||
- [ ] 13 Sollte klar sein, wie sie sich unterscheiden.
|
||||
- [ ] 16/17 Anweisungsüberdeckung und was man da beachten sollte - Wenn Coverage nicht erreicht wird, dann müssen neue Tests geschrieben werden.
|
||||
- [ ] 30 Grenze-Inneres-Überdeckung
|
||||
- [ ] 33 Pfadüberdeckung - theoretische Metrik...
|
||||
- [ ] 39 Instrumentierung sollte klar sein.
|
||||
- [ ] 41 Datenflusstest - Definitionen, c-user und p-use Unterschiede sollten klar sein.
|
||||
- [ ] 47 Bedingungstest - und die anderen die vorher/nacher sind sollte man auch kennen. Unterscheidungen sollen klar sein und auch Beispiel sollte man geben können?
|
||||
- [ ] 49 und fortfolgend, Verschiedene Arten von Bedingungsüberdeckung sollten klar sein.
|
||||
- [ ] 58 Lazy Evaluation sollte erklärt werden können und was das für die Praxis bedeutet.
|
||||
- [ ] 61 Mächtigkeit der White-Box-Testverfahren (Welcher der Aussagen ist richtig) - Prinzip soll verstanden sein.
|
||||
- [ ] 65/66 Erfahrungsbasierte Testverfahren
|
||||
- [ ] 67 Intuitive Testfallermittlung
|
||||
- [ ] 69 Exploratives Testen - Keine Details fragen
|
||||
- [ ] 73 Begriffe sollten klar sein.
|
||||
- [ ] Nur auf höherer Ebene, nicht auf Unit-Ebene
|
||||
- [ ] 83 Zusammenfassung dynamischer Tests
|
||||
- [ ] Und dann halt die Zusammenfassung von dem Kapitel kann man sich am Ende des Foliensatzes auch nochmal anschauen.
|
||||
|
||||
Kapitel 5
|
||||
Folie:
|
||||
- [ ] 3 Was man nach dem Kapitel wissen sollte.
|
||||
- [ ] 8 Vor und Nachteile des unabhängigen Testen
|
||||
- [ ] 15 Aufgaben von Mitarbeiterqualifikationen einzelne Begriffe kennen.
|
||||
- [ ] 17/18/19/20 Aufgabenunterteilung sollte bekannt sein. Unterschiede sollen klar sein.
|
||||
- [ ] 21 Aufgaben des Testers
|
||||
- [ ] 26 Wann soll mit dem Testen begonnen werden?
|
||||
- [ ] 28 Aktivitäten der Testplanung - Eine Vorstellung davon haben, was das ist.
|
||||
- [ ] 33 Soll klar sein
|
||||
- [ ] 34 Sollte klar sein
|
||||
- [ ] 37 Das Bild fast die Einflussfaktoren einmal ganz gut zusammen.
|
||||
- [ ] 45 Fragen sollten beantwortet werden können. (Wie in jedem Kapitel, sind gut um sich auf die Prüfung vorzubereiten)
|
||||
- [ ] 50 Schätzung des Testaufwands
|
||||
- [ ] 51 und folgend: Grob die Verfahren kennen, aber muss nicht auswendig gelernt werden. Begriffe kennen, unterscheiden können.
|
||||
- [ ] 59 Testmetriken - Fehlerbasierte und Testfallbasierte Metriken
|
||||
- [ ] 61/62 Begriffe sollten klar sein und soll erklärt werden können, was damit gemeint ist.
|
||||
- [ ] 64 Sinn sollte klar sein
|
||||
- [ ] 67 Eingangs- und Endekriterien sollen klar sein.
|
||||
- [ ] 71 Testfortschritts- und Testabschlussbericht wissen was das ist
|
||||
- [ ] 73 ISO-Norm kennen, aber halt nur erklären können und nicht auswendig
|
||||
- [ ] 74 Sollte klar sein was da steht.
|
||||
- [ ] 75 Teststeuerung, Punkte nochmal durchlesen zum verinnerlichen was für Maßnahmen zur Teststeuerung man machen kann.
|
||||
- [ ] 82 Gleichung kennen und Unterscheidung zwischen Produkt und Projektrisiken kennen.
|
||||
- [ ] 89 Produktrisiken
|
||||
- [ ] 97 Risikoorientierte Testplanung Tabelle mit den Inhalten verstehen. "Zahlen die da genannt werden sind haarsträubend"
|
||||
- [ ] 99 Fragen beantworten können
|
||||
- [ ] 101 Fehler- und Abweichungsmanagement
|
||||
- [ ] 102 Testprotokoll: Ursachenalayse ist Aufgabe der Entwickler
|
||||
- [ ] 103 Fehlermeldung Grundprinzip Ziele sollte man verstanden haben.
|
||||
- [ ] 105 Fehlerbericht - einheitliches Schema kennen.
|
||||
- [ ] 109 Bedeutung der Klassen mal anschauen und kennen.
|
||||
- [ ] 110 Priorität für die auf 109 beschriebenen Klassen
|
||||
- [ ] 112 Fehlerstatusmodell
|
||||
- [ ] 121 Begriffe kennen und Unterschiede kennen
|
||||
- [ ] 125/126 Fragen sollte man beantworten können.
|
||||
- [ ] 151 Fehler und Folgefehler
|
||||
- [ ] 155 Diese Folien mal merken
|
||||
|
||||
Kapitel 6
|
||||
Folie:
|
||||
- [ ] 6 Werkzeugunterstützung für das Testen (Bild betrachten)
|
||||
- [ ] 7 Bild nochmal
|
||||
- [ ] 11-14 Wichtig sind: Fehlermanagementwerkzeuge, Anforderungsmanagement, Fehlermanagementwerkezuge,
|
||||
- [ ] 16 Typen von Testwerkzeugen
|
||||
- [ ] 17 Review Werkzeuge
|
||||
- [ ] 18 Statische Analysewerkzeuge
|
||||
- [ ] 27-29 Testausführungswerkzeuge - 28 Unten die Unterschiedlichen Ansätze zur Automatisierung der Testdurchführung sollen bekannt sein. - Komparatoren uns sowas 29 soll auch bekannt sein.
|
||||
- [ ] 30 Ausführung und Protokollierung Bild mal anschauen
|
||||
- [ ] 31/32 Capture/Replay-Werkzeuge, sollte bekannt sein.
|
||||
- [ ] 35 Mal anschauen
|
||||
- [ ] 36 Überdeckungswerkzeuge
|
||||
- [ ] 39 Simulatoren
|
||||
- [ ] 48 Werkzeuge für Gebrauchstauglichkeitstest
|
||||
- [ ] 51 Werkzeuge für IT-Sicherheitstest
|
||||
- [ ] 57 Risiken von Testwerkzeugen ("Vielleicht könnten ein zwei Beispiele erfragt werden")
|
||||
- [ ] 59 Lernkurveneffekt
|
||||
- [ ] 62 Einführungsreihenfolge vielleicht ganz gut zu wissen
|
||||
- [ ] 65 Schritte sollen bekannt sein und was da zu tun ist.
|
||||
- [ ] 71 Grafik mal anschauen
|
||||
- [ ] 76 Vielleicht einmal durchlesen und verstehen um was es da geht.
|
||||
- [ ] 81/82 Fragen beantworten können (Statische Analyse, welche... "Die Frage könnte drann kommen") 82 - Vielleicht zwei Beispiele benennen können
|
||||