Возможно, вы только начинаете свой путь в профессии. Или собираетесь повысить квалификацию. В любом случае все мы при обучении в IT сталкиваемся с огромным объемом информации. Понять что нужно для старта, а что нет - довольно сложно. К тому же разным компаниям нужны разные навыки, а необходимый уровень владения каждым конкретным может отличаться: где-то на позиции Junior тестировщика будет достаточно умения запускать простейшие sql-запросы, а где-то вас попросят написать что-то более сложное с использованием JOIN и подзапросов.
Поэтому нельзя однозначно сказать: пройдите вот эти курсы, выучите вот эту книжку — и вас точно возьмут на работу.
Однако, вполне можно выделить набор навыков, которые будут повышать вашу ценность как специалиста на рынке. А чем выше ваша ценность — тем больше список компаний, которые захотят пригласить вас на собеседование.
Условно можно разделить весь спектр знаний на 6 сегментов:
Компьютерная грамотность
Теория тестирования
Инструменты тестировщика
Автоматизация тестирования
Навыки трудоустройства
Soft-skills
Каждый из сегментов важен в равной степени, и недостаток в одном из них можно перекрыть хорошими знаниями в другом. Ну а если вы освоите все, вам будет достаточно просто устроиться на работу или продвинуться по карьерной лестнице в текущей компании. Давайте рассмотрим каждый из них.
Компьютерная грамотность
Итак, первый важный навык для тестировщика — это общая компьютерная грамотность. Сфера IT развивается очень быстро, и оставаться в курсе всех инноваций непросто. Но именно такие специалисты особенно ценятся на рынке труда.
С этой задачей справиться проще всего тем, кто уже достаточно опытен в использовании компьютера. Чтобы начать работать в IT, неплохо бы разбираться в операционных системах и их особенностях, уметь работать с файловой системой и консолью, знать про устройство и принципы работы сети, понимать, что такое клиент-серверная архитектура приложения, иметь представление о компьютерном железе, а также владеть множеством других базовых тем. Именно понимание азов позволяет в дальнейшем получать знания без лишних проблем.
В этой статье мы не будем останавливаться на освещении этих базовых навыков — для этого мы создали отдельный мини-курс Азбука IT, где вы можете познакомиться со всеми базовыми знаниями.
Теория тестирования
Следующий необходимый навык — теория тестирования. Все те штуки, которые возникают в голове, когда мы вообще говорим о тестировании: тест-кейсы и чеклисты, багтрекеры и багрепорты, классы эквивалентности и граничные значения, виды, типы, уровни тестирования и все остальное, что пишут в каждой первой книге по тестированию. В зависимости от компании что-то из этого списка вы будете применять каждый день, а с чем-то столкнетесь через пару лет. Более того, вы можете никогда не заниматься попарным тестированием, или попасть в компанию, где не пишут тест-кейсы, а возможно и вовсе используют какие-то свои термины. Но так или иначе, знания теории тестирования будут полезны практически для любой вакансии тестировщика.
Теории тестирования посвящен наш курс Тестировщик: первая ступень. На нем мы затрагиваем только самые важные темы, которые пригодятся вам в любом случае. Так вам будет легче усвоить информацию и не перегружать мозг ненужными знаниями. Данных в курсе вполне достаточно для уровня начинающего тестировщика, однако не стоит забывать и про другие навыки.
Инструменты
Помимо теории тестирования важно знать и уметь использовать различные инструменты и подходы, специфичные для отрасли тестирования. Так, для работы с веб-приложениями пригодится понимание отладочных утилит Chrome DevTools, а для работы с мобильными — знание Android Studio и Xcode.
Уметь работать с API нужно в любом случае — с его помощью с сервером общаются и веб-приложения, и мобильные приложения.
Существуют и общие инструменты, которые пригодятся практически на любой работе: знание языка SQL, умение работать с консольной оболочкой Bash или пользоваться системой контроля версий Git. Работа со всеми этими инструментами требует, в первую очередь, практики. Мы создали несколько практических курсов, чтобы вы могли попробовать себя в деле и смело добавить знание этих инструментов в свое резюме.
Автоматизация
Автоматизация — очень популярный тренд на современном рынке тестирования, но рассматривать ее стоит именно как навык тестировщика, а не как отдельную профессию. Даже если вы устроитесь на вакансию Automation QA, это не значит, что не придется искать локаторы и работать с ADB. Ну и конечно ошибку надо сначала найти и локализовать, а потом уже писать на нее автотесты. Поэтому здесь мы рассмотрим основные навыки начинающего автоматизатора, которые важны не больше и не меньше, чем весь остальной список.
Естественно, в первую очередь нужно будет освоить язык программирования. В сети часто встречается вопрос — какой из языков лучше выбрать для автоматизации? В отличие от программирования, в QA конкретный язык не так важен: дело в том, что автотесты используют одни и те же конструкции из фреймворков, а для их вызова подходит любой язык. Хотя, конечно, выбор языка может зависеть от платформы, которую вы тестируете. Тем не менее стоит понимать, что если бы у одного языка было бы неоспоримое преимущество перед другим для работы с автоматизацией, все компании использовали бы только его.
Самый популярный инструмент для автоматизации веб — это Selenium. Не путайте с Selenoid и Selenide. Selenium — это набор инструментов, который позволяет написанному нами коду превращаться в команды. А их в свою очередь понимает и исполняет браузер.
Для мобильной автоматизации используется похожий подход, только вместо Selenium Server используется Appium.
Но помимо Appium, который подходит для работы с любыми языками на Android и iOS, существуют еще и свои инструменты для каждой из платформ: Espresso для Android и XCUITest для iOS. И тут уже отличия от Selenium гораздо заметнее. Основной плюс такого подхода против Appium — тесты будут работать быстрее. Плюс, в драйверах раньше Appium появляются все самые новые функции.
Минус же в том, что писать тесты напрямую на драйверах сложнее: к тому же реализовать все на одном и том же языке не выйдет, для Android нужно будет освоить Java/Kotlin, а для iOS — Swift. Построить кроссплатформенные тесты в этом случае также не получится.
Трудоустройство
Следующий важный навык — умение, собственно, устраиваться на работу. Причем это совершенно отдельное умение, которое нужно развивать самостоятельно. Ведь можно быть отличным специалистом — но работать в плохой компании на небольшой зарплате просто потому, что вы теряетесь на собеседованиях. Или вы не можете попасть на работу мечты потому, что у вас некачественное резюме, и HR просто не передает такой документ техническим специалистам.
А возможно, что резюме у вас хорошее, но в этой компании таких получают по десять в день. Если вы не можете выделиться — до вас просто не дойдут. Поэтому важно научиться писать резюме, искать вакансии и отвечать на вопросы на собеседовании для того, чтобы всегда быть в состоянии найти интересную для вас работу.
Soft-skills
Пожалуй, самая главная вещь для начинающего тестировщика — так называемые софт-скиллы. Ведь у джуниора, скорее всего, еще очень мало опыта, мало конкретных умений и знаний инструментов. Но набирают начинающих специалистов, в первую очередь, за их личные качества.
Во-первых, это хорошее умение находить информацию. Здесь пригодится и навык работы с поисковыми системами, и знание сайтов и книг, где можно найти ответ на свой вопрос, и способность правильно этот вопрос сформулировать.
Во-вторых, это умение воспринимать и анализировать огромное количество данных. В начале работы придется читать, смотреть и впитывать большие объемы новых знаний, да и спустя год проект будет постоянно меняться и развиваться.
В-третьих, это умение общаться с людьми, причем из разных сфер. В отличие от разработчика, тестировщик взаимодействует почти со всеми участниками процесса разработки софта, а значит, должен уметь формулировать запросы и узнавать нужные ему данные.
Наконец, самый главный навык — возможность решать проблемы, выполнять поставленные задачи самостоятельно. Очень часто у многих начинающих не получается работать, потому что они ждут указаний от руководителя или коллег. При этом, столкнувшись с проблемой, они не сообщают о ней, а ждут, пока кто-нибудь им поможет. Не надо так.
Если видите, что не получается выполнить задание самостоятельно — нужно сразу сообщить об этом и попросить помощи. Ну а если знаете, что справитесь — не ждите отмашки, делайте.
Софт-скиллам очень трудно научить, им можно только научиться. Поэтому старайтесь проявлять эти качества уже сейчас, чтобы в дальнейшем с ними не возникло проблем.
Итого
Мы постарались описать самые главные навыки, которые должны быть у тестировщика. Надеюсь, этот разбор помог вам немного определиться с фронтом работы. А если вам потребуется помощь в изучении любого из них - приходите на наши курсы. Мы научим всему и поможем найти работу мечты. :)