diff --git a/Lerntagebuch.md b/Lerntagebuch.md index f7f022d..ca56b84 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -562,154 +562,158 @@ #### Testen von Software #### Motivation - *Menschen machen Fehler - *Fehler führen zum enerwünschten Verhalten von Software - *unerwünschtes Verhalten von Software ist teuer sowohl materiell als auch ideel +* Menschen machen Fehler +* Fehler führen zum enerwünschten Verhalten von Software +* unerwünschtes Verhalten von Software ist teuer sowohl materiell als auch ideel #### Grundlagen - *Qualitätssicherung QS unterschiedliche Ansätze und Maßnahmen - *Testmanagement (Konzeptionierung, Planung, Schätzung, Überwachung usw.) - *Testumgebung (technisch-organisatorische Infrastruktur, die zum Testen benötigt wird. - *Test (ein methodischer Versuch, mit dem festgestellt werden soll, ob Eigenschaften einer Sache den Erwartungen entsprechen. - *Prufen (Feststellen inwieweit ein Prüfobjekt eine Forderung erfüllt) - *Software (Code, fertiges Programm) +* Qualitätssicherung QS unterschiedliche Ansätze und Maßnahmen +* Testmanagement (Konzeptionierung, Planung, Schätzung, Überwachung usw.) +* Testumgebung (technisch-organisatorische Infrastruktur, die zum Testen benötigt wird. +* Test (ein methodischer Versuch, mit dem festgestellt werden soll, ob Eigenschaften einer Sache den Erwartungen entsprechen. +* Prufen (Feststellen inwieweit ein Prüfobjekt eine Forderung erfüllt) +* Software (Code, fertiges Programm) #### Fehler oder Feature? - *ein nicht den Anforderungen entsprechendes Verhalten - *ohne Anforderungen gibt es keine Fehler, nur Überraschungen +* ein nicht den Anforderungen entsprechendes Verhalten +* ohne Anforderungen gibt es keine Fehler, nur Überraschungen #### Ereigniskete - *Error (Person macht Fehler beim Schreiben von Code - *Defect (Defekt - Fehlerstelle im Code) - *Failure das nicht den Anforderungen entsprechendes Verhalten (Fehlverhalten -> Runtime Error +* Error (Person macht Fehler beim Schreiben von Code +* Defect (Defekt - Fehlerstelle im Code) +* Failure das nicht den Anforderungen entsprechendes Verhalten (Fehlverhalten -> Runtime Error #### Fehlerauftreten -##### Akuter: bei normaler Programmausführung - direkter Verstoss gegen die Anforderungen +##### Akuter: +* bei normaler Programmausführung +* direkter Verstoss gegen die Anforderungen ##### Latenter - *Fehler tritt auf, wenn Daten nicht wie erwartet sind - *bestehn alle Arten von Tests - *üblicherweise durch Anwender aufgedeckt +* Fehler tritt auf, wenn Daten nicht wie erwartet sind +* bestehn alle Arten von Tests +* üblicherweise durch Anwender aufgedeckt ##### maskierter - *wird von anderen Fehler verdeckt (meist von latenten Fehler) - *ert auffindbar, wenn andere Fehler beseitigt sind - *kein Einfluss auf Funktionalität +* wird von anderen Fehler verdeckt (meist von latenten Fehler) +* ert auffindbar, wenn andere Fehler beseitigt sind +* kein Einfluss auf Funktionalität ##### kaskadierter - *Fehler an anderer Stelle verursacht Folgefehler - *kein Fehler im eigentlichen Sinne (Anforderungen) +* Fehler an anderer Stelle verursacht Folgefehler +* kein Fehler im eigentlichen Sinne (Anforderungen) #### Arten von Defekten - *lexigraphisch (compiler reagiert darauf) - *syntaktisch () - *semantisch (Verfügbarkeit der Variablen nicht gegeben, weil sid woanders definert war) - *logisch (die Abarbeitungslogik falsch) - *Design (Entwurfsmuster ist falsch) - *Arbeitsablaufs- Design +* lexigraphisch (compiler reagiert darauf) +* syntaktisch () +* semantisch (Verfügbarkeit der Variablen nicht gegeben, weil sid woanders definert war) +* logisch (die Abarbeitungslogik falsch) +* Design (Entwurfsmuster ist falsch) +* Arbeitsablaufs- Design #### TESTMETHODOLOGIE ##### Arten von Tests - *manuell - *statische Codeanalyse (Analyse des Quellcodes, Formatierung, Entwurfsmuste usw.) - *automatisiert - *dynsmische Tests +* manuell +* statische Codeanalyse (Analyse des Quellcodes, Formatierung, Entwurfsmuste usw.) +* automatisiert +* dynsmische Tests - die kann man alle miteinander kreuzen +*die kann man alle miteinander kreuzen ##### Bestandteile eines Tests - *Stichprobe - **Testfälle - **Testdaten - *Testobjekt (Der Bereich, der auch tatsächlich getestet werden soll) - *Testumgebung - *Testziel - *Soll- /Ist- Wertvergleich +* Stichprobe +** Testfälle +** Testdaten +* Testobjekt (Der Bereich, der auch tatsächlich getestet werden soll) +* Testumgebung +* Testziel +* Soll- /Ist- Wertvergleich ##### Testziele - *Fehler aufzeigen - *Qualität erfassen - *Vertrauen erhöhen - *Grenzen ermitteln +* Fehler aufzeigen +* Qualität erfassen +* Vertrauen erhöhen +* Grenzen ermitteln ##### Testebenen - *Anwendung/System (kein weiteres Tool erforderlich) - *Teilsystem/Modul (erhöhtes tooling Aufwand) - *Codeebene/Unit (die kleinste Einheiten; wie groß die Units sein sollen ist unterschiedlich. - - *die Ebenen sind untereinander nicht austauschbar +* Anwendung/System (kein weiteres Tool erforderlich) +* Teilsystem/Modul (erhöhtes tooling Aufwand) +* Codeebene/Unit (die kleinste Einheiten; wie groß die Units sein sollen ist unterschiedli +* die Ebenen sind untereinander nicht austauschbar ##### Testpyramide (Darstellung tendeziell) - *sihe Bild im Script - *je weiter nach oben desto langsamer und unspezifischer sind die Tests - *allg. bezieht sich die Pyramide auf die automatisierte Tests +* sihe Bild im Script +* je weiter nach oben desto langsamer und unspezifischer sind die Tests +* allg. bezieht sich die Pyramide auf die automatisierte Tests ##### Testnamen (Tests werden benannt nach: - *Ziel - *Methode (Integration, Lasttest) - *Testgegenstand (UI, Module, Unit) - *Level (System) - *Personen (Entwickler-, Anwedertests) - *Testabdeckung (Komplettstest, partieller Test) +* Ziel +* Methode (Integration, Lasttest) +* Testgegenstand (UI, Module, Unit) +* Level (System) +* Personen (Entwickler-, Anwedertests) +* Testabdeckung (Komplettstest, partieller Test) ##### Qualitätskosten - *sihe Bild im Script +* sihe Bild im Script ##### Testprozess - *besteht aus versch. Schritten - **Planung - **Cases development - **Test execution - **Defect tracking - **Analyse +* besteht aus versch. Schritten +** Planung +** Cases development +** Test execution +** Defect tracking +** Analyse ##### Planung - *Testplan IEE829 - **Testziel - **Ressoursen - **Teststrategie - ***Prioritäten - ***Entwurfsmethode - ***Testabdeckung - ***Testendekriterium - ***Testumgebung +* Testplan IEE829 +** Testziel +** Ressoursen +** Teststrategie +* Prioritäten +* Entwurfsmethode +* Testabdeckung +* Testendekriterium +* Testumgebung ##### Analyse & Design - *basiert auf Anforderungsdokumentation - *Testspezifikation - *Testfälle - **Kritikalität - **Testdaten - **Testumgebung - *Ausführungsreihenfolge - *Infrastruktur - *Testkriterium +* basiert auf Anforderungsdokumentation +* Testspezifikation +* Testfälle +** Kritikalität +** Testdaten +** Testumgebung +* Ausführungsreihenfolge +* Infrastruktur +* Testkriterium ##### Testausführung - *Testlog - **aufgetretenes Fehlverhalten - **Fehlerkategorie (high/medium/low) +* Testlog +** aufgetretenes Fehlverhalten +** Fehlerkategorie (high/medium/low) ##### Testnachbereitung - *Testreport - *Zusammenfassung Testausführungen - *Vergleich mit früheren Testläufen - *Entscheidung über Liefergähigkeit +* Testreport +* Zusammenfassung Testausführungen +* Vergleich mit früheren Testläufen +* Entscheidung über Liefergähigkeit #### Psychologische Aspekte - *Menschen mache Fehler - *niemand gibt gern Fehler zu +* Menschen mache Fehler +* niemand gibt gern Fehler zu #### Lösung - *gegenseitiges Testen - *formalisiete Fehlerberichte (klare Kriterien festgelegt und keiner fühlt sich angegriffen) +* gegenseitiges Testen +* formalisiete Fehlerberichte (klare Kriterien festgelegt und keiner fühlt sich angegriffen) ### Erkenntnis + +* Wir haben die Gründe für Testen und die Fehlerarten kennengelernt. Dann haben wir die Metodologie kennengelertn wie man am besten, am effizientesten testet und zu einem gewünschten Ergebnis die Tests führt. Am Ende wurde noch die psychologische Aspekte angesprochen und wie man am besten in einem Team die Tests durchführt, ohne die potenzielle Konflikte ins Leben zu rufen. + ### Kritik + ### Mitteilung an die Dozierenden