Неважно, работаете ли вы в стартапе или крупной организации, продуктовой компании или аутсорсинговой. Всё это совершенно неважно, если в один момент вы решили не просто писать код, но и нести ответственность за него.

Именно этой теме мы посвятили встречу 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 – Подведение итогов: что необходимо сделать при выборе фреймворка.