*** # Testkonzept *** ### Modul 450 --- # Wer testet seinen Code? ***
# Und wie?

---- # Wozu testen wir? ***  Note: * Gruppenarbeit 5' * Zusammentragen 5' * A01-00-wozutesten.pdf ---- # Bugs in Production *** Fehler, die es in die Produktion schaffen sind teuer und schwierig(er) zu beheben!  https://www.youtube.com/watch?v=ctWXQJ-KOO8 Note: https://www.youtube.com/watch?v=ctWXQJ-KOO8 Fixing_a_Bug_on_Production_Explained_Simply.mp4 * Wer hatte das schon mal? ----
Your browser does not support the video tag.
--- ## Wie testen wir? # Wann testen wir was? *** ### Ein paar Orientierungshilfen --- ## Orientierungshilfe # V-Modell *** ### Testhöhe vs Anforderungshöhe ---- # V-Modell ***  Note: * Aufwand zum beheben eines Fehlers * Herkunft aus "Wasserfall" * Weiterhin gültig * Auswirkungen nicht ganz so extrem ---- # V-Modell ***  Note: Unterste Ebene Code * CodeQuality * UnitTests * ---- # V-Modell ***  Note: ### Komponenten / Packages / Libs * Eingebundene Libs * Zusammenspiel * Validierungstests für Externe Helper/Libs ---- # V-Modell ***  Note: ### Architektur * Mehrere grössere Komponenten * Datenbank * Filesystem * Services * Allenfalls noch Dummies ---- # V-Modell ***  Note: ### System * Einbinden von weiteren Services * Mehrere Teilsysteme --- # V-Modell ***  Note: ### Abnahme * Von Kunde * * Aufwand zum beheben eines Fehlers * https://media.geeksforgeeks.org/wp-content/uploads/V-Model.png --- ## Orientierungshilfe # Quadrantenmodell *** ### Wie sieht das Quadrantenmodell aus?
Nach Crispin/Gregory
---- ## Quadrantenmodell ***  ---- ## Quadrantenmodell ***  ---- ## Quadrantenmodell ***  ---- ## Quadrantenmodell ***  ---- ## Quadrantenmodell ***  --- ## Quadrantenmodell ***  --- ## Orientierungshilfe # (Inter-)Nationale Standards *** * ISO 25010 * HERMES * IEEE 829 Note: * ISO 25010 * Definiert Qualitätsmerkmale (Functional / Performance / Compatibility / Usability / Reliability / Security / Maintainability / Portability) * Hermes * Liefert eine Vorlage für ein Testkonzept * Abschnitte entfernen / hinzufügen * IEEE 829 * Was sollte beinhaltet sein ---- ## Standards # Verwendung *** * Nicht 1:1 übernehmen * Was ist relevant? --- ## Das Fundament # Testpyramide *** ### Masse **mit** Klasse ---- # Testpyramide ***  ---- # Testpyramide ***  Note: * Unittests als starke basis * Schnell * Immer wieder ausführbar * Keine Abhängigkeiten ---- # Testpyramide ***  ---- # Testpyramide ***  --- # Testpyramide ***  --- ## Testinhalt # Testfälle *** ### Woher kommen die Testfälle? Note: * Anforderungen * Pflichtenheft * UserStories ---- ## Testinhalt # Anforderungen ***
### Wozu brauchen wir Anforderungen? ### Wer definiert diese?

---- ## Testinhalt # Anforderungen ***  Note: * Wer sind die Personen am Bettrand? * Wir sollten bauen, was der Kunde will. Und um dieses Ziel zu erreichen, kann es sich lohnen, sich in seine Lage zu versetzen: * Comic: Der Entwickler hat mehr Freude an den Spielsachen als der Kunde... ...der nur den Arsch der Figuren sieht. * Ergo: vergesst den Kunden nicht! ---- ## Testinhalt # Anforderungen ***  ---- ## Testinhalt # Anforderungen ***

