Quality assurance engineer что это
Кто такой тестировщик и как им стать с нуля
Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.
Тестировщики, или QA-инженеры, — это люди, которые проверяют, как работает программа или приложение. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, защищают продукт от хакеров, проверяют, как приложение работает на разных устройствах и в разных операционных системах.
Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.
Что делает тестировщик
Честно говоря, тестировщикам действительно приходится тыкать на все кнопочки и ссылки, заполнять все формы и стараться совершить все возможные ошибки, которые могут прийти в голову пользователю. Без этого не обойтись.
Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Но не думайте, что тестировщики лишь хаотично бьют по клавишам в надежде найти баг, — это непродуктивно. У них есть собственные методы для определения слабых мест программы и быстрого поиска ошибок.
QA-инженеры придумывают инструкции для тестирования — тест-кейсы. На элементарном уровне это выглядит так: аналитики пишут требования — какие данные должны быть на входе, как они обрабатываются, что должно получиться в результате; тестировщики пишут пошаговые инструкции для проверки программы на соответствие этим требованиям.
Тестировщик должен скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.
Но ошибки коварны — в лабораторных условиях они могут себя и не проявить, зато пользователь наткнётся на них после релиза. Поэтому QA-инженеры придумывают разные стандартные и нестандартные ситуации, чтобы проверить, как поведёт себя программа. Это творческий процесс, для поиска скрытых багов приходится проявлять смекалку и аналитические способности.
Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?
Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.
Мануальщики и автотестеры
Облегчить работу тестировщика помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.
Всех тестировщиков делят на мануальщиков и автотестеров. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически. Но это очень условное деление. Вы не найдёте автоматизатора, который не умел бы тестировать программу вручную. А многие мануальные тестировщики не любят рутину, поэтому осваивают языки программирования и пишут автоматические тесты. Опытные специалисты могут выполнять работу и мануальщика, и автотестера.
Может ли новичок-нетехнарь стать хорошим QA-специалистом
Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.
На сайте Software-Testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.
Насколько востребована профессия тестировщика
Тестировщики нужны во всех мало-мальски серьёзных IT-проектах. Большие компании предпочитают нанимать их в штат, малые работают с фрилансерами. О том, насколько востребованы QA-специалисты, говорят данные с сайтов по поиску работы:
Мануальщиков, не понимающих кода, работодатели не любят, даже если они прекрасно составляют тесты. Но и автоматизаторы, не знающие основ тестирования, тоже никому не интересны.
Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:
Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты, например:
На какую зарплату можно рассчитывать
Заработная плата тестировщика в регионах — от 55 до 60 тысяч рублей, а в Москве — 80–150 тысяч.
Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.
Как развиваться тестировщику
Путей для карьерного роста много. Некоторые начинают с тестирования, чтобы потом уйти в разработку, но это не единственный вариант — можно развиваться и внутри профессии.
Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.
Если джуниор хорошо себя зарекомендует, то через 2-3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.
Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: синьор планирует работы по тестированию, контролирует работу джунов.
Лет через пять можно стать тимлидом — руководителем команды тестировщиков. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи.
Так происходит карьерный рост специалиста по вертикали. Но на практике тестировщики часто выбирают развитие внутри профессии — например, специализации по тестированию:
Какие личные качества необходимы тестировщику
Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:
Что надо уметь
От тестировщика требуется:
Кроме того, тестировщик должен владеть инструментами ручного и автоматического тестирования. Это могут быть:
Для автоматизации тестов понадобятся системы тестирования веб-приложений, программы для функционального и нагрузочного тестирования.
Ну и обязательно потребуется английский язык — для чтения и заполнения технической документации.
Где всему этому научиться
Если вас увлекла профессия тестировщика, можно самостоятельно изучить методики тестирования по книгам, мануалам и видео, а затем попытаться устроиться на работу на junior-позицию. Этот вариант рабочий, но займёт много времени.
Более простой способ стать тестировщиком — пройти обучение на онлайн-курсах. Вы освоите необходимые техники и инструменты, получите практический опыт тестирования крупного проекта. После обучения наши успешные студенты становятся специалистами middle-уровня.
Путь QA бойца
Небольшой обзор вариантов развития твоей карьеры в сфере контроля и обеспечения качества.
С чего начать?
Итак, предположим, что вы планируете карьеру в IT и впервые услышали о QA. Теперь вы хотите разобраться, что же это такое.
QA — это процесс обеспечения качества программного продукта на всех этапах разработки, но на просторах СНГ часто этот термин применяется относительно тестирования ПО.
Что же потребуется начинающему специалисту чтобы ступить на путь борца за качество? Сейчас разберемся.
Для большинства компаний и проектов будет достаточно:
Хорошо, а куда мы идем?
Дальше поговорим о том, в каких направлениях прокачиваться и каких результатов можно достичь, начав свой путь в IT с обеспечения качества.
Роли в QA
Можно выбрать направление, не меняя сферу деятельности и развиваться, как более узкий специалист. Или объединить в себе несколько ролей. Нужно осваивать стратегии и типы тестирования в разных методологиях разработки, учиться пользоваться инструментами управления тестированием (TestLink, TestRail, Test IT и т.д.) и системами баг-трекинга (Jira, Redmine) – эти знания и навыки являются фундаментальными для всех QA инженеров. Самыми востребованными вариантами специализации являются автоматизированное и нагрузочное тестирования.
Ручное тестирование
Когда ресурсов на разработку автотестов нужно потратить больше, чем на сам продукт — проще/дешевле/быстрее проверить новый функционал руками.
Многие считают, что ручное тестирование это что-то простое и с этим может справиться каждый. На самом деле ручное тестирование требует очень много навыков. Ручные тестировщики решают те задачи, с которыми другие справиться не в силах.
Для ручного тестирования потребуются:
Автоматизация тестирования
Автоматизированные тесты помогают быстрее выпускать новые функциональности, быстрее проводить тестирование, уменьшить количество ручных тестов.
Так что же может понадобиться чтобы начать автоматизировать тесты?
Нагрузочное тестирование
Смысл нагрузочного тестирования в измерении качества системы, которая работает при определенной нагрузке. Выполнив тестирование производительности, можно определить масштабируемость, отказоустойчивость и стабильность программного продукта.
В работу специалистов этого профиля входит сбор данных о производительности приложения, времени отклика и локализацией ошибок при нагрузке, превышающей нормальные сценарии использования системы.
Самые важные навыки для тех, кто хочет заниматься нагрузочным тестированием:
Тест-аналитик
Тест-аналитик- человек, работа которого заключается в создании артефактов тестирования на основании требований. В маленьких командах эти задачи решает рядовой тестировщик, в крупных же функции тестирования и тест-дизайна, зачастую, четко разделены между людьми.
Идеальная цепь взаимодействий выглядела бы так:
Альтернативные пути развития карьеры. Есть ли жизнь после QA?
Системный аналитик
Всю свою карьеру ты боролся с некачественно описанными требованиями? У тебя есть шанс все исправить. Ты будешь общаться с пользователями системы, собирать и анализировать требования, а затем фиксировать их в документации. Плотное взаимодействие с разработчиками и опыт инженера по обеспечению качества помогут в том чтобы требования были полными и проработанными. Помимо этого, возможно участие во внедрении, обучение пользователей и сбор обратной связи об эффективности системы.
Бизнес-аналитик
Основное преимущество, которое тестировщики имеют перед разработчиками, заключается в том, что они получают знания в предметной области, в области бизнеса. Частый вариант продвижения тестировщика по карьерному пути – переход в бизнес аналитики. Как бизнес-аналитик вы будете участвовать в формировании требований к продукту со стороны бизнеса.
Менеджер
Допустим, с людьми вам общаться легче, чем с базами данных — тогда можно примерить на себя роль менеджера. Специалисты по обеспечению качества имеют глубокое понимание того, как сделать программное обеспечение лучше. Если готов принимать сложные решения и нести за них полную ответственность — проблем не будет. Здесь тоже есть свое ветвление, например: проектный менеджер, ресурсный менеджер, тест-менеджер и т.д. Всё зависит от процессов, построенных в компании.
Разработчик
Часто тестировщики уходят с головой в разработку, т.к. находясь бок о бок с программистами, познать их ремесло гораздо проще, чем получать специальное образование. Причем, вам расскажут, подскажут и помогут. Это неплохой способ начать карьеру, познакомиться с процессом разработки изнутри. Особенно, если вы уже знаете языки программирования и занимались автоматизацией тестирования. Главное – желание.
Если что упустил — рад обсудить в комментариях!
Кто такой QA Engineer, QC Engineer и Software Engineer in Test
Я недавно латала дыры в понимании разницы между Quality Assuarance и Quality Control. Статей на эту тему много, я накидала свой вариант, хотелось по существу. Делюсь с вами. Enjoy, если актуально!
Кто такой QС Engineer
Должностные обязанности QC Engineer
Примерный обобщенный список:
Оценка и внедрение программного обеспечения для тестирования.
Проверка продукта на соответствие установленным требованиям и ожиданиям.
Настройка автоматического тестирования.
Поиск дефектов или ошибок, которые могут подорвать доверие покупателей к вашим продуктам.
Проверка, что конечный продукт соответствует стандартам компании, стандартам отрасли, законам.
Составление отчетов об испытаниях и проверках.
Выявление и документирование ошибок и дефектов, которые необходимо исправить перед выпуском продукта.
Выявление и документирование ошибок и дефектов, которые можно исправить после отправки продукта.
Тестирование инструкций, гайдов, документации.
Работа со специалистами по обеспечению качества.
Мониторинг поступления на рынок только высококачественной продукции.
Кто такой QA Engineer
Должностные обязанности QA Engineer
Примерный обобщенный список:
Планирование, разработка и внедрение политики, процессов и процедуры обеспечения качества.
Документирование и обновление типовых инструкций и лучших решений (best practices).
Проверка процессов, процедур и документации на соответствие правилам и стандартам.
Мониторинг текущих процессов с целью их улучшения.
Обучение производственных и инженерных групп соблюдению установленных процессов и процедур.
Анализ первопричин и внедрение решений, направленных на устранение проблем, обнаруженных в текущих процессах и процедурах.
Сбор и оценка отзывы клиентов.
ВАЖНО. Даже если в компании есть четко определенная позиция QA Engineer, обеспечивать качественный процесс, создавать качественный продукт остается обязанностью каждого участника команды.
В общем, QA Engineer, если такой есть на проекте, человек, который прицельно отследит и поможет подтянуть проседающий процесс разработки: направит, надоумит, отправит учиться или подкинет инструментов и идей.
Разница между QA и QC
Кто такой Software Engineer in Test
При ближайшем рассмотрении Software Engineer in Test у меня получилось, что это тоже QC Engineer с одной лишь разницей, что фокус его обязанностей в автоматизации тестирования и включает и разработку собственного фреймворка/инструмента, и написание автотестов:
Создание/расширение фреймворка для тестирования.
Разработка вспомогательных утилит для тестирования сервисов.
Настройка и поддержка тестового окружения.
Настройка автоматизированных тестов для надежного и эффективного выполнения в средах CI / CD.
Обеспечение оптимального покрытия автотестами на всех уровнях.
Обязанности второго плана по сути копируют список QC Engineer.
Подробнее про Software Engineer in Test можно почитать в How Google Tests Software (есть переведенная на русский)
Заключение
Полезно выяснить какой же у вас все-таки список должностных обязанностей и кого в вас видит руководство. Распространено, что руководство не различает некоторые понятия, и чаще всего ожидается, что вы два в одном QA + QC Engineer, либо в вас видят только QC Engineer.
Но кем бы вы ни были совместным итогом поступательных шагов в QA и QC всегда будут:
Кто ты, QA-инженер или тестировщик?
QA и QC — как камыш и рогоз. Конечно, есть ботаники, которые их различают, но большинство людей всё-таки путают. Иногда самим QA и QC легче согласиться с представлением обывателей, чем пускаться в долгие объяснения, в чём же всё-таки разница. Предлагаю сделать усилие над собой, разобраться с терминами и понятиями, увидеть отличия и больше никогда их не путать.
Больше трёх лет я занимаюсь обеспечением качества продуктов. И всё это время наблюдаю за эволюцией процессов тестирования в компании.
От момента зарождения, когда в команду нанимали первых двух человек. Полгода они тестировали продукт руками, а после становились бизнес-аналитиками, а за ними уже стояли следующие два человека.
До текущих процессов с блэкджеком Scrum-Less и автотестами на Selenium.
Накопленный опыт и черты характера типичные для моей профессии привели к размышлениям о том, кто такие тестировщики, QA и QC. Разные это суть сущности или пересекающиеся? В статьях и конференциях я часто сталкиваюсь с какой-то путаницей, мне это не нравится. Поэтому я решил поделиться своими мыслями на этот счёт. Осторожно, данная статья не является истиной в первой инстанции. Данная статья — мысли вслух и желание найти единомышленников.
QA, QC и тестировщики: три большие разницы?
Начнём наши поиски и копания с обращения к Международному стандарту системы менеджмента качества ISO 9000:2015. В каждой статье, в каждом видео на тему отличия этих понятий есть ссылка на этот документ, моя статья не исключение.
В пункте 3.2 стандарта раскрываются два определения:
Отмечу, что в стандарте ISO 9000:2015 вообще нет понятия tester как такового. Я искал.
Так каким же образом взаимосвязаны понятия Quality assurance, Quality control и Тестирование между собой?
Часто можно встретить такого рода иллюстрации со слоёной структурой качества, где тестирование — часть контроля качества, контроль качества — часть обеспечения качества.
Но лично мне кажется, что раз в стандарте нет понятия tester или testing, а QC — это и есть разного рода тестирование, то и иллюстрации должны быть такими:
Однако стандарт есть стандарт, а у нас тут реальная жизнь. И в реальной жизни IT-индустрии встречаются только два названия нашей профессии:
Ищу Тестировщика ПО (QA-инженера)
Я бы не писал эту статью, если бы в индустрии не смешивали эти роли и не называли тестировщиков QA-инженерами и наоборот. По моим наблюдениям, в России не разделяют две профессии. Всех для простоты (а может по незнанию) называют тестировщиками. И ладно бы таким грешили только работодатели, но путаницу поддерживают и сами тестировщики. Например, на Хабре можно встретить статьи, где авторы на протяжении всего текста называют одних и тех же людей тестировщиками, QC-инженерами, QA-специалистами, инженерами по тестированию и тестерами.
Масла в огонь подливают HR-менеджеры: часто для увеличения охвата аудитории они пишут в названии вакансии «Тестировщик ПО (QA инженер)». Шапкой вакансии дело не заканчивается, винегрет продолжается и в самом описании.
Давайте обратимся к вакансиям QA-инженеров:
Все задачи связаны с тестированием и нацелены на поиск багов, хотя компания ищет «QA-инженера».
Или ещё один красочный пример:
По факту многие работодатели ищут тестировщика ПО (если ориентироваться по описанию обязанностей), но в названии обозначают, что находятся в поисках QA-инженера.
Если вы помните, в ISO 9000:2015 есть QA и QC. Что будет, если выполнить запрос на hh.ru по ключевому слову QC? А ничего не будет. Вы не увидите вакансий ни QA, ни тестировщика. По такому запросу появятся вакансии, связанные с производством и контролем качества выпускаемой продукции.
Получается, что в IT-индустрии нет профессий QC, их заменили на тестировщиков ПО, а в других сферах деятельности нет QA-специалистов, зато есть QC. В описании вакансий QA-инженеров не указывают обязанности по улучшению качества продуктов и недопущению багов, наверное, считают это само собой разумеющимся.
Что такое обеспечение качества
Прежде чем продолжить, давайте замутим небольшой интерактив. Перейдите по ссылке и посмотрите на сайт конференции QualityConf. Побродите пару минут по темам выступлений и ответьте для себя на несколько вопросов:
Конференция QualityConf целиком и полностью посвящена качеству, а не тестированию. Однако при подготовке очередной конференции организаторы провели исследование и задали вопрос своим посетителям: «С чем у вас ассоциируется конференция?».
Как вы все уже, наверное, догадались, главные ассоциации были исключительно с тестированием.
Получается, что сегодня, говоря слово «качество», многие слышат «тестирование», и очень часто это функциональное тестирование, хотя понятие качество гораздо шире.
Качество — это определение потребителя, а не определение инженера, не определение маркетинга и не общее определение менеджмента. Оно основано на фактическом опыте клиента в отношении продукта или услуги, измеряется в соответствии с его требованиями — заявленными или неустановленными, осознанными или просто ощущаемыми, технически действующими или полностью субъективными. Качество всегда представляет собой движущуюся цель на конкурентном рынке.
Тестирование — один из способов обеспечить качество продукта. Кроме этого повысить качество продукта можно вводя стандарты кодирования, внедряя новые инженерные практики, дизайн ревью и так далее. Способов обеспечить качество много, но на разных этапах зрелости команд и процессов в компании эти способы дадут разный эффект, об этом необходимо помнить. Но это уже совсем другая история.
QA ≠ QC: как их различить
QC: кто эти люди, какие у них задачи, какие у них ограничения
Кто эти люди? Люди, которых называют тестировщиками, тождественны контролю качества QC. По логике вещей они на последнем этапе разработки проверяют качество продукта (любым видом и типом тестирования — ручным, автоматизированным, нагрузочным, тестированием безопасности и т.д.).
Какая у них задача? Их задача — провести валидацию продукта и предоставить информацию бизнесу и разработчикам о соответствии продукта заявленным требованиям.
Какие у них ограничения? Какие могут быть недостатки, если у вас все сотрудники проверяют продукт на соответствие:
QA: кто эти люди, какие у них задачи, какие у них ограничения
Кто эти люди? Инженеры по обеспечению качества (QA) — это люди, которые помогают командам разработки выпускать качественный продукт, как можно быстрее за как можно меньшие деньги. Ведь все мы знаем, что чем раньше найден баг, тем дешевле его пофиксить. Лучше всего фиксить баги ещё на уровне идеи.
QA-инженеры участвуют на самых ранних этапах создания продукта/фичи. Если бы они могли залезать в головы к PO, чтобы сказать им о недостаточности приемочных критериев или сценариев использования фичи, — они бы делали это.
Какая у них задача? Задача QA-инженера — не допустить несоответствия продукта предъявляемым требованиям. QA-инженер замеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на этапе разработки, дизайна или составления требований.
Какие у них ограничения? Сложно оценить качество работы QA-инженера, потому что если он хорошо выполняет свою работу, то до этапа тестирования будет доходить минимальное количество багов не влияющих на функциональность и запуск продукта в прод.
В отличие от QA, работу QC оценить можно, особенно если отталкиваться от самого простого и оценивать эффективность по количеству багов — сколько багов нашёл и сколько багов пропустил на прод.
Как дальше жить?
Большой штат тестировщиков не сможет существенно улучшить качество продукта. Но сможет улучшить саму проверку качества. Если же вы, коллеги-тестировщики, хотите поднимать именно качество на новый уровень, задумайтесь о переходе в QA-инженеры.
Только не ждите, когда вас позовут на встречу, где обсуждают фичи с разработчиками или дизайнерами, придите на неё сами. Высказывайте своё мнение касательно любого аспекта качества продукта. Не позволяйте сложившимся правилам, должностным инструкциям и прочей фигне мешать вам делать продукт ещё более качественным, чем сейчас.
Я знаю, что большинству из вас не всё равно на то, что вы тестируете. И вы искренне хотите поставлять хороший продукт, которым приятно будет пользоваться.