Именно этой теме мы посвятили встречу Android-разработчиков и мобильных тестировщиков на митапе Android Paranoid и обсудили:
- Как разработчику с помощью тестирования привести проект к стабильности?
- Чем разработчик может помочь тестировщику?
- Как выбрать лучший инструмент для повышения качества разработки?
Таймкоды проставлены, добро пожаловать под кат.

Стабильность 3д
Владимир Генович, ведущий программист (Яндекс.Деньги)Я довольно поздно начал писать тесты. Всё потому, что во многих материалах по тестированию условный пример выглядит как assertEquals(2+2, 4), а потом ты смотришь на свой код и не знаешь, за что взяться. И вот настал день, когда на новом проекте я решил писать код так, чтобы он был лучше подготовлен к тестированию. Потом я разобрался в том, почему некоторые тесты не помогают и как этого избежать, а дальше научился применять все это к legacy-коду.
Цель доклада показать разработчикам (новичкам в тестировании), как можно внедрить тестирование в legacy и как это поможет привести проект в порядок в плане стабильности. И в целом, поделюсь собственными практиками, которые помогут писать код лучше.
Таймкоды
0:20 Как началась история тестирования
1:46 Готовим свой код к тестированию. Чистые функции
3:02 А что делать с legaсу? Подход 3д: доказывай, доверяй, допускай.
3:40 Доказывай, что код работает, с помощью тестов
5:00 Тестирование чистых функций на диапазоне входных значений
6:30 Почему не надо использовать случайные значения
8:12 Как выбирать диапазоны значений для тестирования
10:39 Когда Unit-тесты могут не помочь?
11:36 Доверяй своим типам данных и проверенному коду
12:48 Оборачиваем примитивы в объекты для уменьшения возможных вариантов
14:05 Фабричные методы для создания объектов
15:08 Концепция Either
16:44 2 кейса для тестирования фабричных методов
17:43 Покрытый тестами код работает, но приложение падает: почему?
18:09 Допускай, что внешние системы могут работать некорректно
18:50 Either для защиты
19:23 Создание чистых конвейеров от ввода до вывода
21:20 Зачем писать столько тестов, всё же работает?
22:28 Подведение итогов: доказывай, доверяй, допускай.
Как упростить жизнь мобильному
тестировщику
Дмитрий Жаков, тестировщик (Яндекс.Деньги)В нашей компании мобильная разработка и тестирование работают как единое целое, мы всячески стараемся помочь друг другу. И можем с уверенностью говорить, что разрабатывать можно не только фичи в приложении! Вы, как разработчик, в силах помочь тестированию, что даст прирост скорости проверки продукта. В своем докладе я рассмотрю те способы, которые работают в Яндекс.Деньгах. Они позволяют уменьшать количество действий во время тестирования или подготовки данных для него.
Таймкоды
1:55 С чего начинается путь тестировщика? Методы тестирования
2:15 Совет 1. Логирование: для чего нужно и что делать, если логов слишком много
4:03 Логирование при проверке пользовательских событий
7:00 Проверка событий поведения пользователей: Appium и Espresso
10:29 Совет 2. Забота о matchers и доступах UI-элементов
12:35 Chuck: инструмент для быстрого доступа к информации
13:50 Секретное меню для разработчика и QA
16:48 Запуск приложения
18:42 Как идентифицировать устройство в мобильном зоопарке?
23:12 Тестовое окружение: тестовый сервер, подмена трафика и система подготовки пользователей
29:56 Подведение итогов: чем разработчик может помочь тестировщику
Самый модный UI-test фреймворк в
2к20
Дмитрий Манько, Android-разработчик (Ситимобил)Все разработчики рано или поздно столкнутся с тем, что захочется повышать качество автоматизированными средствами. Сейчас рынок Android-разработки переполнен отличными инструментами, а нужно выбрать лучший. В докладе представлю обзор популярных фреймворков по небольшому тест-кейсу, как справляются разные фреймворки с простыми и нестандартными вещами.
Таймкоды
0:32 Что такое тестирование?
1:05 Первый шаг к тестированию: выбор фреймворка
1:55 PageObject: один из критериев выбора
3:55 Проверка фреймворков на UI-test и test-case (пример с проверкой номера телефона)
6:19 1 тест на Espresso: ожидание и реальные запросы
11:52 2 тест на UIAutomator
14:08 3 тест на Barista
15:45 4 тест на Kakao: отличительные особенности
17:28 5 тест Kaspresso: 3 довольных Дрейка.
20:49 Подведение итогов: что необходимо сделать при выборе фреймворка.