Эволюция требований к тестировщикам: что было 5 лет назад и что ждать в будущем?
В мире разработки программного обеспечения изменения происходят быстро. Какие-то технологии вспыхивают и исчезают, другие становятся незаменимыми составляющими нашей повседневной жизни. Мир тестирования программного обеспечения, как и любая другая сфера, не стоит на месте. За последние пять лет мы наблюдали не только новые требования к тестировщикам, но и эволюцию самих методов и подходов. В этой статье взглянем на то, какие требования предъявлялись к тестировщикам пять лет назад, то, как они отличались от требований сегодняшнего дня и что нам ожидать в будущем.
Ностальгия по тестировщикам: когда ручное тестирование было главным
Пять лет назад, когда я только начинала свою карьеру в IT, количество курсов тестирования можно было подсчитать по пальцам одной руки. Сами курсы имели простую тематику: тестовая документация, SQL для тестировщиков, API-тестирование, тест-анализ, тест-менеджмент.
В вакансиях на мидл-тестировщика прослеживались аналогичные требования: умение писать тест-кейсы, проводить ручное функциональное тестирование, создавать простые SQL запросы на уровне select, да и в принципе знать базовую часть о тестировании: что такое тестирование, какая тестовая документация используется в тестировании, что входит в баг-репорт и тест-кейсы, какие техники тест-дизайна существуют, какие существуют требования и чем отличается функциональное тестирование от нефункционального.
От джунов требовалось совсем мало — это знать лишь теорию тестирования: что такое тестирование, виды тестирования, краткое описание техник-тест дизайна. Сюда не входили SQL, API, баг-репорт.
Почему требования были настолько низкие? Потому что из-за отсутствия курсов профессиональной подготовки тестировщиков, самих профессиональных инженеров было мало. И нехватка сотрудников снижала требования к ним.
Во времена не столь популярного ИТ-направления — тестирование не требовало особых усилий, да и конкуренция почти отсутствовала. Тестировщика хватали с руками и ногами, если он знал, как делать запросы в SQL. Про автоматизацию не было и речи, если и требовалось, то достаточные знания и навыки — это запись шагов тест-кейса с помощью selenium и преобразование в авто-тест.
Обновленные стандарты: какие требования сейчас предъявляются к тестировщикам?
На сегодняшний день требования к тестировщикам повысились. И требования не только к мидл, но и к джунам.
С чем это связано? В Интернете появилось множество обучающих площадок. Обучение стало более доступным (реклама сыграла свою роль:»получи профессию с зарплатой от 100 000 рублей за 1 месяц» утрировано).
Требования к кандидатам выросли. Если в прошлом от джуна требовалась лишь «легкая» теория о тестировании, то в нынешнее время необходимость в хард скиллах значительно повысились до уровня мидл 5-летней давности. Навыки для мидл тестировщиков не стояли на месте, если достаточно было знать SQL, то сейчас нужно знать не только автоматизацию, но и CI/CD, Web UI, работа с логами и инструментами логирования (Kafka, ELK, Zabbix, PuTTY, WinSCP и так далее), работа с очередями и инструменты (RabbinMQ, Apache и прочее), работа с трафиком (различные снифферы: Charles, Fiddler, Proxyman и другие), не всегда, но всё же: тестирование производительности, инструменты управления версиями (GitHub, GitLab), знание гибких методологий управления проектов (Kibana, Scrum). Этот примерно базовый ряд требований к кандидату Middle Test-Engineer.
Стандарты будущего: какие требования ожидают тестировщиков?
Это стоит обсудить. Уже сейчас тестировщиков стали делить понемногу по двум направлениям: front-тестировщик и back-тестировщик. Возможно такое разделение продолжится, например, появятся отдельные тестеры, проверяющие базу данных более глубже, чем select (правильно ли выстроены ключи: FK и PK, все ли атрибуты указаны, верно ли разработчик связал таблицы, как указывалось в требованиях и/или архитектуре и так далее).
А с появлением Искусственного Интеллекта не стоит исключать, что и в этом направлении не будет требований. Конечно, для программ, которые используют ИИ — тестеру нейросеть знать обязательно. Здесь речь идёт больше о тестировании с применением Искусственного Интеллекта, а это:
обучить нейросеть, как тестировать ту, или иную программу (особенно актуально для комбинаторных тестов);
находить опечатки в тексте ПО;
находить ошибки в верстках;
находить сами баги в программе, изучив требования.
Можно придумать кучу вариантов, что протестирует ИИ. А может вовсе Искусственный Интеллект самостоятельно подберет проверки, опишет сценарии тестирования и еще разработает авто-тесты, дав AI лишь на анализ техническое задание?
Вопрос о будущих навыках открыт.