Как я уже писала, курсы по тестированию я проходила платно.
Блок по мануальному тестированию длился 6 месяцев. На мой взгляд, сам курс был достаточно емким и включал основные знания, необходимые в тестировании, однако далеко не все я смогла понять и выучить на курсах. Некоторые вещи изучала дополнительно сама. Сейчас расскажу, что мне дали курсы, а что пришлось изучать самостоятельно.
Теория на курсах была хорошая. Она помогла мне разобраться в терминах и основных принципах тестирования. Дополнительно я ничего не учила. Кому-то может показаться, что теория не очень важна в прикладной профессии, - кстати, мне тоже так в начале казалось - однако в тестировании она реально важна. Теория помогает понять смысл тестирования, цель тестирования и методы тестирования. На самом деле в любой прикладной специальности есть некоторые теоретические знания, на которые опирается практика. Теория помогает осознать всю глубину профессии, если вдруг кому-то может показаться, что тестировщик – это тот, кто со злорадством находит в случайном порядке ошибки и получает за это большие деньги. Оказывается, все совсем не так и нахождение багов не сама цель тестирования.
Тест-дизайн и составление тестовой документации. Меня хорошо научили составлять чек-листы, тест-кейсы и баг-репорты - это основные навыки тестировщика. На курсах много уделяли времени тест-дизайну - умению составлять тесты так, чтобы на минимальном их кол-ве покрыть максимальное кол-во тестовых сценариев. Основные техники тест-дизайна мы изучили и практиковали как на тестировании фронта, так и на тестировании бэка. Но перед собеседованием я поподробней изучала техники тест-дизайна, особенно те, что не были затронуты на курсах, и пробовала сама их применять на практике, смотрела в ютуб, как это делают другие.
SQL. То что было на курсах мне оказалось достаточно, чтобы получить представления о реляционных базах данных, об их структуре, типах данных, ну и основных действиях с данными (CRUD). Мы практиковались приводить данные к нормальному виду для хранения в бд, писать запросы на создание, выборку, обновление и удаление данных от простых до усложненных. Всё, то что мне пригодилось в работе в SQL, мне дали на курсах.
API. На мой взгляд, тестированию api было уделено крайне мало времени, хотя именно тестирование бэкенда - один из важнейших навыков для мануального тестировщика. Во-первых, будущему тестировщику нужно разобраться в принципах работы самого api, во-вторых, понять, как это тестировать буквально, ну и наконец продумать позитивные и негативные тестовые сценарии с учетом знаний о конкретном бэке . В этом, пожалуй, самая большая проблема. Понять, что такое API и как он работает, для человека, изучающего тестирование с нуля, с первого раза - практически невозможно (сужу по себе). Для осознания нужно время, нужно много примеров, нужна практика! Если мы говорим о тестировании, скажем, сайта от лица пользователя, то мы, даже не будучи тестировщиком, можем накидать сходу некоторые популярные сценарии использования функционала сайта, - это логично, мы же как пользователи это делали много раз. А в случае с API мы этого сделать не можем, мы даже не можем пойти и попробовать потестировать чей-то API чисто для интереса, так как это то, что скрыто от пользователя, и доступ есть далеко не всегда. Так вот, для погружения в это нужно много практики. Я потратила много внеурочного времени на изучение API. После его изучения (речь идёт, конечно, о REST API) на курсах, я пошла в ютуб и смотрела обучающие ролики от разных авторов. Я установила себе на компьютер Postman и начала пробовать посылать запросы на разные открытые API (их не так мало, как может показаться, просто загуглите «открытые api для тестирования»). Я изучала, какие запросы и как надо отправлять, что должна буду получить в ответ. Я разобралась, что вообще из себя представляет запрос, какие бывают заголовки, какое может быть тело, какие могут быть параметры, какие есть методы запросов, какие форматы данных бывают, какие бывают ответы (статус-коды). Я изучала документацию к разным API и проверяла, соответствуют ли ответы на практике тому, что описано в документации. Также я изучала и SOAP APi, но так как этот протокол менее популярен, на него столько времени уже не тратила. Все это дало мне очень хороший опыт в Postman и практические знания по API, в последствии это очень помогло мне на собеседовании, и в работе я использую это постоянно.
Linux. Иучение linux было полезным и очень практичным. Мы учились работать с командной строкой, начиная от простейших команд для работы с файлами и файловой системой, заканчивая установкой утилит, администрированием linux и работой с dokcer контейнерами. Конечно, в рамках курса полного понимания, скажем, про docker не пришло, но и эти знания не для каждого тестировщика нужны. На мой взгляд, изучить linux в общих чертах вполне достаточно для старта в профессии, если в будущем на проекте это будет нужно (так было на моем первом проекте) – это можно доизучить и попрактиковать по факту. Но может быть и так, что вы вообще с этим в работе не столкнетесь. Поэтому linux дополнительно я не изучала.
Devtools также достаточно подробно разобрали на курсах, и дополнительного изучения мне не потребовалось. Cам инструмент достаточно простой и понятный, но практически незаменимый в WEB тестировании.
Git. Изичуние git было дополнительным коротким курсом, в целом это дало понимание о программе, ее назначении и основных командах. Более подробно не изучала, но уже в процессе реального использования при изучении java и на работе пришлось углубиться в некоторые моменты. Для тестировщика короткого курса считаю этого вполне достаточно, все-таки с гитом не все тестировщики работают и в принципе - это не инструмент тестировщика.
Снифферы на курсах изучали очень поверхностно. Да, после курса я понимала, что это и зачем, но практического навыка почти не было. Со сниферами разбиралась сама, смотрела видео по использованию и пробовала сама ставить брейкпоинты, подмены запросов, подмены ответов. Однако в работе до сих у меня практически не было надобности их использовать, поэтому все знания немного подзабылись. Но даже в этом случае все равно знать о существовании этих инструментов и их назначении тестировщику надо, так как снифферы могут быть очень полезны в тестировании.
Мобильное тестирование почти не затрагивалось на курсах. И хотя я изучала самостоятельно особенности мобильного тестирования, все равно у меня остаются большие пробелы в этой области. Вероятно, если я снова попытаюсь искать работу, буду стараться избегать вакансий с мобильным тестированием, либо мне нужно будет опять провести самообучение по этому блоку. Коммерческого опыта мобильного тестирования у меня практически нет.
Компьютерные сети. Блок по сетям был дополнительным, но достаточно глубоким и, на мой взгляд, сложным. Во время его прохождения, чтобы выполнить дз, мне приходилось тратить часы в интернете, чтобы понять, о чем речь в теме урока и что и как мне нужно сделать. Большинство из этого мне в тестировании не пригодилось. Считаю, что изучать так подробно сети тестировщику не нужно. Достаточно знать какие-то базовые вещи типа: что такое стек протоколов TCP/IP; чем отличаются HTTP и HTTPs и какие порты используют; как работает VPN; что такое DNS; что такое IР, какая связь у них с доменом. Однако я не жалею потраченных сил, слез и страданий)). То, что я узнала, было таким инсайтом для меня, человека, который, казалось бы, что-то в «компьютерах» понимает. Неожиданно для себя я поняла, как передается информация в сети вот буквально, как биты (просто ток в проводах) передают сложную информацию одновременно по сети для разных адресатов, и информация не теряется, не путается и передается так быстро, что у человека появляется ощущение, что он получает ее в онлайн режиме. На самом деле это сложная, но в тоже время интересная наука, которая берет начало еще в прошлом веке, когда первые сети были созданы для связи между университетами.
Остальные инструменты или разновидности тестирования на курсах также были затронуты очень поверхностно или не затронуты вообще. Дополнительно я больше особо ничего не изучала. К собеседованию чем больше вы знаете о каких-то дополнительных вещах, хотя бы в общих чертах, тем лучше. И хоть я практически не изучала такие вещи, как нагрузочное тестированние или CI/CD, у меня было понимание об этих процессах и я могла ответить на такие вопросы, как «для чего», «какими инструментами реализуется», «как в теории реализуется». На проекте это может не пригодиться, но если понадобится, всегда можно изучить углубленно и на практике.
Как видите, курсы дали мне достаточно много знаний, и в основном изучать дополнительно мне пришлось только бэк: что он из себя представляет и как его тестировать. В целом это и логично, так как фронт мы более менее знаем уже как пользователи, а вот как это работает внутри, - это пришлось изучать с нуля.