На сегодняшний день пользователи получают доступ к приложениям через большое многообразие веб-браузеров. Теперь разработчики должны учитывать каким образом эти новые и разнообразные технологии меняют способ представления и восприятия программного обеспечения их пользователями. Тестировщики обязаны проводить дополнительные проверки при изменениях, влияющих на визуальную составляющую тестируемой программы, а именно, предусмотреть наличие специальных тестов, отлавливающих незапланированные при разработке изменения в пользовательском интерфейсе.
Когда количество таких тестов выходит за разумные пределы, что тестировать их вручную при каждом малейшем изменении кода становится значительно труднее, а при добавлении нового функционала это количество и вовсе увеличивается, наиболее разумным решением является автоматизация.
На данный момент самым распространённым способом автоматизированной проверки изменений в пользовательском интерфейсе является так называемое визуальное регрессионное тестирование. Суть этого вида тестирования состоит в проверке снимков элементов пользовательского интерфейса на соответствие эталонным снимкам, сделанным в стабильной версии программного продукта.
Целью данной работы является разработка средств автоматизированного визуального тестирования для системы Customer's Canvas [1] (более подробное описание этого программного продукта будет представлено в п. 1). Для достижения поставленной цели требуется решить ряд задач:
- Разработать тестовый стенд.
- Проанализировать и подобрать инструмент визуального тестирования.
- Реализовать визуальное тестирование для системы Customer's Canvas.
Наличие тестового стенда необходимо для запуска Customer’s Canvas в окне веб-браузера и работы с конфигурациями данного продукта в интерактивном режиме вместо написания программного кода, загружающего тестовые конфигурации. Это позволит тестировщикам со слабыми навыками программирования создавать и поддерживать тесты. Более детальные требования к тестовому стенду будут рассмотрены в п. 2.1.
В рамках данной работы были решены все поставленные задачи. А именно:
- Реализован тестовый стенд согласно всем требованиям и лучшим практикам.
- Проанализировано несколько инструментов в качестве сред создания визуального тестирования, выбран наиболее подходящий для данной работы.
- Реализована логика визуального тестирования в выбранных инструментах.
- Реализованы сами визуальные тесты.
Таким образом, цель — разработка средств визуального тестирования для системы Customer's Canvas - достигнута, разработано приложение, на базе которого выполняется тестирование, выбран инструмент и реализованы визуальные тесты.
Решение успешно апробировано в ходе подготовки двух релизов Customer’s Canvas и уже используется командой тестирования.
В дальнейшем планируется развивать решение по следующим направлениям:
- Улучшение тестового стенда, введение работы с файлами конфигурации через веб-сокеты.
- Интеграция с CI-сервером на базе TFS для автоматического запуска скриптов при изменениях в пользовательском интерфейсе.
- Интеграция с корпоративным аккаунтом Slack для централизованного получения отчётов об успешности прохождения тестов.