Android Paranoid 2020 || Стабильность 3д (Владимир Генович)

168
Опубликовано 4 августа 2020, 9:32
Владимир Генович, ведущий программист (Яндекс.Деньги)

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