Семинар 9
Автоматизированное тестирование пользовательского интерфейса. Настольные приложения.
Для автоматизированного тестирования пользовательского интерфейса применяются специальные программные инструменты, которые симулируют воздействия на пользовательский интерфейс приложения и проверяют его реакцию. Они поддерживают различные типы GUI-приложений (Windows, .NET, Java, Web, Mobile и т.д.) и значитально отличаются по предоставляемым возможностям. Они могут представлять собой полноценные IDE для разработки и исполнения тестовых сценариев или библиотеки, предоставляющие возможность симулировать действия пользователя. Большинство из них являются коммерческими продуктами. Полный список можно найти в Википедии.
С целью получения опыта разработки тестов для графического интерфейса мы будет использовать библиотеку AssertJ. Это библиотека с открытым исходным кодом на языке Java, которая интегрируется с JUnit и TestNG.
Слайды
Видео
Пример
Проект с примерами GUI-тестов на фреймворке AssertJ находится здесь.
Рекомендуется использовать JDK 8. У более поздних версий могут быть проблемы с совместимостью (к сожалению разработчики AssertJ не успевают за эволюцией Java).
Для запуска тестов под MacOS необходимо разрешить IntelliJ IDEA управлять компьютером:
Домашнее задание
Срок сдачи без штрафа: 01.12.2020
Задание
- Используя фреймворк AssertJ, разработать GUI-тесты для приложения Calculator на JUnit (заготовка здесь) или TestNG (заготовка здесь).
- Тесты должны обеспечивать полное покрытие кода (JaCoCo) и демонстрировать ошибку в реализации.
- Оценить тестабельность приложения. Кратко описать проблемы, которые возникли при разработке тестов и которые могут возникнуть в будущем из-за изменений в GUI приложения. Кратко 2-5 предложений.
- Изменять код приложения Calculator для улучшения тестабельности не разрешается.
Проект с приложением Calculator и заготовками для тестов находится здесь.
Ссылки
Литература
Тестирование графического интерфейса:
- Тестирование графического интерфейса (Wikipedia)
- Инструменты тестирования графического интерфейса (Wikipedia)
Коммерческие инструменты тестирования графического интерфейса:
- Visual Studio
- TestComplete, сайт российского R&D здесь
- Ranorex
- Micro Focus Unified Functional Testing (UFT), formerly known as QuickTest Professional (QTP) (Wikipedia)
- Silk Test
Открытая библиотека AssertJ для тестирования Swing-приложений:
- AssertJ Swing (GitHub)
Тестирование расширений для IntelliJ IDEA: