mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-25 16:55:39 +00:00
Translated and streamlines qs doc
This commit is contained in:
parent
d347cf121f
commit
a4ac6dd930
1 changed files with 8 additions and 42 deletions
50
docs/qs.md
50
docs/qs.md
|
|
@ -1,47 +1,13 @@
|
|||
# Qualitätssicherung
|
||||
# Quality Management
|
||||
|
||||
## Umgesetzte QS-Maßnahmen
|
||||
Some information on how we aim to ensure certain level of quality.
|
||||
|
||||
### Automatische Unit-Tests (Java-Code)
|
||||
## Measures
|
||||
|
||||
* Die korrekte Funktionsweise des Prüftools wird durch mehr als 60 Unit-Test überprüft.
|
||||
* Die Unit-Tests sind Teil des bereitgestellten Codes und werden durch den Maven-Build automatisch ausgeführt.
|
||||
* Die Unit-Tests decken alle grundsätzlichen Funktionen des Prüftools ab. Daneben wird das korrekte Verhalten der
|
||||
Anwendung bei verschiedenen Fehleingaben überprüft und nachgewiesen.
|
||||
* Die Testabdeckung (Coverage) liegt derzeit bei ca. 85% des Java-Codes.
|
||||
Diese Abdeckung wird mittels der Bibliothek jacoco automatisch ermittelt und zeigt, dass alle wesentlichen Funktionen
|
||||
durch Tests überprüft werden.
|
||||
Die verbleibenden 15% lassen sich fast ausschließlich auf Fehlerbedingungen (Exceptions) zurückführen,
|
||||
die in der Praxis auch bei Fehleingaben nicht auftreten können und entsprechend durch keine Unit-Tests durchlaufen
|
||||
werden.
|
||||
|
||||
### Automatische Code-Analyse (Java-Code)
|
||||
|
||||
* Der Quellcode wird dauerhaft und automatisch durch das weit verbreitete System [Sonar](https://www.sonarqube.org/) zur
|
||||
statischen Code-Analyse geprüft.
|
||||
* Das Prüftool wird von Sonar mit aktuell ca 1.800 Zeilen Quellcode als klein (S) eingestuft.
|
||||
* Es existieren aktuelle 7 "Code Smells" und 3 "False Positives".
|
||||
* Sämtliche „Code Smells“ sind auf nicht abgetestete Bedingungen (siehe oben) zurückzuführen.
|
||||
* Ein Beispiel für ein "False Positive" ist "Illegale Ausgabe auf STDout", was jedoch eine konkrete Anforderung an das
|
||||
Prüftool ist.
|
||||
* In den Aspekten "Reliability", "Security" und "Maintainability" wird der Quellcode jeweils mit dem bestmöglichen
|
||||
[Rating](https://docs.sonarqube.org/display/SONAR/Metric+Definitions) "A" bewertet.
|
||||
|
||||
### Berücksichtigung von Best Practices für XML-Security
|
||||
|
||||
* Es wurden explizit Best Practices für die sichere XML-Verarbeitung mit Java (XML, XML Schema, XSLT) berücksichtigt, um
|
||||
beispielsweise XXE (XML eXternal Entity) Attacken und allgemein externe Referenzierungen (Entities, XIncludes)
|
||||
auzuschließen.
|
||||
|
||||
### End-to-End-Testsuite für die Prüftool-Konfiguration XRechnung
|
||||
|
||||
* Um die korrekte Funktion der Prüftool-Konfiguration XRechnung zu testen, wurde eine Suite aus 10 Testdokumenten und
|
||||
insgesamt 310 prüfbaren Aussagen (Assertions) über die resultierenden Prüfberichte erstellt.
|
||||
* Durch diese Testsuite werden, ausgehend von dem Prüfbericht-Schemas alle möglichen Optionen und Auswahlmöglichkeiten
|
||||
mindestens je einmal positiv und einmal negativ getestet.
|
||||
* Diese Zusicherungen können vom Prüftool selbst mittels des Schalter `--implemenation-assertions` automatisch geprüft werden.
|
||||
* Zudem wird die Integrität aller erstellten Prüfberichte automatisch gegen das Schema (XML Schema und
|
||||
Schematron-Regeln) des Prüfberichts getestet.
|
||||
* Für weitere Details siehe [xrechnung/test/readme.txt](configurations/xrechnung/test/readme.txt).
|
||||
* We perform unit tests (see [source code](src/test/java/de/kosit/validationtool) )
|
||||
* We perform static code analysis using [Sonar](https://docs.sonarqube.org/display/SONAR/Metric+Definitions)
|
||||
|
||||
|
||||
## XML-Security Best Practices
|
||||
|
||||
* We follow the recommndations on best practices for JAVA XML to mitigate XML eXternal Entity (XXE) attacks and per default we do not allow external references on Entities and XIncludes
|
||||
Loading…
Add table
Add a link
Reference in a new issue