### Bowlingcounter Sucht die Anforderungen an einen Bowlingcounter
Note: * 10' Gruppenarbeit * Mehrere Personen mit Namen erfassen * Korrektes berechnen der Punktzahl * Es bleiben Pins stehen * Strike * Spare * Bestimmen des Siegers * A01-01-Anforderungen.pdf --- ## Anforderungen # Abweichungen ***  Note: Wie wird eine Abweichung genannt? --- # Fehlerklassifizierung *** * Wieso ist der Fehler aufgetreten? * Wie schlimm ist der Fehler? Note: * Ursache / Einstufung / Klassifizierung / Anforderungsfehler * Abschätzen wie schlimm ein Fehler wirklich ist * Dringlichkeit * Wie schnell muss ein Fehler behoben werden * Wie schnell KANN ein Fehler behoben werden * https://de.wikipedia.org/wiki/Fehlerklassifizierung ---- # Klassifizierung ***  Note: Gruppenarbeit ---- ## Klassifizierung # Fehlerursache *** * Versehentlich * Mutwillig ---- ## Klassifizierung # Anforderungsfehler *** * Kritische Anforderung * Normale Anforderung ---- ## Klassifizierung # Einstufung *** * fehlerfrei * belanglos * leicht * schwer * kritisch Note: * Fehlerfrei: Gemäss den Anfroderungen * belanglos: Brauchbar, jedoch sollten keine Mängel vorkommen * leicht: Brauchbar jedoch beeinträchtigt * schwer: Verwendbar, jedoch stark eingeschränkt * kritisch: Wesentliche Funktionen fehlen oder sind fehlerhaft ---- ## Klassifizierung # Gewichtung *** * Feststellbarkeit * Ort * Auftretenshäufigkeit * Kundenreaktion * Beseitigungsaufwand * Fertigungstermin --- ## Testkonzept # Ziel *** * Was soll erreicht/getestet werden * Fokus * Prioritäten Note: * Dokumente * Schnittstellen * Fachbereich * Spezifisches Feature * Architektur ---- ## Ziel # Was getestet wird *** * Datenaustausch * Oberfläche * Validierungen * Rechtschreibung * ... * Architektur Note: * Fokus * ---- ## Ziel # Was NICHT getestet wird *** * Klar benennen * Begründen Note: * Allenfalls in der Regression * Wird von anderem getestet * Aufwand / Ertrag stimmt nicht * Abgrenzen -> Kommt nachher * Umfang * ---- ## Ziel # Prioritäten *** * Was ist das wichtigste * Was kann allenfalls weggelassen werden Note: * Ablauf * Planung * Kapazität ---- ## Ziel # Abgrenzen *** * Was wird mitgetestet * Externe Services * Was ist out of Scope * Testservices Note: * Sytemgrenzen --- ## Testkonzept # Testumgebung / -infrastruktur ***
### Testumgebung 
### Testinfrastruktur 
Note: --> (01-02-system.adoc) * Gruppenarbeit 10' * Zusammentragen 5' --- ## Testkonzept # Testumgebung *** * OS * Server * Client * Hilfsmittel * HW Note: * OS * Appserver * DB * Eingesetzte Hilfsmittel: * Browser * PDF-Viewer... * Wichtig für Reproduzierbarkeit ---- ## Umgebung # OS *** * Linux / Windows / Mac / Android * Versionen ---- ## Umgebung # Server *** * Appserver * DB Note: * Appserver * DB * mysql * mariadb * oracle * db2 ---- ## Umgebung # Hardware *** * Architektur * Platform * Leistungsmerkmale Note: * 32Bit / 64Bit? * ARM / X86 * CPU * RAM ---- ## Umgebung # Hilfsmittel *** * Framework (.NET / Java / Python / ...) * Browser (FF / Chrome / ...) * Textverarbeitung Note: * Alles was mit dem Test zu tun hat * Laufzeitumgebung * Testtools --- ## Testkonzept # Testinfrastruktur *** * Topologie * Netzwerk * FS Note: * Topologie * Entwicklerpc (localhost) * Dockericed * Dedicated Network/PC * Massive used Network ---- ## Testinfrastruktur # Toplogie *** * Entwickler-/ Test-PC * Dockerisiert * Dedizierte Server ---- ## Testinfrastruktur # Netzwerk *** * Localhost * Dediziertes Testnetzwerk * Standardnetzwerk ---- ## Testinfrastruktur # Filesystems *** * Lokal (NTFS,EXT,FAT,...) * Remote (NFS,CIFS,...) * Inhouse * Extern Note: * Limitierungen (Grössen) * Geschwindigkeit * ---- ## Testinfrastruktur # Testdaten *** * Bestehendes Datenset * Abzug aus der Prod * Testdaten selbst aufbauen * Erfassen mittels Applikation * Generieren Note: * Bestehende Daten * Anpassen an neue Testfälle * Anpassen wenn Anforderungen ändern * Folgetests -> Rücksetzen * Abzug aus Prod * Rechtliche Probleme? * Prod-Daten im eigenen "Haus" * Personendaten? -> Security * Autom. aufbauen * Können von realität abweichen * Stabil * Nach dem Test löschen(bar) --- ## Testkonzept # Planung *** * Wann * Wo * Was * Wer Note: * Testkonzept gibt diese Punkte vor * Planbar * Wann soll z.B. ein DoD gemacht werden? * Auf welcher Infra sollen welche Tests durchgeführt werden * Gewisse Tests nur in DEV möglich... --- ## Testkonzept # Rollen *** * Zuständigkeit * Verantwortung * Kompetenzen Note: * Ohne zuständigkeiten * Anarchie ---- ## Rollen # Klassische Rollen *** * Tester * Testmanager * Testautomatisierer * Entwickler * Kunde Note: * Wer macht was? * Es müssen nicht alle Rollen vorkommen --- ## Testkonzept # Testfall ***  Note: * Gruppenarbeit 10' -> Besprechen 5' * Was gehört zu einem Testfall * Und warum? ---- ## Testkonzept # Testfall *** * Testfall / ID * Beschreibung * Voraussetzung * Schritte * Erwatetes Ergebnis Note: * Notwendig für Aussagekraft * Ermöglicht Durchführung * Beschreibung * Was wird getestet -> Sinn des Tests * Voraussetzung * Was muss vorhanden sein * Was muss funktionieren * Schritte * Testschritte * Erwartetes Ergebnis * Verifikation --- ## Testkonzept # Was gehört rein? *** * Warum getestet wird * Was wird getestet * Wann getestet wird * Teststufen / Quadranten * Testfälle * Womit wird getestet? * Fehlerklassifizierung * Auswirkungen Note: * Waum: Ziel * Was: Welche Systeme, Module oder Komponenten / Abgrenzungen: Was wird explizit nicht getestet. * Wann: Planung * Teststufen: Black-Box, White-Box, Exploratives Testen / Auswahl und Begründung der Testarten (Unit-, Integrations-, System-, Akzeptanztest) / Welche Quadranten * Testumgebung * Testinfrastruktur * Womit: Mitarbeiter, Testwerkzeuge, Zeitrahmen * Rollen * Testfall --- # Testkonzept ***

### Bowlingcounter (Anforderungen) * Mehrere Personen mit Namen erfassen * Korrektes berechnen der Punktzahl * Es bleiben Pins stehen * Strike * Spare * Bestimmen des Siegers * ...
Note: * Aufgabe ein Testkonzept zu erstellen siehe Hermes: https://www.hermes.admin.ch/de/projektmanagement/anwenden/szenarien/it-infrastruktur/ergebnisse/testkonzept.html https://d1n2cq0xpqnd68.cloudfront.net/c625a7dfb06a74dd8d1144c5ed582c066e8aef45/testkonzept.dotx ---