Каталог решений - О Unit-тестах замолвите слово.Часть 1

О Unit-тестах замолвите слово.Часть 1

О Unit-тестах замолвите слово.Часть 1

В наличии

Последнее время в контексте 1С очень много говорят о функциональном тестировании, BDD. А Unit-тестирование обходят стороной. Попробуем разобраться, для чего Unit-тестирование применять стоит.

Категория:

Описание

Введение

Разберемся немного в терминологии:

Функциональное (E2E) тестирование — проверка, что сценарии работы пользователя выполняются. Другими словами прогоны тестовых пользовательский сценариев. Поддерживается фреймворками "Сценарное тестирование", "Vanessa-ADD", "Vanessa-Automation", "Тестер" и др. Большинство из этих фреймворков специально созданы для написания функциональных/сценарных тестов. 

Unit-тестирование (модульное тестирование) — проверка на корректность отдельные единицы работы исходного кода программы. Минимальными единицами работы для нас являются процедуры и функции.

Получилось так, что наибольшую популярность среди программистов 1С получило функциональное тестирование. Такой вывод можно сделать по обилию публикаций и дискуссий на профессиональных конференциях. 
Основной целью такого тестирования при его внедрении в первую очередь является уменьшение ошибок, в том числе организация регрессионного тестирования (англ. regression testing, собирательное название для всех видов тестирования программного обеспечения, направленных на обнаружение ошибок в уже протестированных участках исходного кода).

Функциональное тестирование требует подготовки — создание эталонных баз / шаблонов данных, проработки сценариев использования и их написания. Т.е. это больше история про процесс разработки, а не непосредственное написание кода, ответственность за поддержку лежит на команде.

Unit-тесты в противовес функциональным тестам пишется разработчиком в помощь себе. Они позволяют быстро прогнать все возможные варианты входных данных для написанного участка кода, облегчают рефакторинг.

Для Unit-тестов есть один специализированный фреймворк — xUnitFor1C (возможно я не прав, напишите, пожалуйста, в комментариях, если это не так). Его функционал плавно перекочевал в Vanessa-ADD. Также модульные тесты можно запускать и на фреймворках, предназначенных для функционального тестирования. Существуют плагин для EDT для написания unit-тестов с использованием фреймворка Vanessa-Automation (https://github.com/DoublesunRUS/ru.capralow.dt.unit.launcher).

Unit-тестирование и функциональное тестирование не исключают, а дополняют друг друга.

Функциональный тест vs Unit-тест

Попробуем сравнить разные виды тестирования.

Категории сравнения:

Скорость — время выполнения теста
Область действия — что тест проверяет
Сложность написания — объем необходимых знаний
Сложность запуска — насколько сложная инфраструктура нужна для запуска теста, насколько сложно обеспечить повторение однотипных тестов
Изменение трудозатрат на написание тестов с ростом количества тестов — как меняются количество времени, необходимое для написания тестов с ростом количества тестов и накоплением инструментария.

КритерийФункциональный тестUnit-тест
СкоростьМедленныйБыстрый
Область действияСценарий пользователяПроцедура/Функция
Сложность написанияСреднеСредне
Сложность запускаСреднеЛегко
Трудозатраты на написание БольшиеМаленькие
Изменение трудозатрат на написание тестов с ростом количества тестовУменьшаютсяОстаются неизменными
has been added to your cart:
Оформление заказа