Найти тему

Несколько причин почему профессия "тестировщик" не умрет

Ручные тестировщики скоро вымрут или нет?
Извечный вопрос и пересуды людей, далеких от тестирования.
Но давайте разберемся и попытаемся ответить на 2 вопроса:
Может ли автоматизация полностью заменить ручное тестирование?
Может ли искусственный интеллект заменить ручного тестировщика или автоматизатора?

Для начала давайте уточним, что делает ручной тестировщик, а что автоматизатор.
Смоделируем ситуацию. У нас есть какое-то приложение и мы решили добавить в него какую-то новую функцию.
Продукт-менеджер написал тех. задание.
Далее это тз посмотрел аналитик и, возможно, его немного изменил/дописал или вообще переписал полностью. Но аналитики есть не у всех, поэтому, возможно, тз сразу отдали разработчику.
Разработчики, возможно, вместе с тестировщиками обсудили задачу, и после этого в тз снова могли появиться изменения.
Наконец, разработчик начал реализацию новой функции, а тестировщик в этот момент пошел составлять тест-кейсы, чек-листы и готовить тестовые данные. На составление чек-листов и тест-кейсов, как правило, времени тратится меньше, чем на написание кода, но таких задач у тестировщика может быть несколько. Обычно на одного тестировщика приходится 2-3 разработчика. После того как разработчик написал реализацию, задача переходит к тестировщику.
Тестировщик проверяет функционал вручную по своим тест-кейсам. Если выявлены баги, задача возвращается на доработку разработчику. А может быть и такое, что найдется какая-то нестыковка в требованиях, которую не заметили раньше, и тогда уже изменения будут внесены в требования и в тест-кейсы. А может вообще бизнес решит изменить требования - тогда переделывать придется и разработчику код, и тестировщику тесты и, собственно, заново все тестировать.
После тестирования новой функции хорошо бы еще протестировать регресс, чтобы убедится, что доработки ничего не сломали.
После всех исправлений и тестирований задача уходит в продакшен, а тест-кейсы приобретают конечный вид.
И только после этого принимается решение, нужно ли эти тест-кейсы автоматизировать.
Автотесты пишутся на по готовым тест-кейсам на уже рабочий функционал для того, чтобы в последствии прогонять их как регресс, тем самым снимая с ручного тестировщика рутину постоянного ручного регресса и экономя его время.
Автоматизировать написанные тест-кейсы - это не быстро и достаточно дорого. По сути автотестер должен написать код и отладить его так, чтобы проверки всегда срабатывали правильно, то есть проходили, когда багов нет, и падали, когда появляется баг. То есть на каждый шаг в тест-кейсе пишется проверка; проверяться может сразу несколько моментов, например, ожидаемый эффект на фронте и изменения в базе данных.
Написание автотестов на одну такую доработку может занять несколько дней. Также надо понимать, что автотестер - это программист и его рабочий час стоит дороже, чем у ручного тестировщика. Мало того, после написания автотестов их нужно поддерживать. То есть по мере изменения приложения нужно изменять автотесты. И, как вы понимаете, это тоже требует времени автотестировщика. Поэтому автоматизируют далеко не все тесты. Как правло автоматизируются тесты, проверяющие наиболее кретичный функционал, и, временные затраты на которые благодоря автоматизации существенно снижаются.
Конечно же автотестер не сможет провести оперативное тестирование нового функционала, если будет сначала автоматизировать тест-кейсы, не проверяя их вручную. Любое изменение в функционале или тест-кейсах еще на этапе разработки будет означать постоянное переписывание автотестов, а это не то же самое, что внести в ручной тест одно слово в ожидаемый результат.
В целом ответ на вопрос о полной замене ручных тестировщиков автотестером очевиден - нет. У этих специалистов абсолютно разная роль на проекте. Конечно, можно привести в пример фулстек-тестировщиков, которые и ручные тесты проводят, и пишут автотесты. Но, если ручного тестирования больше, чем написания тестов, просто нет смысла платить автотестеру за ручные тесты, так как
ручные тестировщики намного дешевле.

Теперь поговорим об Искуственном Интеллекте. Сможет ли заменить ИИ автотестера? Вопрос тот же, что и с разработчиками. И кажется, многие на него уже отвечали. На сегодняшний день - нет.
ИИ, конечно, может генерировать какой-то код, но качество и работоспособность его оставляют желать лучшего. И, конечно, без человеческого вмешательства ну совсем никак. ИИ может помочь в отдельно взятых случаях, но полагаться на него пока еще рано. К тому же все программисты, которых я знаю, мягко говоря, не очень лестно отзываются о способностях ИИ к написанию кода.
Переложить ручное тестирование на ИИ также представляется затруднительным. Вероятно, он мог бы помочь в составлении тест-кейсов, но опять-таки под надзором опытного тестировщика. Тест-кейсы пишутся на основе требований, а
требования, которые хорошо понятны человеку, могут быть совершенно непонятны для ИИ.
Что касается ручного тестирования, тут еще сложней.
То, что мы можем протестировать визуально буквально за пару минут, для ИИ может быть невозможным. Например, такие вещи, как капча, все еще являются непреодолимым препятствием для компьютерного "интеллекта". Да и тестирование юзабилити интерфейса возможно пока исключительно для человека.

Я уверена что моя профессия не вымрет и я не останусь без работы ближайшие ллет 15-20 точно. Ручное тестирование на данный момент - один из самых простых и эффективных способов поддержания качества продукта. И изменение этого тренда в будущем я пока не вижу.