

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Test per le condutture CI/CD
<a name="tests-for-cicd-pipelines"></a>

I due tipi di test automatici a cui si fa comunemente riferimento nelle pipeline di distribuzione sono *i test unitari e i test* di *integrazione*. Tuttavia, esistono molti tipi di test che è possibile eseguire su una base di codice e nell'ambiente di sviluppo. L'[architettura di riferimento di AWS Deployment Pipeline](https://pipelines.devops.aws.dev/application-pipeline/) definisce i seguenti tipi di test:
+ **Test unitario**: questi test creano ed eseguono il codice dell'applicazione per verificare che funzioni in base alle aspettative. Simulano tutte le dipendenze esterne utilizzate nella codebase. [Esempi di strumenti di unit test includono [JUnit, [Jest](https://jestjs.io/)](https://junit.org/) e pytest.](https://docs.pytest.org/en/stable/)
+ **Test di integrazione**: questi test verificano che l'applicazione soddisfi i requisiti tecnici eseguendo test in un ambiente di test predisposto. [Esempi di strumenti di test di integrazione includono [Cucumber](https://cucumber.io/), [VRest NG](https://vrest.io/) e integ-tests (for).](https://docs.aws.amazon.com/cdk/api/v2/docs/integ-tests-alpha-readme.html) AWS CDK
+ **Test di accettazione**: questi test verificano che l'applicazione soddisfi i requisiti degli utenti eseguendo test in un ambiente di test predisposto. [Esempi di strumenti di test di accettazione includono [Cypress](https://cypress.io/) e Selenium.](https://selenium.dev/)
+ **Test sintetici**: questi test vengono eseguiti continuamente in background per generare traffico e verificare che il sistema sia integro. Esempi di strumenti di test sintetici includono [Amazon CloudWatch Synthetics [e](https://www.dynatrace.com/monitoring/platform/synthetic-monitoring/) Dynatrace](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) Synthetic Monitoring.
+ **Test delle prestazioni: questi test** simulano la capacità di produzione. Determinano se l'applicazione soddisfa i requisiti prestazionali e confrontano le metriche con le prestazioni precedenti. [Esempi di strumenti di test delle prestazioni includono [Apache JMeter](https://jmeter.apache.org/), [Locust](https://locust.io/) e Gatling.](https://gatling.io/)
+ **Test di resilienza**: noti anche come test del *caos, questi test* iniettano i guasti negli ambienti per identificare le aree a rischio. I periodi in cui i guasti vengono iniettati vengono quindi confrontati con i periodi senza errori. [Esempi di strumenti di test di resilienza includono e Gremlin. [AWS Fault Injection Service](https://aws.amazon.com/fis/)](https://www.gremlin.com/)
+ **Test statico di sicurezza delle applicazioni (SAST)**: questi test analizzano il codice per rilevare eventuali violazioni della sicurezza, come [SQL injection](https://owasp.org/www-community/attacks/SQL_Injection) o [cross-site](https://owasp.org/www-community/attacks/xss/) scripting (XSS). Esempi di strumenti SAST includono [Amazon CodeGuru](https://aws.amazon.com/codeguru/) e [SonarQube](https://www.sonarqube.org/)[Checkmarx](https://checkmarx.com/).
+ **Test dinamici di sicurezza delle applicazioni (DAST)***: questi test sono noti anche come test di *penetrazione* o pen test.* Identificano le vulnerabilità, come SQL injection o XSS in un ambiente di test predisposto. [Esempi di strumenti DAST includono [Zed Attack Proxy (ZAP](https://www.zaproxy.org/)) e HCL. AppScan](https://www.hcltechsw.com/appscan) [Per ulteriori informazioni, vedere Penetration Testing.](https://aws.amazon.com/security/penetration-testing/)

Non tutte le CI/CD pipeline eseguono completamente tutti questi test. Tuttavia, come minimo, una pipeline dovrebbe eseguire test unitari e test SAST sulla base di codice, nonché test di integrazione e accettazione in un ambiente di test.