Mobile Saturday. Тема 4. Автоматизация тестирования верстки ...

Post on 22-Jan-2018

591 views 7 download

Transcript of Mobile Saturday. Тема 4. Автоматизация тестирования верстки ...

Приветствуем в мастере настройки UI автотестов для

Android!

Для запуска презентации – «Автоматизация тестирования верстки» нажмите кнопку «Next >»

Александр

Хотемской

Web, APIs,

Android, iOS,

Game Dev

Содержание

•Что это?

•Что хорошо? Что плохо?

•Подход прямого тестирования свойств у элементов

•Подход сравнения скриншотов

Что это?• Тестирование верстки (UI, разметки) – проверка

внешнего вида приложения на наличие регрессии видимой части.

• Это НЕ функциональное тестирование. Проверяется только внешний вид

• Это НЕ кросс-платформенное, кросс-браузерноетестирование

Что это?• Сравнительно новый вид

тестирования

• Подходит для web, native, webview, hybrid приложений

• Не панацея от всех UI багов

• Стоит применить, если получится дешевле чем ручная проверка

• Хорошо подойдет для множества однотипных экранов, которые долго проверять руками

Что хорошо?• Позволяет проводить автоматическую регрессию UI

части

• Позволяет разработчику убедится что верстка не «плывет»

• Проверка элементов с точностью до пикселя

• Ловит баги, которые можно пропустить из-за «замыливания» глаз

• Сильный wow-эффект для заказчика – «верстка контролируется автоматически» - звучит очень сильно

Что плохо?

• Нужно работать – само ничего не будет

• Требуется background в автоматизации

• Отнимает дополнительное время на поддержку – и не всегда овчинка стоит выделки

• Частые срабатывания из-за «шума» на страничках и ложно-положительные результаты

ПодходыПроверка свойств у тестируемых элементов –размеры, отступы, цвет, шрифт, текст, и т.д.

Снятие скриншотов на регулярной основе, и сравнение этих скриншотов между собой

VS

Инструменты

Прямая проверка свойств элементов

• Проверяем конкретные значения параметров у конкретных элементов

• Сравниваем параметры с ожидаемыми

• Подходит для всех фреймворков

• Обычно можно встроить в функциональные тесты

Прямая проверка свойств элементов

• Координаты, размеры, видимость

• isEnabled, isSelected

• getAttribute

• Localization

Прямая проверка свойств элементов

• Нужно иметь разные наборы ожидаемых параметров для разных экранов

• Сложно проверить все – куча возможных вариантов регрессии

• Изменение интерфейса – автоматизатор плачет и просит пощадить

• Если встроено в функциональные тесты – тесты имеют еще одну причину для падений

Прямая проверка свойств элементов

• Встраивание проверок верстки в функциональные тесты

• Пример готового решения –Galen Framework

Прямая проверка свойств элементов

Сравнение скриншотов

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

• Не нужно хранить тонны конфигураций для каждого устройства – достаточно хранить эталонные скриншоты

• Нет точечных проверок параметров –сравнивается внешний вид целиком, больше покрытие

• Замечает даже малейшие изменения интерфейса (вплоть до пикселя)

Сравнение скриншотов – уровень быстро и дешево

Сравнение скриншотов• Готовые инструменты:

• Yandex aShot

• Facebook screenshot-tests-for-android

• Самописные – можно самому реализовать попиксельное сравнение двух картинок

• Facebook screenshot-tests-for-android

• Хитро перехватывает вызовы к View, чтобы отрендерить его сферично в вакууме

• Подменяет вызовы measure() layout() draw()

Сравнение скриншотов

Итоги• Каждому проекту свой подход

• Инструментов маловато, но постоянно появляются новые

• Оцените насколько необходимо вам тестирование верстки