Найти в Дзене

Скорость и удобство использования: новые возможности «1С:Сценарное тестирование»

Использование технологий искусственного интеллекта, новый интерфейс 8.5, впервые о юзабилити-тестировании и мощных изменениях в «1С:Сценарное тестирование». Именно такими тезисами мне запомнился весенний семинар партнёров фирмы «1С», проходивший с 28 февраля по 3 марта 2025 года. Оговорюсь — тезисы выделены исключительно в рамках тематики данного блога, поскольку посвящён он в первую очередь процессу тестирования программных продуктов 1С. Но тогда причём здесь тема искусственного интеллекта, нового интерфейса в версии 8.5 и удобства использования программных продуктов? Несмотря на то, что юзабилити-тестирование — это отдельное направление деятельности со своими особенностями, оно всё же не выходит за границы понятия «тестирование», поэтому вполне соответствует тематике данного блога. Применение технологий искусственного интеллекта — это наше будущее, в том числе и в процессе тестирования. Поэтому хочется начать об этом говорить, а лучше — применять и делиться опытом. А новый интерфейс
Оглавление

Использование технологий искусственного интеллекта, новый интерфейс 8.5, впервые о юзабилити-тестировании и мощных изменениях в «1С:Сценарное тестирование».

Именно такими тезисами мне запомнился весенний семинар партнёров фирмы «1С», проходивший с 28 февраля по 3 марта 2025 года. Оговорюсь — тезисы выделены исключительно в рамках тематики данного блога, поскольку посвящён он в первую очередь процессу тестирования программных продуктов 1С.

Но тогда причём здесь тема искусственного интеллекта, нового интерфейса в версии 8.5 и удобства использования программных продуктов?

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

Применение технологий искусственного интеллекта — это наше будущее, в том числе и в процессе тестирования. Поэтому хочется начать об этом говорить, а лучше — применять и делиться опытом.

А новый интерфейс 8.5 затрагивает обе темы. Это одновременно и наше будущее, и оно тесно связано с темой юзабилити.

Но давайте вернемся к докладам семинара и ознакомимся с ними.

Доклады в рамках темы «Тестирование»:

Скрин титульного слайда доклада «Новое в сценарном тестировании»
Скрин титульного слайда доклада «Новое в сценарном тестировании»

Доклад Александра Плотникова раскрывал новые возможности инструмента «1С:Сценарное тестирование», версии 3.0.37 (спойлер — эта версия уже официально вышла).

Так как разработка инструментов «1С:Сценарное тестирование» и «1С:Тестировщик» осуществляется отделом, занимающимся разработкой бухгалтерских программ, то и примеры в докладе приведены в рамках соответствующих конфигураций.

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

Скрин слайда презентации, демонстрирующий разнообразие конфигураций отдела разраборки бухгалтерских программ
Скрин слайда презентации, демонстрирующий разнообразие конфигураций отдела разраборки бухгалтерских программ

Каждую ночь собирается и тестируется как минимум два релиза конфигурации «1С:Бухгалтерия предприятия». Схема этого представлена на слайде.

Скрин слайда презентации, демонстрирующий процесс ночной сборки и тестирования двух конфигураций «1С:Бухгалтерия предприятия»
Скрин слайда презентации, демонстрирующий процесс ночной сборки и тестирования двух конфигураций «1С:Бухгалтерия предприятия»

Для каждого релиза каждую ночь запускаются тесты, суммарное время выполнения которых составляет 300 часов машинного времени. У нас уже более 100 серверов используется для автоматизации. Ещё 290 часов займёт прогон остальных конфигураций — это «1С:Бухгалтерия некоммерческой организации», «1С:Садовод», «1С:Гаражи» и так далее. Для них автотесты запускаются по необходимости, когда планируется выпуск ближайшего релиза. Автоматизация выполнена через конфигурацию «1С:Сценарное тестирование». В команде, занимающейся автоматизацией, работает всего трое сотрудников. Они проводят автотестирование, пишут новые тесты, разбирают результаты, поддерживают сервера и прочее.

Скрин слайда презентации, демонстрирующий время и мощности затрачиваемые на автоматизированное тестирование
Скрин слайда презентации, демонстрирующий время и мощности затрачиваемые на автоматизированное тестирование

Так как количество автотестов постоянно растёт, соответственно, для выпуска релизов «1С:Бухгалтерия предприятия» в срок без потери качества нужно ускорять их выполнение. Возник вопрос — увеличить число серверов или попытаться ускорить выполнение автотестов? Решили пойти вторым путём и сначала попробовать ускорить выполнение. Но за счёт чего это можно сделать?

Скрин слайда презентации, демонстрирующий направления развития инструмента «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий направления развития инструмента «1С:Сценарное тестирование»

