Инженер по тестированию, он же QA-инженер — это специалист, который проверяет работоспособность и пользовательские качества приложения или программы.
QA (от англ. quality assurance — обеспечение качества) — деятельность, помогающая производить продукт надлежащего качества, а затем поддерживать его работу на должном уровне. В широком смысле она относится к производству любых товаров, в том числе и к разработке программного обеспечения, где контроль качества должен осуществляться на всех этапах.
Designed by ArthurHidden/freepik
Основная работа тестировщика ПО, или QA-инженера, заключается в разработке различных сценариев тестирования. Проще говоря, он должен думать, как «сломать» приложение и как потом это исправить.
Собственно, зачем нужна работа специалистов по тестированию? IT-отдел нередко не в состоянии качественно проверить готовый продукт и найти в нём все баги. Более того, комплексные проверки вообще не входят в круг обязанностей программистов. Потому-то сейчас принято выделять для этого специальных людей — такой подход экономит компании массу человекочасов и денег при разработке.
Что конкретно делает QA-инженер на рабочем месте:
Изучает спецификации и техническую документацию по проекту, ищет в нем слабые места;
Разрабатывает тесты продукта на каждом этапе разработки;
Прогнозирует возможные сбои и отказы;
Пишет для разработчиков отчеты с подробными объяснениями, как исправить ошибки.
Итак, вся работа QA-инженеров строится на создании разного рода тестов для будущей программы. Это могут быть:
Smoke Testing — специалист проверяет отдельные, наиболее важные части продукта;
Functional Testing — проверяют, как работают дополнения и улучшения продукта;
Regression Testing — проверяют новую версию продукта после патча или глобального обновления. Тут нужно изучить, насколько стабильно он работает по сравнению с предыдущей версией.
Обеспечение качества как всякая деятельность имеет собственные стандарты — в данном случае это стандарт ISO 9000:2015. В нем есть четкое разграничение между обеспечением качества (QA) и контролем качества (Quality Control, QC):
QA— это деятельность, обеспечивающая условия для соблюдения требований качества;
QC — часть управления качеством, направленная на выполнение требований к качеству.
Иными словами, QA-инженеры по большей части прогнозируют появление багов и ищут способы их избежать на ранних этапах разработки. QC — это те самые классические тестировщики, которые эти баги отлавливают.
На практике же часто бывает, что один или несколько QA-инженеров совмещают обе обязанности.
Требования к навыкам такого специалиста предъявляются достаточно жесткие. В первую очередь он должен досконально знать продукт, с которым работает, а также владеть массой инструментов и методик по тестированию ПО.
В первую очередь это системы автотестов, такие как Selenium, HP-UFT, Sahi и другие. QA-тестировщик должен хорошо разбираться в HTML, CSS, знать Python и нередко Java, как работать с системами контроля версий Git и многое другое.
Поскольку QA-инженер постоянно находится в контакте с командой разработки, менеджментом и другими участниками проекта, ему нужны недюжинные дипломатические навыки:
Умение договариваться и находить компромиссы;
Умение объяснять;
Способность аргументированно доносить свою точку зрения;
Внимательность к деталям, скрупулезность;
Умение мыслить системно и структурно, запоминать большие объемы информации.
Очень большое значение играет так называемая техническая эрудиция. Если человеку не интересно, как на самом деле работает та или иная программа и как она устроена, то в этой профессии ему придется туго.
Ещё одно важное личное качество — умение ставить себя на место пользователя, который будет пользоваться этим продуктом. Какие задачи человек будет решать с его помощью? Как и где будет применять? На эти вопросы QA-инженер должен уметь отвечать и доносить их до разработчиков.
Designed by freepic.diller/freepik
В профессию тестировщика приходят абсолютно разными путями, причем далеко не только из IT. Порой, у гуманитария добиться успеха на этом поприще больше шансов, чем у технаря.
Высшее образование в данной работе очень даже пригодится, притом не обязательно техническое. Важно само умение запоминать и структурировать информацию, которое так или иначе прививают в университетах.
Мы не случайно упомянули гуманитариев, поскольку в тестировщики нередко идут профессиональные лингвисты, преподаватели русского и иностранных языков.
QA Engineer и тестировщик — абсолютно идентичные программы обучения, но должность QA-инженера выше, поскольку это опытный сотрудник.
Иными словами, стать QA-инженером можно только на практике. Но начать следует, безусловно, с онлайн-курсов. Плюсы такого подхода в том, что там дают систематизированные и достаточно подробные знания по теме, причем подкрепленные практикой.
Идеальным вариантом будет, если после окончания курсов, вы устроитесь на стажировку. Крупные IT-компании часто практикуют так называемый краудтестинг, что будет неплохим способом попрактиковаться.
Нужно ли QA-инженеру знать программирование? На начальном этапе вроде бы нет, но поскольку часто это весомый плюс при трудоустройстве, нужно всё-таки озаботиться этим вопросом и освоить хотя бы один ООП. Можно начать с несложного Python, а затем перейти на что-нибудь посложнее, например, JavaScript.
IT-рынок в России испытывает острую нехватку в специалистах, в том числе и в профессиональных тестировщиках. Причем хватает вакансий и для стажеров без опыта. Да, поначалу зарплата будет небольшой — она колеблется в пределах 40—60 тысяч рублей в провинции и около 80 тысяч рублей в Москве.
Однако специалист с опытом работы от 1 года уже может претендовать на 100 тысяч рублей. Средняя же зарплата колеблется в районе 200 тысяч рублей.
Плюсы:
Перспективность и востребованность;
Низкий порог входа в профессию;
Возможность быстрого обучения на курсах с нуля;
Возможность удаленной работы/гибкий график.
Минусы:
Требуется непрерывное самообучение;
Рутинность;
Высокая ответственность;
Сидячая работа.