QA Engineer
Шрифт:
Обычно на старте QA инженер занят именно ручным тестированием и, на мой взгляд, он должен обладать следующими минимальными знаниями, навыками и практикой:
– Операционные системы – вы должны понимать, как установить приложение на Windows, MacOS, iOS, Android, Linux (реже) и уметь изменять настройки операционной системы на уровне обычного пользователя. В процессе работы вы наверняка будете что–то устанавливать и этот простейший навык, конечно, пригодится.
– Виртуальные машины – вы должны абстрактно понимать, что это, уметь устанавливать и выполнять простые действия на уровне начинающего пользователя. Навык нужен в первую очередь, чтобы подключаться к виртуальным машинам и запускать на
– SQL и базы данных – нужно понимать, что это и для чего необходимо, уметь писать простые запросы с использованием только SELECT и WHERE и применять MIN, MAX и подобные простейшие функции. Огромное количество приложений работают с базами данных и этот навык поможет вам настраивать системы и находить в них ошибки.
– Протоколы передачи данных – следует в общем понимать, что такое IP, DNS, порты и как в целом работает сеть между устройствами. Навык помогает настраивать приложения и лучше понимать, где возникают ошибки.
– HTML и CSS – нужно понимать, что это, и читать простейший код верстки. Навык поможет понять, как работают некоторые приложения и облегчит поиск ошибок в них.
– Работа приложений – общее понимание того, как работают приложения или их части, и чем они отличаются от других (Desktop, Web, Mobile, backend–часть). Временами приложения внутри устроены довольно сложно, что увеличивает вероятность ошибок. Понимание устройства приложения помогает их находить.
– Теория тестирования – вы должны хорошо знать базовую теорию (которая представлена в этой книге): что такое тестирование, в чем его суть, каким оно бывает, какие техники тест–дизайна существуют, что такое требования и т.д. Хорошее понимание теории позволяет эффективнее выполнять тестирование на практике.
– Документация тестирования – знание о том, какой она бывает, и умение ее применять. Не зная, как составлять документацию, нельзя эффективно справиться с этой задачей на практике.
– Процессы – понимание, какие процессы разработки программного обеспечения существуют, чем они абстрактно отличаются и для чего нужны. Разобравшись в этом, вы осознаете свою роль в команде и проекте, поймёте, чего ждут от вас и что вы можете ожидать от работодателя.
Знание языков программирования в список рекомендуемых навыков не входит, однако чтение простейших конструкций любого из них даст вам преимущество перед другими кандидатами. А способность написать без подсказок простой код усилит перевес. Также хорошим бонусом для вас будет понимание SQL на уровне JOIN, UNION и простых операторов.
На практике способность написать простейший код почти бесполезна для новичка. Этот навык больше говорит о вас как о кандидате, в которого не надо вкладываться временем и средствами для обучения программированию с нуля. Компании, серьёзно подходящие к набору сотрудников, отлично умеют считать деньги и риски и знают, через какое примерно время вы выйдете на окупаемость и начнете приносить условную «прибыль», в чем бы она не выражалась.
2. ГРАДАЦИИ QA ИНЖЕНЕРОВ
Если вы еще не работали QA инженером, то всего лишь при взгляде на описание вакансии у вас, вероятно, возникнут такие вопросы: Почему требования к грейду так отличаются? Почему технологии одной вакансии порой абсолютно не совпадают со второй?
Дело в том, что сейчас QA инженер – это самый настоящий инженер со всеми вытекающими последствиями. Помимо градаций по опыту есть градации по типу программного обеспечения, по направлению тестирования и по направлению бизнеса. Индустрия стала достаточно развитой для того чтобы требовать от инженеров глубоких знаний в отдельных областях – чаще всего именно этого и ждут от сотрудников. Сейчас быть профессионалом в каждом таком ответвлении
одновременно очень сложно. Ведь, помимо того, что нужно много времени на их освоение, так необходимо ещё и постоянно совершенствовать свои навыки.На практике осваивать несколько направлений не всегда выгодно. Часть навыков (а порой внушительную их часть), которую вы приобрели на одной работе, просто не получится применить на другой, и конечно справедливо, что работодателю нет никакого интереса платить за то, что вы не можете использовать свой опыт, каким бы потрясающим он не был. Без применения и развития своих навыков вы их теряете. На практике это означает, что, если не достигнуть высот, нахождение на одном проекте более двух лет становится сомнительной идеей.
Конечно, два года – это только абстракция и все довольно индивидуально. Человеку требуется примерно год чтобы начать чувствовать себя комфортно на работе и больше не испытывать тревог. Затем у него появляется запас сил, что дает ему возможность выжать из своего рабочего места все, что можно, в вопросе прокачивания компетенций. Если делать это активно, примерно через год он достигнет предела на своей должности. Далее специалист задумывается, какой рост ему выбрать: горизонтальный, вертикальный, параллельное направление или все сразу. Вертикальный рост, из–за которого вы останетесь на проекте еще на несколько лет, вполне хороший и классический выбор. Кроме того, все проекты разнообразны, какие-то помогут практически безгранично улучшать навыки, какие-то очень быстро себя исчерпывают.
Горизонтальный рост означает, что вы расширяете свои навыки, осваивая новые технологии или другую область бизнеса, в которой применяете свой опыт. При этом количество обязанностей остается примерно таким же. Такой рост может сделать вас “специалистом с 10 руками” что, конечно, ценится, или дать более широкий выбор вакансий для следующего этапа карьеры.
Вертикальный рост это в первую очередь про увеличение количества обязанностей и ответственности. Сначала это рост ответственности за свою работу, далее – за работу других. Такой рост (до руководящих должностей), вертикальный, очень полезен, так как другие поверят, что вы действительно умеете делать то, что заявляете, не проверяя этого.
Рост в смену направления означает, что вы кардинально меняете область тестирования, оставаясь QA инженером. Можно сказать, что обычно после этого некоторая часть ваших навыков становится менее нужной, и впоследствии их уровень упадёт. Однако вы замените их новыми, не менее важными, за которые также платят и которые помогают двигаться дальше по карьерной лестнице.
Рост во все сразу или в два из описанных выше поворота тоже возможен и означает, что вы будете пытаться усидеть на нескольких стульях сразу. Это в большинстве случаев не дает глубины роста, но дает его ширину, из–за которой вы получите больше предложений о работе, решив сделать следующий шаг в своей карьере.
На мой взгляд, на поприще вас ожидают окна возможностей и перепутья выбора. Но осознанный выбор не будет плохим.
Вы наверно заметили, что я часто упоминаю слово “карьера” и это не просто так. Большинство QA инженеров строят карьеру, даже не называя ее так. Они проводят анализ имеющихся возможностей и раз за разом делают выбор. На первых этапах это не очень сложно. У большинства специалистов на старте карьеры довольно низкая зарплата. Просматривая вакансии они понимают, что достаточно потратить несколько месяцев, чтобы обучиться новому, и это откроет путь к увеличению зарплаты на ощутимый процент. Поэтому если вы не планируете всю жизнь работать за условные 500–800$ и бояться оказаться ненужным как специалист, то рекомендую временами думать о том, куда движется ваша карьера и движется ли она вообще.