### Softwaretesting ![Testing](https://i.imgur.com/iBIhD9E.jpg) --- ### Agenda - Ziel von Softwaretests - euer Unternehmen - Testmethoden: - Blackbox-Test - Whitebox-Test - Testlevel: - Unit-Tests - Integrationstest - Systemtests - Akzeptanztests - Wie funktioniert Unit Testing? --- ### Ziele von Softwaretests - So viele Fehler oder Bugs wie möglich zu finden<!-- .element: class="fragment" data-fragment-index="1" --> - Stimmt das Produkt mit den vereinbarten Spezifikationen überein<!-- .element: class="fragment" data-fragment-index="2" --> **(Validation)**<!-- .element: class="fragment" data-fragment-index="2" --> - Sicherstellen der Softwarequalität bei minimalen Kosten und Arbeitseinsatz<!-- .element: class="fragment" data-fragment-index="3" --> **(Verification)**<!-- .element: class="fragment" data-fragment-index="3" --> --- ### Q/A - Zu welchem Zeitpunkt sollte man testen? <!-- .element: class="fragment" data-fragment-index="1" --> - Welche automatisierten Testvorgänge kennt ihr aus eurem Unternehmen? <!-- .element: class="fragment" data-fragment-index="2" --> --- ### Der Testing Mythos :::info Es braucht Zeit, und ich bin immer überlastet Mein Code ist grundsolide! Ich brauche keine Unit-Tests. ::: Diese Annahmen führen zu folgendem Teufelskreis ![Teufelskreis](https://i.imgur.com/ldQVCUD.png =x350) --- ### SDLC (Software Development Lifecycle): In the good old days ![Waterfall](https://i.imgur.com/05mLnRY.png =x500) --- ### SDLC nach Scrum: Der Prozess ![Prozess](https://i.imgur.com/kFWlaS7.png) --- ### 6 Phasen des SDLC ![Phases](https://kruschecompany.com/wp-content/uploads/2021/08/Phases-of-the-software-development-life-cycle-infographic-1-1.png) --- ### SDLC nach Scrum: Das Produkt ![Produkt](https://i.imgur.com/llkV4wp.png) --- ## Testmethoden ---- ### Blackbox-Test ![Blackbox](https://i.imgur.com/DFLLUW1.png =x300) - Von Außen sichtbares Verhalten wird getestet - Spezifizierung von Testfällen mit hoher Fehlerwahrscheinlichkeit - Nur Teile werden geprüft ---- ### Whitebox-Test ![Whitebox](https://i.imgur.com/6zkjepI.jpg =x300) - Interne Struktur wird getestet - Zusammenhängende Komponenten werden getestet --- ### Testlevel ![Testlevel](https://i.imgur.com/rA3ER19.png) ---- ### Unit-Tests - Teilkomponenten oder Module werden geprüft - Testroutine zur Fehlerüberprüfung - Kann bereits früh eingesetzt werden - Trennung von Source- und Testcode ---- ### Integration-Tests - Abhängigkeiten von Komponenten werden getestet - Testen von z.B. Schnittstellen oder Variablenübergabe - Aufdecken von Kommunikationsfehlern ![Integration Test](https://i.imgur.com/mUmF36o.gif) ---- ### Unterschied zwischen Unit Testing und Integrationstest | **Unit Testing** | **Integrationstests** | | --- | --- | | Wird in der Anfangsphase des Tests durchgeführt und kann dann jederzeit durchgeführt werden | Muss nach dem Unit-Test und vor dem Systemtest durchgeführt werden | | Testet die einzelne Komponente des gesamten Systems, d. H. Testet eine Einheit isoliert. | Testet die Systemkomponenten, die zusammenarbeiten, d. H. Testet die Zusammenarbeit mehrerer Einheiten. | | Schneller auszuführen | Kann langsam laufen | | Keine externe Abhängigkeit. Jede externe Abhängigkeit wird verspottet oder ausgeblendet. | Erfordert die Interaktion mit externen Abhängigkeiten (z. B. Datenbank, Hardware usw.) | | Einfach | Komplex | | Vom Entwickler durchgeführt | Vom Tester durchgeführt | | Es ist eine Art White-Box-Test | Es ist eine Art Black-Box-Test | | Günstige Wartung | Teure Wartung | | Beginnt mit der Modulspezifikation | Beginnt mit der Schnittstellenspezifikation | | Unit-Tests haben einen engen Umfang, da nur geprüft wird, ob jeder kleine Code das tut, was er tun soll. | Es hat einen größeren Anwendungsbereich, da es die gesamte Anwendung abdeckt | | Das Ergebnis von Unit-Tests ist eine detaillierte Sichtbarkeit des Codes | Das Ergebnis von Integrationstests ist die detaillierte Sichtbarkeit der Integrationsstruktur | | Decken Sie die Probleme nur innerhalb der Funktionalität einzelner Module auf. Zeigt keine Integrationsfehler oder systemweite Probleme an. | Decken Sie die Fehler auf, die auftreten, wenn verschiedene Module miteinander interagieren, um das Gesamtsystem zu bilden | --- ### System-Tests - Sind alle Anforderungen enthalten (Pflichten/Lastenheft) - Testumgebung (Produktivumgebung nachempfunden ) - Test auf funktionale und nicht-funktionale Anforderungen - Dokumentationsphase ---- ### Unterschied zwischen Systemtest und Integrationstest | NR. | VERGLEICH | SYSTEMTEST | INTEGRATIONSTESTS | | --- | --- | --- | --- | | 1. | Basic | Testet das fertige Produkt. | Validiert die Sammlungs- und Schnittstellenmodule. | | 2. | Aufgeführt | Nach dem Integrationstest | Nach Unit-Tests | | 3. | Erfordert | Verständnis der internen Struktur und der Programmiersprache. | Kenntnis von nur miteinander verketteten Modulen und deren Zusammenspiel. | | 4. | Betonung | Auf das Verhalten aller Module als Ganzes. | Systemfunktionalitäten Schnittstelle zwischen einzelnen Modulen. | | 5. | Abdeckungen | Sowohl funktionale als auch nicht-funktionale Tests. | Nur Funktionstest. | | 6. | Testfälle | Erstellt, um reale Szenarien nachzuahmen. | Erstellen, um die Interaktion zwischen zwei Modulen zu simulieren. | | 7. | Ansätze | Urknall, inkrementell und funktional. | Sanity, Regression, Usability, Retesting, Maintenance und Performance Tests. | | 8. | Hingerichtet | Nur von Testingenieuren. | Sowohl von Testingenieuren als auch von Entwicklern. | --- ### Acceptance Tests / End-User-Tests - Abnahme durch den Kunden - Meist intuitives Vorgehen - Oft mit Live-Daten --- ### Wie funktioniert Unit Testing? https://www.digitalocean.com/community/tutorials/how-to-use-unittest-to-write-a-test-case-for-a-function-in-python https://github.com/PhatSriwichai/python-unittest-example https://www.guru99.com/unit-testing-guide.html
{"metaMigratedAt":"2023-06-16T20:21:32.608Z","metaMigratedFrom":"YAML","title":"Softwaretesting","breaks":false,"contributors":"[{\"id\":\"d8f98243-781c-4c2c-afc2-a8c1aa014f55\",\"add\":3078,\"del\":242},{\"id\":\"5ce5afcd-f1ce-4f26-840f-19790f04e2f2\",\"add\":16,\"del\":0},{\"id\":\"2906fc5e-2561-4f47-8469-4bba9ad6f26a\",\"add\":3290,\"del\":122}]"}
    316 views
   Owned this note