Guida all'avvio rapido dei prodotti di Polyspace Server e Access
Per evitare di individuare bug in una fase avanzata del processo di sviluppo, eseguire un'analisi statica utilizzando i prodotti di Polyspace®.
Polyspace Bug Finder™ controlla il codice C/C++ per individuare eventuali bug, violazioni degli standard di codifica, vulnerabilità di sicurezza e altri problemi.
Polyspace Code Prover™ esegue controlli esaustivi per divisione per zero, overflow, accesso agli array fuori dai limiti e altri tipi comuni di errori di runtime.
Vedere anche Differenze tra Polyspace Bug Finder e Polyspace Code Prover.
Se si eseguono regolarmente i checker di Polyspace nell'ambito dell'integrazione continua, è possibile proteggersi da regressioni dovute a check-in del nuovo codice. Per eseguire Polyspace su un server durante l'integrazione continua, utilizzare Polyspace Bug Finder Server e Polyspace Code Prover Server. Per ospitare i risultati di analisi Polyspace, utilizzare Polyspace Access.
Un tipico workflow è rappresentato in questa figura.
Installazione
Prerequisiti
In base alle esigenze del progetto, del team o dell'organizzazione, è stato deciso di ottenere un certo numero di licenze dei prodotti di Polyspace Server e Polyspace Access. Questa guida aiuta a installare le istanze individuali di questi prodotti su una macchina.
Installazione di Polyspace Server
Per installare i prodotti di Polyspace Server, scaricare ed eseguire il programma di installazione di MathWorks. Inserire una licenza per i prodotti di Polyspace Server (oppure richiedere una licenza di prova). Vedere anche Request a Trial License (Richiedere una licenza di prova). I prodotti di Polyspace Server sono installati in una cartella separata dagli altri prodotti di MathWorks®. Vedere anche Install Polyspace Server and Access Products.
Installazione di Polyspace Access
Prima di installare Polyspace Access, considerare il numero di utenti che potrebbero visualizzare simultaneamente i risultati di Polyspace. I requisiti di sistema dipendono dal numero di revisori simultanei. Vedere anche System Requirements for Polyspace Access (Polyspace Access).
Polyspace Access è costituito da diversi servizi: un gestore utenti per autenticare gli accessi degli utenti, un sistema di tracciamento dei problemi per integrare lo strumento di tracking dei bug con Polyspace, un database per gestire i risultati, un server web per visualizzare i risultati e un gateway per gestire le comunicazioni. I servizi sono distribuiti in container Docker. È possibile avviare i servizi da un'interfaccia comune denominata Cluster Admin.
Per installare Polyspace Access:
Scaricare il programma di installazione come file .zip.
Decomprimere il file e avviare Cluster Admin. Avviare i vari servizi dall'interfaccia Cluster Admin. Vedere Installazione di Polyspace Access per le revisioni web.
Dopo l'installazione, per visualizzare i risultati caricati, l'utente e gli altri revisori possono accedere a:
https://<hostName>:<portNumber>/metrics/index.html
hostName
e portNumber
sono rispettivamente il nome host della macchina server su cui è installato Polyspace Access e la porta utilizzata da Polyspace Access per comunicare con le macchine client. Ad esempio, example-server.com:9443
. Nel caso in cui il nome hoste e il numero di porta non siano noti, contattare l'amministratore di Polyspace Access.Installazione di Network License Manager
Sia Polyspace Server che Polyspace Access utilizzano licenze che richiedono la comunicazione con un Network License Manager per l'acquisizione delle licenze.
Per installare, configurare e avviare il Network License Manager per Polyspace Server, vedere Amministrazione delle licenze Network.
Per installare, configurare e avviare il Network License Manager per Polyspace Access, vedere Gestire le licenze NNU di Polyspace.
Impostazione dell'analisi Polyspace
Prerequisiti
L'utente o il reparto IT dell'organizzazione deve installare il numero richiesto di istanze di Polyspace Server e Polyspace Access. Questa guida consente di impostare un'analisi Polyspace come parte dell'integrazione continua utilizzando una singola istanza di Polyspace Server e Polyspace Access.
Per controllare che le installazioni di Polyspace Server e Polyspace Access possano comunicare tra loro, vedere Check Polyspace Installation.
Esecuzione di Polyspace Server e caricamento dei risultati su Polyspace Access
È possibile eseguire i prodotti di Polyspace Server dalla riga di comando del sistema operativo:
Per eseguire l'analisi, utilizzare i file eseguibili
polyspace-bug-finder-server
epolyspace-code-prover-server
(Polyspace Code Prover).Per caricare i risultati di analisi, utilizzare il comando
polyspace-access -upload
(Polyspace Access). È inoltre possibile utilizzare il comandopolyspace-access -export
(Polyspace Access) per esportare i risultati da Polyspace Access come file di testo per l'archiviazione o come allegati e-mail.
È possibile eseguire tutti i file eseguibili Polyspace dalla sottocartella polyspace/bin
della cartella di installazione di Polyspace (ad esempio, /usr/local/Polyspace Server/R2025a
, vedere anche Installation Folder). Per avviare l'esecuzione di Polyspace Server utilizzando i file sorgente C di esempio e gli script di esempio, vedere:
È inoltre possibile preconfigurare le opzioni di analisi Polyspace dal comando di build (makefile), quindi aggiungere un secondo file di opzioni con specifiche di analisi quali i checker. Vedere Create Polyspace Analysis Configuration from Build Command (Makefile).
Se si dispone di un'installazione dei prodotti desktop di Polyspace, è possibile preparare la configurazione dell'analisi nell'interfaccia utente dei prodotti desktop. È quindi possibile generare file di opzioni Polyspace da eseguire durante l'integrazione continua. Vedere Configure Polyspace Analysis Options in User Interface and Generate Scripts.
Inclusione delle esecuzioni di Polyspace nell'integrazione continua utilizzando strumenti quali Jenkins
Una volta che si dispone di script funzionanti per eseguire un'analisi Polyspace, è possibile eseguirli a intervalli predefiniti utilizzando strumenti di integrazione continua come Jenkins e Bamboo. In Jenkins, è possibile utilizzare un plugin Polyspace per puntare alle installazioni di Polyspace e inviare notifiche via e-mail agli sviluppatori dopo l'analisi, in base a criteri quali nuovi difetti.
Dall'interfaccia Jenkins, cercare e installare il plugin Polyspace. Per iniziare rapidamente a utilizzare il plugin Jenkins e gli script di esempio, vedere Polyspace plugin GitHub repository (repository GitHub del plugin Polyspace). Per il workflow completo con Jenkins, vedere Sample Scripts for Polyspace Analysis with Jenkins.
Creazione di un workflow per i revisori dei risultati
A seconda degli strumenti già in uso, è possibile impostare un workflow pratico per i revisori dei risultati. Ad esempio:
Ricevimento da parte dei revisori di avvisi sui nuovi risultati e accesso a Polyspace Access
Quando sono disponibili nuovi risultati, lo strumento di integrazione continua avvisa un gruppo di utenti. L'avviso via e-mail contiene l'URL di Polyspace Access del progetto in cui sono stati caricati i risultati.
Nell'interfaccia di Polyspace Access, un revisore può aprire l'URL del progetto, filtrare i risultati in base ai file e correggere i problemi o impostare uno stato per i risultati. Vedere anche:
Filter and Sort Results in Polyspace Access Web Interface (Polyspace Access)
Address Results in Polyspace Access Through Bug Fixes or Justifications (Polyspace Access)
Ricevimento da parte dei revisori di avvisi personalizzati via e-mail con risultati in allegato
Prima dell’upload su Polyspace Access, utilizzando il comando
polyspace-access -set-unassigned-findings
(Polyspace Access), lo strumento di integrazione continua (CI) assegna i proprietari ai nuovi risultati di analisi in base alla proprietà dei file o dei componenti o ad altri criteri.Dopo il caricamento, utilizzando il comando
polyspace-access -export
(Polyspace Access), lo strumento CI esporta i risultati di analisi per ciascun proprietario in un file di testo separato. Lo strumento invia quindi il file di testo al proprietario in allegato a un'e-mail. Il file di testo contiene i risultati con i relativi URL nell'interfaccia di Polyspace Access.Se si utilizza Jenkins come strumento CI, il plugin Polyspace in Jenkins supporta direttamente questo workflow. Vedere Sample Scripts for Polyspace Analysis with Jenkins.
Una volta ricevuta l'e-mail, il proprietario apre il file di testo allegato, copia l'URL di ciascun risultato nel browser web e revisiona il risultato.
Apertura di ticket da parte dei revisori dagli strumenti di tracking di bug
Un revisore, ad esempio un ingegnere della qualità, revisiona tutti i nuovi risultati e crea ticket JIRA per gli sviluppatori. Vedere Create Bug Tracking Tool Tickets from the Polyspace Access Web Interface (Polyspace Access).
Gli sviluppatori aprono ogni ticket JIRA e passano al risultato corrispondente Polyspace nell'interfaccia di Polyspace Access.