Testes para pipelines de CI/CD - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Testes para pipelines de CI/CD

Os dois tipos de testes automatizados comumente mencionados nos pipelines de implantação são testes unitários e testes de integração. No entanto, há muitos tipos de testes que você pode executar em uma base de código e no ambiente de desenvolvimento. A arquitetura de referência do pipeline de AWS implantação define os seguintes tipos de testes:

  • Teste unitário — Esses testes criam e executam o código do aplicativo para verificar se ele está funcionando de acordo com as expectativas. Eles simulam todas as dependências externas usadas na base de código. Exemplos de ferramentas de teste unitário incluem JUnitJest e pytest.

  • Teste de integração — Esses testes verificam se o aplicativo atende aos requisitos técnicos por meio de testes em um ambiente de teste provisionado. Exemplos de ferramentas de teste de integração incluem Cucumber, vRest NG e integ-tests (for). AWS CDK

  • Teste de aceitação — Esses testes verificam se o aplicativo satisfaz os requisitos do usuário por meio de testes em um ambiente de teste provisionado. Exemplos de ferramentas de teste de aceitação incluem Cypress e Selenium.

  • Teste sintético — Esses testes são executados continuamente em segundo plano para gerar tráfego e verificar se o sistema está íntegro. Exemplos de ferramentas de teste sintético incluem Amazon CloudWatch Synthetics e Dynatrace Synthetic Monitoring.

  • Teste de desempenho — Esses testes simulam a capacidade de produção. Eles determinam se o aplicativo atende aos requisitos de desempenho e comparam as métricas com o desempenho anterior. Exemplos de ferramentas de teste de desempenho incluem Apache JMeter, Locust e Gatling.

  • Teste de resiliência — Também conhecido como teste de caos, esses testes injetam falhas nos ambientes para identificar áreas de risco. Os períodos em que as falhas são injetadas são então comparados aos períodos sem falhas. Exemplos de ferramentas de teste de resiliência incluem AWS Fault Injection Servicee Gremlin.

  • Teste estático de segurança de aplicativos (SAST) — Esses testes analisam o código em busca de violações de segurança, como injeção de SQL ou cross-site scripting (XSS). Exemplos de ferramentas SAST incluem Amazon CodeGuru e Checkmarx. SonarQube

  • Teste dinâmico de segurança de aplicativos (DAST) — Esses testes também são conhecidos como testes de penetração ou teste de caneta. Eles identificam vulnerabilidades, como injeção de SQL ou XSS em um ambiente de teste provisionado. Exemplos de ferramentas do DAST incluem o Zed Attack Proxy (ZAP) e o HCL. AppScan Para obter mais informações, consulte Teste de penetração.

Nem todos os pipelines totalmente de CI/CD executam todos esses testes. No entanto, no mínimo, um pipeline deve executar testes unitários e testes SAST na base de código, bem como testes de integração e aceitação em um ambiente de teste.