.. _releaseProcessGovWay_staticCodeAnalysis:
Static Code Analysis
~~~~~~~~~~~~~~~~~~~~~~~
In questa fase vengono identificate possibili vulnerabilità all'interno del codice sorgente cercando pattern riconducibili a bug improbabili da individuare tramite test dinamici (:ref:`releaseProcessGovWay_dynamicAnalysis`).
L'analisi viene effettuata tramite l'utilizzo dei seguenti tool:
- `SpotBugs `_
- `SonarQube `_
Il tool *SpotBugs* viene utilizzato fin dalle fasi di sviluppo dai programmatori tramite il `plugin per Eclipse `_ come descritto nella sezione :ref:`releaseProcessGovWay_staticCodeAnalysis_spotbugs_eclipse`.
Dopo aver lavorato su un branch dedicato alla realizzazione di una nuova funzionalità o di un bug fix, prima di riportare il lavoro sul `branch 3.4.x dei sorgenti del progetto `_ i sorgenti soggetti a modifica vengono verificati anche tramite il tool *SonarQube* (:ref:`releaseProcessGovWay_staticCodeAnalysis_sonarqube_eclipse`).
Ad ogni commit sul `branch 3.4.x dei sorgenti del progetto `_ viene effettuata automaticamente una verifica dei sorgenti nell'ambiente di `Continuous Integration Jenkins di GovWay `_ utilizzando entrambi i tools. Maggiori dettagli vengono forniti nelle sezioni :ref:`releaseProcessGovWay_staticCodeAnalysis_spotbugs_ci` e :ref:`releaseProcessGovWay_staticCodeAnalysis_sonarqube_ci`.
Infine effettuato il checkout dei `sorgenti del progetto GovWay `_, è sempre possibile avviare manualmente una analisi statica tramite uno dei tool seguendo le indicazioni fornite nelle sezioni :ref:`releaseProcessGovWay_staticCodeAnalysis_spotbugs_maven` e :ref:`releaseProcessGovWay_staticCodeAnalysis_sonarqube_maven`.
.. note::
I problemi di sicurezza relativi alle librerie terza parte utilizzate sono trattati separatamente con il lavoro di analisi descritto nella sezione :ref:`releaseProcessGovWay_thirdPartyDynamicAnalysis` e di conseguenza il codice sorgente di tali librerie è escluso dall'analisi del codice statico.
.. toctree::
:maxdepth: 2
src/index
spotbugs/index
sonarqube/index