Автоматическое функциональное тестирование в среде 1С: Предприятие 8.0

 

К сожалению программы для автоматического тестирования, такие как Quick Test Professional или Rational Robot, не позволяют полноценно производить функциональное тестирование конфигураций
на базе 1С: Предприятие 8.0.

Для проведения автоматического тестирования необходимо:

 

- Возможность многократного запуска тестов с контролем их выполнения

- Возможность описывать последовательность действий по созданию необходимых объектов в ИБ и проверки корректности функциональной логики.

- Возможность такого описания объектов, чтобы в любой (даже пустой) базе, возможно, было их полное автоматическое воссоздание.

- Возможность запуска тестов в режиме отладки для удобного поиска и разрешения возникших проблем в процессе прохождения тестов.

- Возможность создания множественности тестов для накопления базы по всей функциональности конфигураций.

- Возможность единичного описания необходимых объектов и тестов с последующим использованием их в других тестах посредством ссылок.

- Возможность запуска необходимых тестов несколько раз подряд для проведения нагрузочного тестирования или оценки производительности тестируемой функциональности.

 

Исходя из вышеизложенного был начат проект по созданию комплекса автоматического функционального тестирования в среде 1С: Предприятие 8.0.

На текущий момент созданы две большие обработки – одна для работы по подготовке тестов, вторая для выполнения самих тестов.

 

Объекты описываются так, чтобы можно было их воссоздать в любой базе изучаемой конфигурации. Для этого используется описание только числовых, строковых, булевых и т.п. значений реквизитов,
а ссылочные типы (справочники, документы, счета) заменены ссылкой строкового типа и поиск нужного ссылочного объекта осуществляется по имени в дереве объектов или по наименованию в текущей базе (для простых тестов).

 

Само тестирование происходит в единой транзакции для возможности многократного запуска на рабочих базах.

 

Далее рассмотрим основные формы созданной системы автоматического тестирования.

 

 

Консоль подготовки тестов:

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

 

 

Форма описание реквизитов объекта:

В этой форме можно подробно просмотреть и отредактировать все реквизиты описываемого объекта.

 

 

Форма ввода нового объекта на основании существующего в базе:

В этой форме можно создать объект(ы) на основании имеющихся в текущей информационной базе.

 

 

Отчет, помогающий найти и заполнить объекты, не описанные до этого:

Для запуска подготовленного теста в другой (пустой) конфигурации необходимо, чтобы все объекты были описаны в тесте. Для поиска неописанных объектов и автоматического добавления их в дерево объектов можно воспользоваться этой формой.

 

 

Форма запуска тестов:

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

Кроме выполнения тестов здесь имеется мощный механизм отладки, позволяющий обнаружить места, в которых возникают ошибки при прохождении тестов.

Для проведения нагрузочных тестов, а также замера производительности можно установить кол-во повторов выполнения всех тестов.

 

При запуске тестирования в единой транзакции выполняются все действия тестов. При этом все объекты создаются с открытием форм и заполнения данных именно в форме – тем самым максимально приближаясь к действиям предполагаемых пользователей.

 

Форма хода выполнения действий тестов:

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

 

 

Форма точки останова:

Для отладки можно поставить точку останова на любом действии теста и в модальном режиме просмотреть объекты, которые создал тест на текущий момент, а также любые справочники, документы, отчеты и обработки до момента пока не закончился тест и не закрыта транзакция. Также можно открыть форму объекта после его создания, например, для анализа созданных движений документом.

 

 

Протокол тестирования:

После выполнения всех тестов можно вывести и сохранить единый протокол тестирования.

Также результаты прохождения каждого теста фиксируются в настройках теста (дата и результат) и последние данные могут быть просмотрены как в обработка по тестированию, так и в обработке по подготовке тестов.

 

Данная система должна использоваться отделом разработки и тестирования совместно и позволяет:

 

- Проводить тестирование в процессе разработки, а не только после предполагаемого окончания разработки.

- Повысить скорость разработки

- Существенно сократить время тестирования

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

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

 

Проблемы, которые не удалось разрешить средствами конфигурации:

- Невозможность программного вызова стандартных обработчиков изменения данных в форме.

- Невозможность автоматического привязывания к тестам результатов замера производительности для определения таких параметров, как коэффициент покрытия кода тестом.

- Невозможность отслеживания интерактивных действий пользователя внутри конфигурации для наглядного составления последовательности действий для тестов.

 

 

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

 

Это только начало построение глобальной системы по автоматическому тестированию в среде 1С: Предприятие 8.0.

 

 

Сайт создан в системе uCoz