← Назад ко всем вопросам

Какие знаешь нефункциональные проверки CI/CD

1️⃣ Как кратко ответить

Нефункциональные проверки в CI/CD включают тестирование производительности, безопасности, надежности, совместимости и удобства использования. Эти проверки помогают гарантировать, что приложение соответствует нефункциональным требованиям, таким как скорость, безопасность и стабильность, и обеспечивают высокое качество конечного продукта.

2️⃣ Подробное объяснение темы

Нефункциональные проверки в контексте CI/CD (Continuous Integration/Continuous Deployment) направлены на оценку аспектов качества программного обеспечения, которые не связаны напрямую с его функциональностью. Эти проверки помогают убедиться, что приложение не только выполняет свои функции, но и делает это эффективно, безопасно и надежно.

Основные виды нефункциональных проверок:

  1. Тестирование производительности (Performance Testing):

    • Цель: Оценка скорости, масштабируемости и стабильности приложения под нагрузкой.
    • Пример: Использование инструментов, таких как JMeter или Gatling, для моделирования большого количества пользователей, одновременно взаимодействующих с системой, чтобы измерить время отклика и пропускную способность.
  2. Тестирование безопасности (Security Testing):

    • Цель: Обнаружение уязвимостей, которые могут быть использованы злоумышленниками.
    • Пример: Проведение статического анализа кода с помощью инструментов, таких как SonarQube, для выявления потенциальных уязвимостей, или динамическое тестирование с использованием OWASP ZAP для обнаружения уязвимостей в работающем приложении.
  3. Тестирование надежности (Reliability Testing):

    • Цель: Оценка способности системы выполнять свои функции в течение определенного времени без сбоев.
    • Пример: Запуск долговременных тестов, чтобы убедиться, что приложение стабильно работает в течение длительных периодов времени без утечек памяти или других проблем.
  4. Тестирование совместимости (Compatibility Testing):

    • Цель: Проверка работы приложения на различных платформах, устройствах и в разных браузерах.
    • Пример: Использование облачных сервисов, таких как BrowserStack или Sauce Labs, для тестирования приложения на множестве комбинаций операционных систем и браузеров.
  5. Тестирование удобства использования (Usability Testing):

    • Цель: Оценка удобства и интуитивности пользовательского интерфейса.
    • Пример: Проведение тестов с участием реальных пользователей, чтобы получить обратную связь о том, насколько легко и удобно использовать приложение.

Применение в CI/CD:

Внедрение нефункциональных проверок в процессы CI/CD позволяет автоматически и регулярно проверять нефункциональные аспекты приложения на каждом этапе разработки. Это помогает быстро выявлять и устранять проблемы, обеспечивая высокое качество и соответствие приложения нефункциональным требованиям.

Пример интеграции в CI/CD:

# Пример конфигурации Jenkins Pipeline для выполнения нефункциональных тестов
​
pipeline {
    agent any
​
    stages {
        stage('Build') {
            steps {
                echo 'Building the application...'
                // Команды для сборки приложения
            }
        }
​
        stage('Performance Testing') {
            steps {
                echo 'Running performance tests...'
                // Запуск тестов производительности с использованием JMeter
                sh 'jmeter -n -t test_plan.jmx -l results.jtl'
            }
        }
​
        stage('Security Testing') {
            steps {
                echo 'Running security tests...'
                // Запуск статического анализа кода с использованием SonarQube
                sh 'sonar-scanner'
            }
        }
​
        stage('Compatibility Testing') {
            steps {
                echo 'Running compatibility tests...'
                // Использование BrowserStack для тестирования на различных платформах
                sh 'browserstack-runner'
            }
        }
    }
}
  • Build Stage: Сборка приложения, чтобы подготовить его для последующих тестов.
  • Performance Testing Stage: Запуск тестов производительности с использованием JMeter для оценки скорости и стабильности.
  • Security Testing Stage: Проведение статического анализа кода с помощью SonarQube для выявления уязвимостей.
  • Compatibility Testing Stage: Использование BrowserStack для проверки совместимости на различных платформах и браузерах.

Тема: Инструменты: Postman, Swagger, Charles и др
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки