Найти в Дзене

Упрощение, расширение и тесты кодом: новые возможности «1С:Сценарное тестирование»

Традиционно в первые выходные марта прошел партнерский семинар фирмы «1С». Тема автоматизированного тестирования была затронута в рамках докладов секции «Развитие 1С:Бухгалтерии»: Доклады посвящены новым возможностям инструмента «1С:Сценарное тестирование», которые появятся в версии 3.0.35. И это прекрасная возможность заглянуть в будущие. Пристегивайте Эйнштейна. Разгоняемся до 88 миль в час. Ну, старушка «Делориан», не подведи! Первый доклад: «Новое в Сценарном тестировании» (Александр Плотников, руководитель группы Автоматизации тестирования ПП, 1С) Свой доклад Александр Плотников начал со стратегии дальнейшего развития инструмента «1С:Сценарное тестирование»: Упрощение эксплуатации В части упрощения эксплуатации появились следующие новые возможности: Очистка устаревших версий платформы При тестировании программных продуктов требуется производить проверку на нескольких версиях платформы 1С, так как есть тестирование в модели сервиса, есть рекомендуемые версии платформ и т.д. Все нуж
Оглавление

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

  • Новое в Сценарном тестировании (Александр Плотников, руководитель группы Автоматизации тестирования ПП, 1С)
  • Сценарное тестирование: Пишем тесты кодом (Валерий Зайцев, разработчик, 1С)

Доклады посвящены новым возможностям инструмента «1С:Сценарное тестирование», которые появятся в версии 3.0.35.

И это прекрасная возможность заглянуть в будущие. Пристегивайте Эйнштейна. Разгоняемся до 88 миль в час. Ну, старушка «Делориан», не подведи!

Первый доклад: «Новое в Сценарном тестировании» (Александр Плотников, руководитель группы Автоматизации тестирования ПП, 1С)

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

Свой доклад Александр Плотников начал со стратегии дальнейшего развития инструмента «1С:Сценарное тестирование»:

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

Упрощение эксплуатации

В части упрощения эксплуатации появились следующие новые возможности:

  • Очистка устаревших версий платформы
  • Очистка истории выполнения тестов
  • Очистка неиспользуемых макрошагов
  • Заполнение каталога платформы для пользователей
  • Проверка заполнения шагов пакета

Очистка устаревших версий платформы

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

При тестировании программных продуктов требуется производить проверку на нескольких версиях платформы 1С, так как есть тестирование в модели сервиса, есть рекомендуемые версии платформ и т.д. Все нужные версии платформы 1С заносятся в справочник «Сборки платформы» и со временем он разрастается. Многие версии платформы 1С становятся неактуальными и их надо удалять из справочника. На удаление вручную уходит много времени, которое состоит из анализа потребности версии платформы 1С, пометки на удаление и самого удаления. Из практики - на ручное удаление уходит от 12 до 20 часов в год.

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

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

Реализована данная возможность через регламентное задание «Автоматически очищать неиспользуемые сборки». Настроить данное регламентное задание можно непосредственно из справочника «Сборки платформы».

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

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

В процессе тестирования: ночных выполнениях пакетов тестирования, запуска отдельных тестов и тест-наборов в рабочее время и при ручном тестировании вся информация о выполнении тестов хранится в базе «1С:Сценарное тестирование». Со временем данная информация становится неактуальной и накапливается. Из практики - за месяц история о выполнении может достигать порядка 30-40 ГБ, так как включает в себя картинки, дампы и другие данные. Очистка такого объема информации может достигать 6 часов в месяц.

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

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

Данная возможность также реализована через регламентное задание, которое называется «Автоматически очищать историю». Настроить данное регламентное задание можно из «Журнала выполнения». При настройке можно отдельно указать глубину хранения истории для автоматических проверок и отдельно для ручных проверок.

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

Очистка неиспользуемых макрошагов

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

В «1С:Сценарное тестирование» есть такая сущность, как макрошаг - часть сценария тестирования, которая вынесена в отдельный подсценарий (процедуру) и может быть вызвана в сценарии тестирования одной командой (шагом).

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

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

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

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

Заполнение каталога платформы для пользователей

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

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

Раньше для этого было необходимо зайти под каждым пользователем и выбрать путь к каталогу используемых файлов платформы в карточке версии платформы. Либо пользователю под правами администратора открыть регистр «Пути к исполняемым файлам пользователей» и вручную продублировать для каждого пользователя запись с нужной версией платформы 1С.