Ускорение выполнения автотестов

Был проведен анализ, который показал, что простая перерисовка дерева самого сценария — достаточно трудоёмкая операция. Выяснилось, что каждая такая перерисовка занимает около одной секунды. Очевидно, что во время выполнения автоматических тестов ночью обновление интерфейса совершенно бессмысленно, поскольку за ними никто не наблюдает.

Скрин слайда презентации, демонстрирующий затраченное время на перерисовку дерева шагов сценария тестирования
Скрин слайда презентации, демонстрирующий затраченное время на перерисовку дерева шагов сценария тестирования

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

Скрин слайда презентации, демонстрирующий новую настройку для управления скоростью прохождения сценария
Скрин слайда презентации, демонстрирующий новую настройку для управления скоростью прохождения сценария

Для новых сценариев по умолчанию установлено значение 10 секунд, однако при ночном прогоне тестов оно автоматически сбрасывается до нуля. Дерево сценария будет обновляться лишь по завершении теста либо в случае возникновения ошибки. Такая оптимизация позволила сократить затраты времени примерно на 16 минут на каждую тысячу шагов сценариев. Поскольку общее количество шагов измеряется миллионами, общая экономия достигает порядка 20% исключительно за счёт оптимизации процесса перерисовки данной формы.

Объединение режимов выполнения и редактирования сценариев тестирования

Также наши пользователи часто задавали вопрос — зачем нужны два режима работы в обработке сценарного тестирования: первый — выполнение, второй — редактирование автотеста?

Скрин слайда презентации, демонстрирующий ладони Морфеуса с двумя таблетками для Избранного
Скрин слайда презентации, демонстрирующий ладони Морфеуса с двумя таблетками для Избранного

Интерфейсно между ними существовали различия: некоторые кнопки скрывались, а в режиме записи сценария не велся протоколом выполнения.

Скрин слайда презентации, демонстрирующий старый интерфейс обработки для создания сценариев тестирования, в котором было разделение по режимам
Скрин слайда презентации, демонстрирующий старый интерфейс обработки для создания сценариев тестирования, в котором было разделение по режимам

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

Скрин слайда презентации, демонстрирующий новый интерфейс обработки для создания сценариев тестирования
Скрин слайда презентации, демонстрирующий новый интерфейс обработки для создания сценариев тестирования

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

Новая форма настроек подключения к клиентам тестирования

Собственно, очень часто возникает необходимость использовать несколько клиентов тестирования одновременно.

Скрин слайда презентации, демонстрирующий новые изменения в части подключения к нескольким клиентам тестирования
Скрин слайда презентации, демонстрирующий новые изменения в части подключения к нескольким клиентам тестирования

Например, когда пишем автотест под администратором, а выполняем его под другой ролью. Или для тестирования обмена нужно одновременно держать открытыми двух клиентов — скажем, «1С:Бухгалтерия предприятия», а вторую базу возьмем «1С:Управление небольшой фирмой». И постоянно переключаться между ними.

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

Скрин слайда презентации, демонстрирующий старый интерфейс настройки подключения к клиенту тестирования
Скрин слайда презентации, демонстрирующий старый интерфейс настройки подключения к клиенту тестирования

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

Скрин слайда презентации, демонстрирующий новый интерфейс настройки подключения к клиенту тестирования
Скрин слайда презентации, демонстрирующий новый интерфейс настройки подключения к клиенту тестирования

Кстати, настройка стала значительно проще: ранее приходилось «жёстко» прописывать конкретный порт, сейчас появилась опция автоматического подбора порта при каждом новом запуске.

Скрин слайда презентации, демонстрирующий добавленную настройку автоматического подбора порта при каждом запуске
Скрин слайда презентации, демонстрирующий добавленную настройку автоматического подбора порта при каждом запуске

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

Для работы с уже запущенными клиентами тестирования была сделана отдельная форма «Клиенты тестирования».

Скрин слайда презентации, демонстрирующий вызов формы с перечнем запущенных клиентов тестирования
Скрин слайда презентации, демонстрирующий вызов формы с перечнем запущенных клиентов тестирования

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

Скрин слайда презентации, демонстрирующий форму «Клиенты тестирования» с перечнем всех доступных клиентов тестирования
Скрин слайда презентации, демонстрирующий форму «Клиенты тестирования» с перечнем всех доступных клиентов тестирования

Если иконка с цифрой зелёная — значит, клиент уже запущен, подключён к сценарию и с ним можно работать. Выбор осуществляется простым кликом: выбираем нужного клиента, нажимаем кнопку «Выбрать», после чего продолжаем работу с ним.

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

