Sobes.tech
Back to questions
Senior
3

Как у вас были организованы проверки на покрытие тестами и уязвимости в CI-пайплайне?

Companies where asked
Альфа-БанкАльфа-Банк

Answer from AI

sobes.tech AI

В CI-пайплайне для Java-проектов обычно настраивают несколько этапов для проверки покрытия тестами и уязвимостей:

  1. Покрытие тестами: Используют инструменты, такие как JaCoCo или Cobertura, которые интегрируются с Maven или Gradle. В пайплайне запускаются юнит-тесты, после чего генерируется отчет о покрытии. Если покрытие падает ниже заданного порога (например, 80%), сборка считается проваленной.

  2. Проверка уязвимостей: Для анализа зависимостей применяют инструменты вроде OWASP Dependency-Check или Snyk, которые сканируют библиотеки на известные уязвимости. Также можно запускать статический анализ кода с помощью SonarQube, который выявляет потенциальные проблемы безопасности.

Пример конфигурации Maven для JaCoCo и проверки покрытия:

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.7</version>
  <executions>
    <execution>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
    </execution>
    <execution>
      <id>report</id>
      <phase>test</phase>
      <goals>
        <goal>report</goal>
      </goals>
    </execution>
  </executions>
</plugin>

В CI (например, Jenkins, GitLab CI) после сборки запускается скрипт, который проверяет метрики покрытия и результаты сканирования уязвимостей, и в случае проблем — останавливает деплой.