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