Новые возможности планов и итерация тестирования

Есть такая сущность в «1С:Сценарное тестирование», как «План тестирования».

Скрин слайда презентации, демонстрирующий новые изменения в части планов и итераций тестирования
Скрин слайда презентации, демонстрирующий новые изменения в части планов и итераций тестирования

В общем понимании, план тестирования — это документ, который описывает, как будет проходить тестирование, кто его выполнит, какие ресурсы будут задействованы, какой объем работ предстоит и так далее. Дополнительно ввели ещё одно понятие — «Итерация тестирования». Это исполнение плана на конкретной версии программы.

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

Но возник вопрос: что делать, если некоторые тесты нужно выполнять строго последовательно — один за другим? Например, важно дождаться завершения обновления системы до старта самих тестов либо последовательное выполнение этапов обмена данными (нельзя запускать третий этап ранее первого и второго).

Скрин слайда презентации, демонстрирующий добавления механизма последовательного запуска заданий
Скрин слайда презентации, демонстрирующий добавления механизма последовательного запуска заданий

Для решения этой проблемы ввели в задание специальное поле «Предыдущие задания», позволяющее указать зависимости между заданиями. Отмечаются нужные пункты простым кликом мыши.

Скрин слайда презентации, демонстрирующий настройку механизма последовательного запуска заданий
Скрин слайда презентации, демонстрирующий настройку механизма последовательного запуска заданий

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

Скрин слайда презентации, демонстрирующий настройку механизма перезапуска заданий в случае возникновения сбоев
Скрин слайда презентации, демонстрирующий настройку механизма перезапуска заданий в случае возникновения сбоев

После настройки можно визуально увидеть, как автотесты будут запускаться на диаграмме Ганта: зависимости тестов друг от друга, их последовательность и прочее.

Таким образом, появляется возможность контролировать порядок запуска: один тест выполняется строго после другого. За счёт уменьшения количества ложных срабатываний тесты становятся стабильнее. Если предыдущий автотест завершился неудачно, последующий запускать бессмысленно — ложных срабатываний не возникнет.

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

В целом, правильнее начинать тестирование с составления плана (особенно актуально для ручного тестирования), а уже затем приступать непосредственно к процессу тестирования.

Скрин слайда презентации, демонстрирующий новые изменения в части добавления новых заданий из итераций в планы тестирования
Скрин слайда презентации, демонстрирующий новые изменения в части добавления новых заданий из итераций в планы тестирования

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

Скрин слайда презентации, демонстрирующий добавление новых заданий в итерацию тестирования
Скрин слайда презентации, демонстрирующий добавление новых заданий в итерацию тестирования

Сейчас этот механизм доработан. Тестировщик теперь создаёт первоначальный простой (а порой и вовсе пустой) план, запускает итерацию, берёт новую сборку и приступает к тестированию, попутно добавляя необходимые проверки прямо в ход выполнения итерации.

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

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

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

Скрин слайда презентации, демонстрирующий провалившееся в ходе выполнения задание в итерации тестирования
Скрин слайда презентации, демонстрирующий провалившееся в ходе выполнения задание в итерации тестирования

Тут возникал вопрос — если заполнить план тестирования полностью, то в итерацию попадут абсолютно все проверки. Что с ними делать? Либо вручную удалять эти проверки из итерации, либо вручную отмечать их как выполненные. Механизм был доработан, и теперь можно продолжить предыдущую итерацию. Создаётся новая итерация, куда попадают лишь те проверки, которые ранее не были завершены или завершились неудачно. Это немного сокращает объём ручного труда.

Копирование группы тестов со сценариями

И ещё одно небольшое улучшение. При открытии новой ветки разработки возникает необходимость копирования пачки тестов и дальнейшей работы с ними отдельно.

Скрин слайда презентации, демонстрирующий возможность копирования групп тестов
Скрин слайда презентации, демонстрирующий возможность копирования групп тестов

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

Скрин слайда презентации, демонстрирующий настройку параметров копирования групп тестов
Скрин слайда презентации, демонстрирующий настройку параметров копирования групп тестов

Достаточно найти нужную группу тестов, нажать кнопку копирования, настроить параметры — и всё! Далее уже можно переименовывать копии и спокойно работать с тестами.

Скрин слайда презентации, демонстрирующий итоговый результат копирования групп тестов
Скрин слайда презентации, демонстрирующий итоговый результат копирования групп тестов

На этом всё. При возникновении вопросов и предложений пишите в Telegram-канал или на почту.

Скрин слайда презентации с сcылками на официальную электронную почту и канал в Telegram
Скрин слайда презентации с сcылками на официальную электронную почту и канал в Telegram

Всем большое спасибо. Всего доброго.