Тестирование программного обеспечения/искусственный интеллект | Используйте EvoSuite для автоматического создания высококачественных сценариев модульного тестирования Java
Тестирование программного обеспечения/искусственный интеллект | Используйте EvoSuite для автоматического создания высококачественных сценариев модульного тестирования Java

Введение

в разработке программного обеспечения,Модульное тестирование — один из важных шагов для обеспечения качества и стабильности кода. Однако,Написание комплексных модульных тестов может занять много времени и усилий.。EvoSuite Это мощный инструмент, который может автоматически генерировать высококачественные сценарии модульного тестирования. Он использует генетические алгоритмы и технологию символьного выполнения, чтобы помочь разработчикам быстро создавать эффективные тестовые сценарии и улучшать покрытие и надежность кода.

EvoSuite Введение

EvoSuite это инструмент, основанный на генетических алгоритмах, который фокусируется на автоматической генерации Java Кейсы модульного тестирования кода. Он анализирует код и использует генетический алгоритм для поиска лучших тестовых примеров, чтобы охватить как можно больше путей кода, тем самым снижая вероятность bug и вопросы.

EvoSuite Преимущества

  • Высокий охват: EvoSuite Возможность генерировать тестовые примеры, охватывающие различные пути кода, для улучшения покрытия тестами.
  • Экономия времени. Автоматическое создание тестовых примеров может сэкономить разработчикам много времени и энергии.
  • Адаптивность: EvoSuite Возможность вносить изменения в конкретный код для создания более применимых тестовых примеров.

Конфигурация установкиEvoSuite

EvoSuite может пройти Maven или скачать Jar файл для установки. мы можем EvoSuite Подробную инструкцию по установке ищите на официальном сайте. официальный сайт

Настройте и используйте

Когда проект Maven интегрирует EvoSuite, Junit необходимо ввести в текущий проект. Поскольку EvoSuite используется для создания файлов Junit, необходимо ввести зависимости Junit:

Язык кода:javascript
копировать
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

Представляем Evosuite

Измените файл pom.xml проекта и добавьте в узел плагин EvoSuite:

Язык кода:javascript
копировать
<build>
    <plugins>
        <plugin>
            <groupId>org.evosuite.plugins</groupId>
            <artifactId>evosuite-maven-plugin</artifactId>
            <version>1.0.6</version>
        </plugin>
    </plugins>
</build>

Запустите следующую команду для выполнения цели под названием help плагина Evosuite. При первом запуске EvoSuite и его зависимости будут загружены из центрального хранилища. Первая загрузка может занять много времени.

Язык кода:javascript
копировать
mvn evosuite:help

Если загрузка прошла успешно, вывод командной строки будет следующим:

Язык кода:javascript
копировать
[INFO] Maven Plugin for EvoSuite 1.0.6
  Plugin used to run EvoSuite to automatically generate high coverage JUnit
  tests

This plugin has 7 goals:

evosuite:clean
  Remove all local files created by EvoSuite so far

evosuite:coverage
  Execute the manually written test suites (usually located under src/test/java)
  and return the coverage of each class.

Пример использования: использовать EvoSuite Автоматически генерировать сценарии модульного тестирования

мы хотим использоватьEvosuiteгенерировать наши собственные Случаи модульного тестирования, сначала мы должны подготовить наш собственный Java-код и выбрать генерацию Случаев. модульного тестированияиз Java класс или метод, и мы хотим убедиться, что код работоспособен и содержит необходимые зависимости.

использоватьEvoSuite生成测试用例

运行EvoSuiteЗаказ,И укажите класс или метод, для которого вы хотите создать тестовые примеры. Например:

Язык кода:javascript
копировать
java -jar evosuite.jar -target your.package.YourClass

Эта команда будет использовать EvoSuite анализировать YourClass И сгенерируйте соответствующие примеры модульного тестирования.

Корректировка сгенерированных тестовых случаев

Сгенерированные тестовые примеры могут потребовать некоторых корректировок в соответствии с конкретными ситуациями. Просмотрите тестовые примеры и при необходимости измените их, чтобы гарантировать, что охвачены все ситуации, которые мы хотим протестировать.

Запустить тестовый пример

Запустите сгенерированные тестовые примеры вместе с нашим кодом, чтобы убедиться, что они успешно пройдены и охватывают необходимые пути кода.

На что следует обратить внимание

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

Подвести итог

EvoSuite это мощный инструмент, способный автоматически генерировать высококачественные Случаи модульного тестирование. Выполнив вышеуказанные шаги,Мы можем легко воспользоватьсяEvoSuiteдля насиз Java Код генерирует сценарии модульного тестирования для повышения качества и надежности кода.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода