From fef45678dce13895ec0dee669b94aed233bdf11f Mon Sep 17 00:00:00 2001 From: David Schirrmeister Date: Mon, 7 Apr 2025 13:03:46 +0200 Subject: [PATCH] update --- Writerside/images/image_555.png | Bin 0 -> 35363 bytes .../01_ImplementingForMaintainability.md | 38 ++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Writerside/images/image_555.png diff --git a/Writerside/images/image_555.png b/Writerside/images/image_555.png new file mode 100644 index 0000000000000000000000000000000000000000..6192137fd5c686f2ef97020e176edd3649933784 GIT binary patch literal 35363 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

;HJ4uSnm_G-{#Nr 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 literal 0 HcmV?d00001 diff --git a/Writerside/topics/04/Software Engineering/01_ImplementingForMaintainability.md b/Writerside/topics/04/Software Engineering/01_ImplementingForMaintainability.md index e69de29..81cf52d 100644 --- a/Writerside/topics/04/Software Engineering/01_ImplementingForMaintainability.md +++ b/Writerside/topics/04/Software Engineering/01_ImplementingForMaintainability.md @@ -0,0 +1,38 @@ +# Implementing for Maintainability +## Motivation and Introduction + +- Unit und Integration Testing ist ein bekannter Ansatz um Qualität sicherzustellen +- Gut-getestete Anwendungen: + - 1 line of code = 1-3 lines of test code + - kann auf bis zu 1:10 hochgehen +- Produkt- und Testcode werden parallel geschrieben +- guten Code schreiben ist schwer + +## Black-/White-Box Testing +![image_555.png](image_555.png) +### Black-Box-Testing +> Nur das Interface ist bekannt, nicht der Inhalt + +- Methode vom Software-Testing, das die Funktion analysiert, ohne den Mechanismus zu kennen +- Normalerweise rund um die Spezifikationen und Anforderungen + - _Was soll die Anwendung tun, nicht wie tut sie es_ + +### White-Box-Testing +> Das Interface und alle Mechanismen sind bekannt +- Testmethodik, die verifiziert, wie die Anwendung arbeitet +- Tests sind am Sourcecode ausgerichtet, nicht an den Anforderungen + +### Pros / Cons +- [White-Box-Testing](01_ImplementingForMaintainability.md#white-box-testing) ist systematischer und anspruchsvoller + - Analyse des Codes kann zu Fehlerentdeckungen führen, die zuvor übersehen wurden + - Testergebnisse sind oft spröde + - Sind sehr verknüpft mit der Implementierung des Codes + - Solche Tests produzieren viele false-positives und sind nicht gut für die Metrik der Resistenz gegen Refactoring + - Können häufig nicht rückgeschlossen werden zu einem Verhalten, dass wichtig ist für eine Business-Person + - Starkes Zeichen, dass die Tests nicht viel Wert hinzufügen +- [Black-Box-Testing](01_ImplementingForMaintainability.md#black-box-testing) hat gegensätzliche Vor-/Nachteile + +> Black-/White-Box-Testing sind Konzepte, die auf verschiedene Test-Typen angewendet werden können + + +## \ No newline at end of file