Для быстрого добавления каталога платформы всем пользователям базы на форме справочника «Сборки платформы» было добавлено два варианта заполнения по соответствующим гиперссылкам:

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

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

Для варианта «Заполнить каталог для пользователей» программа попытается для каждого указанного пользователя построить путь к новой версии платформы, на основании пути к предыдущим версиям платформы. Если программа не сможет этого сделать, то для соответствующих пользователей будет выдано предупреждение о том, что путь не был заполнен. Данный вариант нужно использовать, когда у каждого пользователя пути к установленным файлам платформы разные.

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

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

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

Пример:

В справочнике «Сборки платформы» заведена платформа 8.3.22.2283.

  • У первого пользователя данная версия платформы располагается по пути: «C:\Program Files\1cv8\8.3.22.2283\bin».
  • У второго пользователя по пути: «C:\Platform\1cv8\8.3.22.2283\bin».

Добавляется новая версия платформы 8.3.23.1782.

Если использовать команду «Заполнить каталог для пользователей», то:

  • для первого пользователя создастся запись с путем «C:\Program Files\1cv8\8.3.23.1782\bin».
  • для второго пользователя - «C:\Platform\1cv8\8.3.23.1782\bin».

Если использовать команду «Копировать каталог для пользователей», то и для первого и для второго пользователя создастся запись с путем «C:\Program Files\1cv8\8.3.23.1782\bin».

Проверка заполнения шагов пакета

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

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

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

Расширение функционала

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

  • Новый шаг «Закрыть открытые окна»
  • Новые возможности шага «Процедура на встроенном языке»
Скрин слайда презентации, демонстрирующий основные направления развития инструмента «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий основные направления развития инструмента «1С:Сценарное тестирование»

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

  • Новый шаг «Закрыть открытые окна»
  • Новые возможности шага «Процедура на встроенном языке»

Новый шаг «Закрыть открытые окна»

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

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

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

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

В списке исключений для заголовков окон можно использовать символы «*» и «?», чтобы не привязываться к номерам и датам в наименовании окон.

Тут мне хочется обратить Ваше внимание на яркое удобство данного шага: кнопки «Добавить «Шлюз»» и «Добавить открытые окна» для быстрого заполнения исключений.

Если при закрытии окна возникает диалог, то по умолчанию программа отказывается от применения изменений.

Новые возможности шага «Процедура на встроенном языке»

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

Данным возможностям посвящено отдельное выступление «Сценарное тестирование: Пишем тесты кодом», которое следует за данным докладом.

Полезные ссылки и обратная связь:

Второй доклад: «Сценарное тестирование: Пишем тесты кодом» (Валерий Зайцев, разработчик, 1С)

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

В докладе Валерия обработка для создания сценариев тестирования именуется «Сценарное тестирование интерактивных действий» (СТИД).

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

Данная обработка является универсальным инструментом автоматизации тестирования:

  • Входит в состав продуктов «1С:Сценарное тестирование» и «1С:Тестировщик». Последний инструмент, по сути, и есть данная обработка воплощенная в виде конфигурации
  • Может использоваться автономно в любой информационной базе
  • Имитирует действия пользователя
  • Автоматизирует сверку результатов
  • Формирует отчет по результатам проверки приложения

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

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

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

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

Возможности шага «Процедура на встроенном языке» почти безграничны. А вот практическое применение данного шага сталкивается с трудностями:

  • Трудно писать, так как требуется навыки программирования и знания платформы 1С
  • Неудобно отлаживать
  • Трудно разобраться с причинами падения тестов
  • И для того, чтобы их поддерживать в актуальном состоянии требуется программист
Скрин слайда презентации, посвященный сложностям работы с шагом «Процедура на встроенном языке»
Скрин слайда презентации, посвященный сложностям работы с шагом «Процедура на встроенном языке»

Для того чтобы повысить эффективность данных шагов было принято решение устранить известные недостатки.

Во-первых, добавили набор команд, которые помогают сделать код более компактным и читабельным.

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

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

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

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

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

В-четвертых, повысили информативность причины о «падении» при выполнении шага «Процедура на встроенном языке» непосредственно в сценарии тестирования. Если возникает ошибка при выполнении данного шага, то в сообщении будет конкретный номер строки и указание причины.

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

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

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

На этом улучшения не закончатся. Есть еще много задумок для данного шага.