UI-тестирование
March 10, 2021

UI-тестирование с чего начать

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

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

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

Дальше нужно определить по какому принципу выбирать функционал для тестирования, что в первую очередь, что во вторую, а что не стоит автоматизировать. Нет смысла разрабатывать полноценный тест для функционала, который находится в разработке и будет регулярно меняться. Можно разработать сценарий через запись действий пользователя. Применение методики TDD, тем более для UI-тестирования, отдельная тема для обсуждения. А вот функционал, который прошел пользовательскую приемку и установлен в промышленной среде, идеальный кандидат для полноценного автоматизированного теста.

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

Ну и теперь можно разрабатывать тестовые сценарии и запускать их.
Платформа 1С:Предприятие 8.3 предоставляет программный объект "Тестируемое приложение". На языке 1С разрабатывается тестовый сценарий с использованием методов объекта. Для исполнения тестовых сценариев запускается 2 клиентских приложения: тестируемой системы в режиме Тест-клиента и тестирующей системы в режиме Тест-менеджера.

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