21
Приветствуем в мастере настройки UI автотестов для Android! Для запуска презентации – «Автоматизация тестирования верстки» нажмите кнопку «Next >»

Mobile Saturday. Тема 4. Автоматизация тестирования верстки (Александр Хотемской)

  • Upload
    goit

  • View
    591

  • Download
    7

Embed Size (px)

Citation preview

Page 1: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

Android!

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

Page 2: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

Александр

Хотемской

Web, APIs,

Android, iOS,

Game Dev

Page 3: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

Содержание

•Что это?

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

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

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

Page 4: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

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

Page 5: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

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

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

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

Page 6: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

части

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

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

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

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

Page 7: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

Что плохо?

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

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

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

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

Page 8: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

VS

Page 9: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

Инструменты

Page 10: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

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

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

Page 11: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

• isEnabled, isSelected

• getAttribute

• Localization

Page 12: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

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

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

Page 13: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

Page 14: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

Page 15: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

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

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

Page 16: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

Page 17: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

• Yandex aShot

• Facebook screenshot-tests-for-android

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

Page 18: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

• Facebook screenshot-tests-for-android

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

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

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

Page 19: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)

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

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

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

Page 20: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)
Page 21: Mobile Saturday. Тема 4. Автоматизация тестирования верстки  (Александр Хотемской)