Для студентов КГТУ по предмету ДругиеСоздание облачного сервиса для автоматической генерации юнит-тестов в языках Java, C, C++ и измерения тестового покрытияСоздание облачного сервиса для автоматической генерации юнит-тестов в языках Java, C, C++ и измерения тестового покрытия
2024-08-182024-08-18СтудИзба
Создание облачного сервиса для автоматической генерации юнит-тестов в языках Java, C, C++ и измерения тестового покрытия
Описание
Оглавление
3
Введение
Качество покрытия кода юнит-тестами является критичным для ка-чества конечного программного продукта. Любая современная IDE, на-пример, IntelliJ IDEA [11] или Visual Studio [2] умеет отображать инфор-мацию о тестовом покрытии. Даже существуют облачные инструменты вроде Codecov [30], которые умеют анализировать и удобно отображать такую информацию. Трудно покрывать тестами пути исполнения, что ожидаемо, ведь даже программа из 100 строк кода может содержать огромное количество путей [31], c. 44. Поскольку покрывать пути ис-полнения тестами вручную слишком сложно, существуют символьные исполнители, решающие эту задачу. Они могут статически анализиро-вать покрытие кода, а также генерировать тесты, покрывающие пути исполнения, а не строки. Хотя на программе из книги Сэма Канера хороший результат покрытия тестами с помощью такого подхода полу-чить не удастся, он все же может быть эффективным для практических целей.
Одна из компаний, занимающихся разработкой систем для автома-тической генерации тестов – компания «Хуавэй». «Хуавэй» предлага-ет разработчикам такие продукты как UTBot Java и UTBot C/C++
– движки-генераторы тестов, основанные на симво
Введение | 4 | ||
Постановка задачи | 6 | ||
1. | Обзор | 7 | |
1.1. | UTBot Cloud на момент начала работы . . . . . . . . . . | 7 | |
1.2. | Обзор существующих решений . . . . . . . . . . . . . . . | 7 | |
2. | Используемые технологии | 9 | |
2.1. | Технологии, используемые в UTBot Online . . . . . . . . | 9 | |
2.2. | Технологии, используемые в UTBot Site . . . . . . . . . . | 10 | |
2.3. | Технологии, используемые в UTBot Java CLI . . . . . . . | 12 | |
3. | Реализация | 14 | |
3.1. | Настройка CI/CD в UTBot Cloud . . . . . . . . . . . . . . | 14 | |
3.2. | Запуск в UTBot Online тестов в изоляции . . . . . . . . . | 15 | |
3.3. | Запуск тестов на Java . . . . . . . . . . . . . . . . . . . . . | 17 | |
3.4. | Генерация и запуск тестов на C++ . . . . . . . . . . . . . | 18 | |
3.5. | Развертывание UTBot Online на Huawei Cloud . . . . . . | 19 | |
4. | Тестирование и апробация | 20 | |
4.1. | Тестирование.......................... | 20 | |
4.2. | Апробация ........................... | 20 | |
Заключение | 21 | ||
Список литературы | 22 |
3
Введение
Качество покрытия кода юнит-тестами является критичным для ка-чества конечного программного продукта. Любая современная IDE, на-пример, IntelliJ IDEA [11] или Visual Studio [2] умеет отображать инфор-мацию о тестовом покрытии. Даже существуют облачные инструменты вроде Codecov [30], которые умеют анализировать и удобно отображать такую информацию. Трудно покрывать тестами пути исполнения, что ожидаемо, ведь даже программа из 100 строк кода может содержать огромное количество путей [31], c. 44. Поскольку покрывать пути ис-полнения тестами вручную слишком сложно, существуют символьные исполнители, решающие эту задачу. Они могут статически анализиро-вать покрытие кода, а также генерировать тесты, покрывающие пути исполнения, а не строки. Хотя на программе из книги Сэма Канера хороший результат покрытия тестами с помощью такого подхода полу-чить не удастся, он все же может быть эффективным для практических целей.
Одна из компаний, занимающихся разработкой систем для автома-тической генерации тестов – компания «Хуавэй». «Хуавэй» предлага-ет разработчикам такие продукты как UTBot Java и UTBot C/C++
– движки-генераторы тестов, основанные на симво
Характеристики курсовой работы
Список файлов
Создание облачного сервиса для автоматической генерации юнит-тестов в языках Java, C, C++ и измерения тестового покрытия.doc