Зачем мне писать автотесты?
1️⃣ Экономия времени и сил, улучшение прогнозируемости
Без автотестов все мои косяки могут найти в код-ревью (если повезёт), и тогда мне надо фиксить косяк и отправлять обратно на код-ревью – значит, мы потратили лишнее время. А может не повезти – и тогда на код-ревью их не заметят и увидят только на ручных тестах – и тогда мне надо фиксить косяк, отправлять на код-ревью, а потом заново тестировать – так мы потратили ещё больше времени. А время разработки – это потраченные деньги компании.
А я ж хочу накодить фичу побыстрее и спокойно отправить в прод.
Да и при рефакторингах мне куда спокойнее, если вижу, что автотесты при рефакторинге не сломались. Значит либо я всё хорошо порефакторил, либо тесты плохо написали, а с меня взятки гладки =)
Шутка. Сам тесты поломал – сам иди и чини, умник.
Если вы вдруг подумали, что экономия времени будет заметна сразу – хрен там. Это вы увидите только после того, как написанные тесты начнут из раза в раз переиспользоваться. А в первое время будут повышенные затраты времени на написание тестов и на существующий код и на новые фичи. Чем дальше, тем больше будет заметно снижение нагрузки на QA.
Да и не всё можно автоматизировать. Вряд ли у вас получится полностью автоматизировать тестирование какого-то флоу или фичи. И часть нагрузки все равно останется на ручных тестировщиках. Задача автотестов не в том, чтобы полностью снять нагрузку с QA, задача – снизить количество итераций, желательно до одной =).
2️⃣ Улучшение стабильности, уменьшение влияния человеческого фактора
Автотесты один раз написал и наслаждаешься, а QA-шеров корми, пои, спать уложи. Автотесты не устают и не теряют фокус. И не ноют "да вы охренели все задачи за день до конца спринта в тестирование отправлять, я вам чё, осьминог?". Плюс, когда пишешь автотесты — их видят и ревьюят другие, в отличие от ручных тестов, на которых можно схалявить или протупить.
А ещё автотесты, если они долгие, можно запускать в нерабочее время. И за овертайм тестировщику доплачивать не надо, удобно =)
3️⃣ Увеличение гибкости и управляемости
С помощью автотестов можно запускать одни и те же тесты на разных версиях API, и на уровне кода подменять любые части приложения, которыми ручному тестировщику управлять сложно/невозможно. Автотесты можно запускать на отдельной ферме устройств, что увеличивает охват и открывает возможность нахождения сложноуловимых багов. А ещё можно влиять на скорость прохождения автотестов с помощью улучшения железа, на котором их запускают. Проапгрейдить кожаный мешок куда сложнее.
4️⃣ Улучшение кода и его понятности
Автотесты - это документация, помогающая разработчикам разных платформ и QA понимать то, что происходит в куске кода, и говорить на одном языке. Да и сам по себе тот факт, что я не просто чето накодил, а написал тестируемый код, говорит об улучшении его понятности и читаемости. Хреновый код надо сначала рефакторить до тестируемого, а потом только писать на него автотесты.
5️⃣ Улучшение восприятия компании
Интегрировав автотесты в процесс разработки, можно с гордостью говорить об этом будущим кандидатам, а это положительно влияет на бренд компании. Отсутствие автотестов некоторыми воспринимается как плохо налаженные процессы и как ограничение возможностей развития в компании, что отпугивает часть кандидатов.
Post #142
604
- 👍 8
- 🔥 3
- ❤ 1
- 🫡 1