Традиционно в первые выходные марта прошел партнерский семинар фирмы «1С». Тема автоматизированного тестирования была затронута в рамках докладов секции «Развитие 1С:Бухгалтерии»:
- Новое в Сценарном тестировании (Александр Плотников, руководитель группы Автоматизации тестирования ПП, 1С)
- Сценарное тестирование: Пишем тесты кодом (Валерий Зайцев, разработчик, 1С)
Доклады посвящены новым возможностям инструмента «1С:Сценарное тестирование», которые появятся в версии 3.0.35.
И это прекрасная возможность заглянуть в будущие. Пристегивайте Эйнштейна. Разгоняемся до 88 миль в час. Ну, старушка «Делориан», не подведи!
Первый доклад: «Новое в Сценарном тестировании» (Александр Плотников, руководитель группы Автоматизации тестирования ПП, 1С)
Свой доклад Александр Плотников начал со стратегии дальнейшего развития инструмента «1С:Сценарное тестирование»:
- С одной стороны, это упрощение эксплуатации. Чтобы инструмент был проще, понятнее и удобнее в использовании. Чтобы с ним было легко начать работать.
- С другой стороны, это расширение функционала. Чтобы одного инструмента было достаточно для закрытия всех потребностей команд тестирования.
Упрощение эксплуатации
В части упрощения эксплуатации появились следующие новые возможности:
- Очистка устаревших версий платформы
- Очистка истории выполнения тестов
- Очистка неиспользуемых макрошагов
- Заполнение каталога платформы для пользователей
- Проверка заполнения шагов пакета
Очистка устаревших версий платформы
При тестировании программных продуктов требуется производить проверку на нескольких версиях платформы 1С, так как есть тестирование в модели сервиса, есть рекомендуемые версии платформ и т.д. Все нужные версии платформы 1С заносятся в справочник «Сборки платформы» и со временем он разрастается. Многие версии платформы 1С становятся неактуальными и их надо удалять из справочника. На удаление вручную уходит много времени, которое состоит из анализа потребности версии платформы 1С, пометки на удаление и самого удаления. Из практики - на ручное удаление уходит от 12 до 20 часов в год.
Чтобы не тратить время на ручные действия была добавлена возможность автоматического удаления неиспользуемых версий платформы 1С.
Реализована данная возможность через регламентное задание «Автоматически очищать неиспользуемые сборки». Настроить данное регламентное задание можно непосредственно из справочника «Сборки платформы».
Очистка истории выполнения тестов
В процессе тестирования: ночных выполнениях пакетов тестирования, запуска отдельных тестов и тест-наборов в рабочее время и при ручном тестировании вся информация о выполнении тестов хранится в базе «1С:Сценарное тестирование». Со временем данная информация становится неактуальной и накапливается. Из практики - за месяц история о выполнении может достигать порядка 30-40 ГБ, так как включает в себя картинки, дампы и другие данные. Очистка такого объема информации может достигать 6 часов в месяц.
Для контроля за объемами хранимой информации о выполненных тестах была добавлена возможность автоматически удалять историю.
Данная возможность также реализована через регламентное задание, которое называется «Автоматически очищать историю». Настроить данное регламентное задание можно из «Журнала выполнения». При настройке можно отдельно указать глубину хранения истории для автоматических проверок и отдельно для ручных проверок.
Глубина - это период, за который нужно оставить историю выполнения. Соответственно, вся информация, которая старше указанного периода будет очищаться.
Очистка неиспользуемых макрошагов
В «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С
- Неудобно отлаживать
- Трудно разобраться с причинами падения тестов
- И для того, чтобы их поддерживать в актуальном состоянии требуется программист
Для того чтобы повысить эффективность данных шагов было принято решение устранить известные недостатки.
Во-первых, добавили набор команд, которые помогают сделать код более компактным и читабельным.
Во-вторых, позаботились, чтобы ответственному не нужно было запоминать и изучать данные команды. Чтобы в любой момент можно было вызвать синтаксис-помощник, найти нужную команду, вставить в код и использовать.
В-третьих, улучшили отладку кода. Теперь проверить синтаксис написанного кода и выполнить его можно непосредственно из окна редактора до записи шага: сначала убедился, что код работает, а потом записать в сценарий. В окне редактора выводится результат о выполнении шага. Если в процессе выполнения возникла ошибка, то в сообщении об ошибке будет конкретный номер строки и указание причины.
В-четвертых, повысили информативность причины о «падении» при выполнении шага «Процедура на встроенном языке» непосредственно в сценарии тестирования. Если возникает ошибка при выполнении данного шага, то в сообщении будет конкретный номер строки и указание причины.
Благодаря данным улучшениям шагом «Процедура на встроенном языке» стало пользоваться гораздо удобнее. Более того, как показала практика, такие тесты может писать не только программист, знающий платформу, но и специалист, понимающий структурные вещи: условный оператор Если, операции с циклами, операции с переменными. Все остальное есть в синтаксис-помощнике.
На этом улучшения не закончатся. Есть еще много задумок для данного шага.