Прошел партнерский семинар фирмы «1С» с 3 по 6 марта 2023 года. Было много разной информации по программным продуктам как самой фирмы «1С», так и ее партнеров. Но в рамках данного канала, я затрону только тему автоматизированного тестирования.
Автоматизированному тестированию было посвящено два выступления в рамках секции «Развитие 1С:Бухгалтерии»:
- Автотесты текстом. 1С:Сценарное тестирование (Рагузин Александр Евгеньевич, 1С)
- Опыт использования «1С:Сценарного тестирования», для тестирования проектов (Плотников Александр Владимирович, 1С)
Оба доклада, как заметно из названий, были про инструмент автоматизированного тестирования «1С:Сценарное тестирование». Это не удивительно, так как именно отдел Фогеля Олега Владимировича использует данный инструмент для автоматизации тестирования линейки бухгалтерских программ, а также является основным двигателем развития данного инструмента.
Что нам рассказали в докладах?
Автотесты текстом. 1С:Сценарное тестирование
В первом докладе Александр Рагузин, разработчик «1С:Сценарное тестирование», рассказал про новый функционал, который появился в релизе 3.0.29: возможность конвертации сценариев тестирования в текстовый формат. Данный формат позиционируется как упрощенный.
Конвертировать можно как в текстовый, так и обратно в обычный формат.
Но, так как текстовый формат является упрощенным, то содержит меньше информации, чем обычный формат. Соответственно, при преобразовании в текстовый формат некоторые данные, не влияющие на выполнение сценария, могут игнорироваться.
Ограничения при конвертации в текстовый формат:
- Игнорируется осмысленное наименование шагов и информация для их восстановления;
- Удаляется расширенная информация для поиска объектов и данные, которые позволяют изменить действия в шаге без подключения к тестируемому клиенту;
- Некоторые шаги не используются в текстовом формате, так как они могут быть очень громоздкими. Например, шаг для сверки движений документов;
- Не выполняется замер производительности;
- Не выполняется отладка макрошагов.
Форма текстового формата состоит из двух частей: левая – это поле для написания сценария тестирования, правая – это справочник доступных команд.
Структурно текстовый сценарий разделен на области:
- Функциональность - предназначена для указания названия сценария и его краткого описания.
- Подключение - необходимо указать параметры подключения к тестируемому клиенту.
- Переменные - в данной области описывается список переменных, указывается их тип и значение.
- Настройка - описываются глобальные настройки сценария.
- Сценарий - содержит выполняемые шаги сценария.
- Таблица - в области задается эталонная таблица, которая будет использоваться для выполнения проверочных шагов с таблицей.
- Табличный документ - в области задается эталонная таблица, которая будет использоваться для выполнения проверочных шагов с табличным документом.
- Макрошаг - Область предназначена для последовательностей действия вынесенных в макрошаг.
Области можно указывать в любом порядке. Основной является область «Сценарий», так как именно в ней указываются команды сценария тестирования.
Необходимые команды можно написать вручную или подобрать из справочника команд.
При написании команды вручную существует возможность выбрать ее из контекстного меню.
Также команды можно получать в готовом виде через «Исследователь» форм. Для этого в окне исследователя выбирается нужный элемент формы, и на закладке «Команды» выбирается необходимая для данного элемента из списка возможных команд.
И закончен доклад был рассказом про синтаксис текстовых команд:
- Команда занимает целую строку;
- Параметры в команде передаются в кавычках (названия объектов, форм, элементов и т.д.) или в виде чисел (количество повторений, время ожидания и т.д.);
- В качестве параметров можно использовать переменные вида «&ИмяПеременной»;
- Если на форме содержаться элементы с одинаковыми заголовкам, то нужно указать еще панель, на которой искать данный элемент «Заголовок панели -> Заголовок элемента»;
- Можно использовать привычные группы для организации условий и циклов;
- Также добавлены «скобки» для форм, таблиц и табличных документов. Такой подход позволяет один раз найти и описать нужный элемент и в дальнейшем уже только указывать действия с ним.
На этом первый доклад окончен. Жаль, что нам не рассказали причину создания текстового формата и его преимущество перед обычным. Возможно, это какой-то задел на будущее. Например, для конвертации из ручных тестов в автоматические. В любом случае нужно пробовать использовать текстовый формат, чтобы понять удобство использования. Мне пока трудно сделать какие-либо выводы.
Опыт использования «1С:Сценарного тестирования», для тестирования проектов
Второй доклад был про построение проектного тестирования и роли в нем инструмента «1С:Сценарное тестирование» непосредственно в отделе разработки бухгалтерских программ. Такие доклады особо интересны и ценны, так как есть возможность послушать, как построены различные процессы у коллег.
Александр Плотников начал свой доклад с примера в цифрах: сколько времени у отдела тестирования уходило на подготовку плана тестирования и окружения.
Далее было рассказано каким инструментом пользовались при составлении тест-плана. Использовали Confluence, что было очень неудобно. План тестирования мог доходить до 25 страниц формата А4. Были трудности с итерациями тестирования.
Потому было принято решение доработать «1С:Сценарное тестирование» под проектное тестирование. На слайде показаны блоки и объекты, которые были добавлены в инструмент.
Ниже показана схема тестирования проектов бухгалтерских программ после внедрения блока планирования. Блоки зеленого цвета на схеме – это то, что уже реализовано в «1С:Сценарное тестирование».
Ручные тесты - это чек-листы для контроля ручного тестирования или каких-то других задач. На основании ручных тестов возможно создать шаблоны, для дальнейшего использования при других проверках. А также добавлены теги для более быстрого и удобного поиска необходимых тестов и шаблонов и подбора в план тестирования.
Добавлен вывод описания ручного теста в формате HTML. Это позволяет печатать описательную часть теста как инструкцию или передавать как HTML-файл на согласование разработчикам и ответственным сотрудникам.
В план тестирования добавлена возможность подбора автотестов для дальнейшего их выполнения. Например, в план тестирования можно добавить автоматизированные тесты по обновлению баз тестирования или какие-то другие автоматизированные подготовительные действия, и запускать их в итерации, тем самым сократив ручные операции. Также добавлены статусы и сроки для контроля и ведения истории выполнения итераций.
Добавлен справочник «Базы для тестирования», чтобы создать единое место хранения баз для тестирования. Они хранятся в самой конфигурации «1С:Сценарное тестирование» как dt-файлы. Там же можно настроить автоматизированное обновление баз на необходимую версию конфигурации, с последующим развертыванием файловой информационной базу для тестирования.
Все перечисленные выше доработки привели к хорошим результатам. Например, время по составлению тест-плана снизилось с 4-16 часов до 2-10 часов. А общее время подготовки к тестированию снизилось на 15-20%.
Полезная обратная связь:
Второй доклад подтверждает то утверждение, что конфигурация «1С:Сценарное тестирование» становится полноценной системой управления тестированием (Test Management System или сокращенно TMS). Судите сами. На данный момент уже есть блок планирования, создания и хранения автоматизированных тестов, формирования пакетов тестирования и запуск их по расписанию, возможность фиксировать ошибки и интегрировать с другими баг-трекирами. На мой взгляд, пока мало развит блок отчетности. Но, буду надеяться, что это уже в планах на ближайшие релизы инструмента.