Тестирование с помощью ИИ

Продвинутое программирование с ИИ-ассистентами

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Продолжаем работу с Atlas

Разработчик проверяет код с иконкой щита безопасности

 

  • Интеграция Atlas в Wayfarer Labs
  • ✅ Код должен быть протестирован, защищён и надёжен
  • 🤖 ИИ ускоряет оценку и тестирование незнакомого кода
Продвинутое программирование с ИИ-ассистентами

Зачем нужно тестирование с ИИ?

 

  • Выявить непроверенные пути
  • Найти граничные случаи
  • Обнаружить потенциальные уязвимости

 

🤖 Начните с запроса к ИИ для оценки зрелости тестирования кодовой базы

Лупа, исследующая код с иконками ошибок

Продвинутое программирование с ИИ-ассистентами

Оценка зрелости тестирования

Вы — старший QA-инженер и архитектор программного обеспечения.

Оцените качество тестового покрытия этой кодовой базы и определите зоны наибольшего риска. Оцените следующее по шкале 0–5:

  • Покрытие критических путей
  • Обработка граничных случаев
  • Регрессионная защита
  • Автоматизация CI/CD

Кроме того, определите типы тестов, присутствующих в коде: модульные, интеграционные, сквозные, регрессионные, property-тесты или фаззинг.

Продвинутое программирование с ИИ-ассистентами

Результаты оценки зрелости тестирования

coverage-scores2.png

Продвинутое программирование с ИИ-ассистентами

Установка базового уровня

coverage-commands2.png

Продвинутое программирование с ИИ-ассистентами

Анализ результатов покрытия

coverage-profile2.png

Продвинутое программирование с ИИ-ассистентами

Стратегии тестирования

 

Диаграмма стратегий тестирования

 

  • Исследовательское → понимание поведения
  • Функциональное → проверка результатов
  • Регрессионное → защита существующего поведения
  • Автоматизированное → быстрая и воспроизводимая обратная связь
Продвинутое программирование с ИИ-ассистентами

Создание набора тестов

 

Что такое набор тестов?

👉 Структурированная совокупность тестов, данных, инструментов и правил, обеспечивающая стабильное поведение системы.

🤖 Запрос для набора тестов:

Вы — старший разработчик программного обеспечения. Сгенерируйте модульные и интеграционные тесты для критических путей кодовой базы. Включите:

  • Стандартные случаи
  • Граничные случаи
  • Сценарии сбоев
  • Чёткие утверждения и фикстуры

Также предоставьте список всех сгенерированных тестов с кратким описанием каждого.

Продвинутое программирование с ИИ-ассистентами

Проверка улучшения покрытия

Список тестов, сгенерированных ИИ:

ai-generated-tests2.png

Новое покрытие кода:

new-coverage2.png

Продвинутое программирование с ИИ-ассистентами

Защита во время выполнения

 

Внедрение пользовательских данных ➡ Atlas ❗

🤖 Запрос для защиты во время выполнения:

При внедрении или обработке пользовательских данных добавьте защиту во время выполнения:

  • Проверяйте входные данные перед обработкой (типы, обязательные поля, неожиданные значения)
  • Проверяйте схемы на каждой границе конвейера, не предполагайте чистоту данных от предыдущего этапа
  • Возвращайте понятные сообщения об ошибках с указанием причины и места сбоя
  • Используйте безопасные значения по умолчанию для необязательных полей
Продвинутое программирование с ИИ-ассистентами

Автоматизация CI

ci-coverage.png

Продвинутое программирование с ИИ-ассистентами

Давайте попрактикуемся!

Продвинутое программирование с ИИ-ассистентами

Preparing Video For Download...