Как стать qa-инженером?

Содержание:

Содержание работы тестировщика

Типичная последовательность работы функционального (мануального) тестировщика выглядит примерно следующим образом.

  1. Изучить спецификацию продукта (программы). 
  2. Разработать методы для проверки продукта. 
  3. Провести проверку продукта.
  4. Сделать выводы по итогам проверки. 
  5. Перечислить найденные уязвимости и недочеты продукта в техническом документе (чаще всего на английском языке). 

Главная обязанность автоматизатора — на основе готовых тестов написать код, который будет автоматически делать то же самое, что делает мануальщик вручную

Важно, чтобы автоматизатор умел кодить, но и не забывал методы функционального тестирования. Ведь до того, как создать код, нужно придумать и эффективный тест для проверки приложения. 

В нашей профессии существует две крайности. Одна крайность — специалист, который замечательно придумывает тесты, но совсем не понимает кода. Вторая крайность — разработчик, который занимается автоматизацией, но никогда не учил теорию тестирования. Он может писать замечательные автотесты, но не способен сам их придумывать. Гораздо проще и эффективнее, когда человек владеет теорией и в то же время хотя бы немного подкован технически. 

Я выделил бы две категории проектов, с которыми имеет дело тестировщик: проекты в разработке и проекты в поддержке. Работать на проектах первого типа гораздо интересней и динамичней. Тестировать продукт, который появляется у тебя на глазах, — это настоящий «раш».  Лично мне больше всего нравится работать с системами управления предприятиями. Это очень сложные задачи, где много бизнес-логики и технической составляющей. 

Что входит в основной пул обязанностей QA-автоматизатора?

АЛЕКСЕЙ БЕДУНКЕВИЧ: Как ни странно, автоматизация QA процессов:

  • Составление плана и стратегии
  • Автоматизация тесткейсов
  • Настройка CI, репортинг, и нотификация

ЕКАТЕРИНА ЖУКОВСКАЯ: Обязанности разнятся от проекта к проекту. В основном это непосредственно:

  • Разработка фреймворка для автоматизации продукта и написание автотестов
  • Настройка окружения, создание дополнительных условий для корректного функционирования автотестов
  • Интеграция автотестов с порталами баг репортинга для последующего анализа результатов
  • Интеграция с системами автозапуска (CI/CD) и с системами отслеживания версий.
  • Но самая главная обязанность – любить свою работу.

Образование

Получить диплом по профессии тестировщик программного обеспечения невозможно, так как именно эту специализацию учреждения не преподают. Есть смежные профессии, основанные на знаниях программирования, информатики, математики. Пройдя обучения, дополнив знания практикой, самостоятельным изучением некоторых областей, а также окончив курсы, можно успешно устроиться на работу.

У многих работодателей в приоритете высшее образование, но даже имея среднее, есть шансы реализовать себя в области IT-технологий, включая профессию тестировщика.

Если рассматривать учебные заведения, с дипломами которых можно начинать карьеру тестировщика программного обеспечения, то отмечаются следующие:

  1. МГТУ им. Н.Э. Баумана – Московский государственный технический университет имени Н.Э. Баумана.
  2. НИУ МГСУ – Московский государственный строительный университет.
  3. МГУТУ имени К.Г. Разумовского – Московский государственный университет технологий и управления имени К.Г. Разумовского.
  4. СПбПУ – Санкт-Петербургский политехнический университет Петра Великого.
  5. УрФУ им. Б. Н. Ельцина – Уральский федеральный университет им. Б. Н. Ельцина (Екатеринбург).
  6. НГУ – Новосибирский национальный исследовательский государственный университет.
  7. ТПУ – Национальный исследовательский Томский политехнический университет (Томск).
  8. КФУ – Казанский (Приволжский) федеральный университет (Казань).
  9. ЮФУ – Южный федеральный университет (Ростов на Дону).
  10. СКФУ – Северо-Кавказский федеральный университет (Ставрополь).

На территории России более 300 ВУЗов, выпускающих специалистов в сфере информационных технологий, программирования.

Если нет возможности поступать в высшее УЗ, то есть и ССУЗы. Насчитывается больше 100 заведений, включая:

  1. Санкт-Петербургский технический колледж управления и коммерции.
  2. Университетский политехнический колледж Санкт-Петербургского политехнического университета Петра Великого.
  3. Колледж связи №54 им. П.М. Вострухина (Москва).
  4. Московский приборостроительный техникум Российского экономического университета имени Г.В. Плеханова (Москва)
  5. Нижегородский радиотехнический колледж.
  6. Омский авиационный колледж имени Н.Е. Жуковского
  7. Новосибирский химико-технологический колледж имени Д.И. Менделеева.

Только полученного диплома иногда бывает недостаточно, чтобы сразу утроиться на желаемую должность. Потребуются некоторые практические знания, в ряде случаев дополнительные курсы, где информируют о современных технологиях, инновационных методах обслуживания ПО.

Дополнительное образование, курсы

Даже не имея профильного образования в области информатики, программного обеспечения, есть возможность обучиться профессии тестировщика. Есть несколько вариантов – получить дополнительное образование или пройти курсы переподготовки.

Дополнительное образование предполагает поступление в профессиональное учебное заведение, где предоставляется лекционный материал, проводятся практические занятия. Это может быть колледж или ВУЗ, обучение очное, заочное, совмещенное с дистанционным прохождением материала.

Курсы переподготовки можно окончить дистанционно, что позволяет экономить время, изучать материал в удобное время. Обучение подойдет для тех, кто уже имеет определенную базу знаний, требуется ее расширить, повысить квалификацию. Это практикуется во многих областях, включая компьютерные, информационные

Важно уточнить, государственного ли образца будет диплом, так как это станет подтверждением достойного уровня образования

Полезные ссылки

  • Сообщество тестировщиков в ВКонтакте (QA Club);
  • Интернациональный клуб тестировщиков в Facebook;
  • Форум тестировщиков Software Testing;
  • Группа ВКонтакте QA Soft;
  • Telegram канал “Тестирование и жизнь” (@testing_and_life);
  • Telegram канал “Серьезный тестировщик” (@serious_tester);
  • Твиттер “Типичный тестировщик”;
  • Статья “Как я стал тестировщиком, не имя опыта в IT”;
  • Статья “Мне за 30 и я стал тестировщиком, не зная английского”.

Работа тестировщиком — настоящий билет в IT. Но неуважительно воспринимать профессию только в этом ключе, ведь деятельность эта самодостаточна и такая же важная, как программирование.

В общем, работа точно интересная, хотя может не показаться таковой в первые месяцы.

Главная деятельность тестировщиков

заключается в том, что они предоставляют участникам проекта по разработке программного обеспечения отрицательную обратную связь о качестве программного продукта.

«Отрицательная обратная связь» не несет какой-то негативный оттенок, и не означает, что тестировщики делают что-то плохое, или что они делают что-то плохо. Это просто технический термин, который обозначает достаточно простую вещь.

Существует наука — «теория систем». В ней определяется такое понятие как «обратная связь»:

«Обратная связь» это некоторые данные, которые с выхода попадают обратно на вход, или какая-то часть данных, которые с выхода попадают обратно на вход. Эта обратная связь может быть положительной и отрицательной.

Считается, что положительная обратная связь прибавляется к входному сигналу, то есть, она усиливает входной сигнал. А отрицательная обратная связь входной сигнал ослабляет.

И та, и другая разновидности обратной связи равноценно важны.

В разработке программных систем положительной обратной связью, конечно же, является какая-то информация, которую мы получаем от конечных пользователей. Это запросы на какую-то новую функциональность, это увеличение объема продаж (если мы выпускаем качественный продукт).

Отрицательная обратная связь тоже может поступать от конечных пользователей в виде каких-то негативных отзывов. Либо она может поступать от тестировщиков.

Чем раньше предоставляется отрицательная обратная связь, тем более слабый сигнал ей еще нужно модифицировать, и поэтому тем меньше энергии необходимо для модификации этого сигнала. Именно поэтому тестировать нужно начинать как можно раньше, на самых ранних стадиях проекта, и предоставлять эту обратную связь и на этапе проектирования, и еще, может быть, раньше, еще на этапе сбора и анализа требований.

Как это может выглядеть на практике?

Во время процесса разработки, QA-инженер контактирует со множеством людей, которые работают над проектом и над разрабатываемом ПО.

Сначала, QA -инженер узнает все необходимые требования к программному продукту или приложению у заказчика. Под них, QA-инженер пишет тесты для проверки удовлетворенности всех требований к продукту.  Затем, при разработке, по результатом тестирования, в случае, если были найдены ошибки и баги — QA-инженер пишет задачи для программиста/ов на доработку кода. Таким образом, происходит улучшение качества процесса разработки и соответственно, самого программного продукта.

Поэтому, чтобы стать хорошим QA-инженером — специалист, дополнительно, должен разбираться и ориентироваться во многих областях и иметь навыки от разных профессий. Так, QA-инженер должен иметь базовые знания принципов разработки и тестирования ПО (от тестировщика и девелопера), заканчивая пониманием, как разрабатываемое ПО или приложение должно работать и чтобы это было удобно для обычных пользователей.

Где учиться на тестировщика

Есть три варианта: изучить все навыки самостоятельно, окончить университет или пройти онлайн-курсы.

В первом случае все полностью бесплатно и в ваших руках, но это довольно долгий путь, закончить который по силам не всем. Потребуется изучить много документации, учебников, форумов, обучающих видеоуроков на YouTube. Базовые знания вы, конечно, сможете получить довольно быстро, но вот хватит ли их для получения работы – тут все зависит от вас. Может быть, вам повезет, и вас возьмут стажером.

Второй путь – университет, этот путь тоже долгий, и далеко не все его проходят до конца. Однако на таком пути вы получите навыки не только тестировщика, но и квалифицированного инженера, программиста. На сайте postupi.online представлено более 180 вузов России, где можно отучиться на тестировщика.

И третий путь – пройти онлайн-курсы. Это довольно короткая дорога, однако не такая радужная, как казалось бы. Во-первых, курсы могут быть крайне плохими. Вы получите сертификат, но особых знаний не будет, что бывает довольно часто. Во-вторых, сертификат онлайн-курсов, как правило, ничего не значит, так как получить его может каждый, поэтому плюсов в этом перед работодателем практически не будет.

💰 Материал спонсора. «Тестирование web-приложений» от Skillbox 💰

Длительность: 21 урок.

Формат обучения: видеоуроки + домашние задания без проверки.

Программа обучения:

  1. Основы тестирования веб-приложений.
  2. Тестирование текстовых полей.
  3. Тестирование текста, чисел и дат с использованием граничных значений.
  4. Что такое хорошая спецификация? Правильное оформление баг-репорта.
  5. Тестирование форм регистрации.

Чему научитесь:

  • Функциональному и нефункциональному тестированию сайтов и приложений
  • Работать в таск-трекерах
  • Использовать шаблоны тест-планов, тест-кейсов, сценариев и чек-листов
  • Тестированию мобильных приложений
  • Техникам тест-дизайна
  • Работе в панели инструментов веб-разработчика
  • Основным методам автоматизации
  • Основам программирования на Java
  • Тестированию пользовательских интерфейсов

Кто проводит курс

  • Владимир Авилов — QA-инженер в ITooLabs
  • Евгений Данилов — глава отдела QA в Samsung NEXT, тимлид группы Frontend-разработки инвестиционного маркетплейса Московской биржи
  • Арсений Батыров — тимлид QA
  • Михаил Овчинников — главный методист технического направления Skillbox
  • Даниил Пилипенко — основатель центра подбора IT-специалистов SymbioWay, профессиональный программист с опытом работы более 15 лет
  • Алексей Закеев — руководитель отдела тестирования в HeroCraft
  • Марина Третьякова — ведущий специалист по тестированию в «СКБ Контур»
  • Дмитрий Якин — ведущий специалист по тестированию в «СКБ Контур»
  • Иван Румак — ведущий QA-инженер в «СКБ Контур»
  • Андрей Малых — QA Automation Lead

Самообучение QA Manual – насколько, на твой взгляд, это эффективно, если серьезно настроен(а) на карьеру в этой области?

На мой взгляд, как раз без способности и любви к самообучению в IT-сфере (как и в любой другой) невозможно достичь каких-либо существенных результатов. Другой вопрос, что начинающим специалистам довольно трудно сориентироваться в огромном объеме доступной информации, здесь важен систематизированный и комплексный подход, а также супервизия и направление со стороны опытного специалиста. Поэтому я считаю, что лучший вариант – это посещение профессиональных курсов в сочетании с самостоятельным углубленным изучением преподаваемых на курсах тем. Как правило, 2-х или даже 6-и месячные курсы не покрывают полностью объем знаний, необходимый для старта в профессии, они дают хорошую базу, от которой нужно отталкиваться самостоятельно. Более того, стремление к получению знаний самостоятельно явственно свидетельствует о замотивированности человека развиваться в выбранном направлении, а также о настоящем интересе к профессии. Ведь мы всегда готовы тратить время на то, что нам нравится.

Для ребят, которые окончили курсы и хотят развиваться дальше, iTechArt предлагает стажировку, которая предполагает тесное взаимодействие с персональным ментором. Как один из менторов, я считаю такой формат обучения максимально продуктивным: у начинающих специалистов есть возможность научиться применять свои знания на практике под присмотром опытных специалистов, а при успешном прохождении стажировки – стартовать уже на реальном коммерческом проекте.

Есть ли у тебя какой-нибудь персональный лайфхак, который бы упростил жизнь всем QA-автоматизаторам?

АЛЕКСЕЙ ПОБОЛЬ: Если я нахожу какое-то интересное решение, то сразу документирую это на внутреннем портале, чтобы другие члены команды тратили меньше времени в будущем

ЕКАТЕРИНА ЖУКОВСКАЯ: Сложно назвать это лайфхаком, но могу сказать, что нужно уметь писать не только красивый и правильный по структуре код, но также и уметь создавать, так называемые, “костыли”. Это действительно упростит жизнь и сократит время на решение какой-то нетривиальной проблемы, где красота кода ничем не помогает, ведь это уже будет критическое мышление, основанное на опыте.

А самое главное – не нужно бояться, что ты чего-то не знаешь, главное желание и усердие. Мы учимся всю жизнь –  “Чем больше мы знаем, тем ещё больше нам придётся узнать”.

Что делает тестировщик ПО, кто он?

Должность тестировщика ПО предполагает контроль качества и поиск ошибок в готовом продукте, а также в обновлениях. Специалисты используют ручное и автоматическое тестирование, проверяют безопасность и выполняют другие работы, необходимые для выявления и последующего устранения проблем. Они не устраняют ошибки самостоятельно, но формируют отчеты, которые используют разработчики.

Внутри профессии есть условное деление на узкие специализации. Например, существуют автоматизаторы, которые пишут код, используемый для автоматизации тестирования. Usability-специалисты осуществляют проверку характеристик, которые представляют интерес для потенциального пользователя, а Security прорабатывают вопросы безопасности. Однако работодатели заинтересованы в многозадачных сотрудниках, которые смогут выполнить всестороннее тестирование.

Говоря о том, что нужно знать тестировщику ПО, стоит упомянуть следующие дисциплины и понятия:

  • система контроля версий Git;
  • основы баз данных и тестирования ПО;
  • HTTP, а также особенности разных операционных систем (BASH, CMD, PowerShell);
  • сетевые протоколы;
  • язык запросов SQL;
  • инструменты, используемые для управления процессом тестирования, в частности JIRA, TestLink и другие;
  • системы отслеживания ошибок;
  • основы хотя бы одного языка программирования, в приоритете Java, JavaScript, C#.

Объем профессиональных компетенций зависит от уровня компании, а также от специфики продукта. В обязанности тестировщиков ПО входят следующие работы:

  • осуществление контроля качества ПО;
  • выявление, фиксирование и анализ ошибок;
  • формирование отчетов для команды разработчиков;
  • разработка автотестов и сценариев, использование готовых решений, ручное тестирование.

Они могут заниматься не только программным обеспечением, но и осуществлять проверку мобильных и десктопных игр, обновлений, иных продуктов.

Курсы тестировщика на GeekBrains

Тестирование ПО

Попробуйте себя в тестировании и узнайте, подходит ли вам эта специальность! Всего за 2 часа вы познакомитесь с основными инструментами и проведёте первые тесты.

Факультет тестирования ПО

Станьте специалистом по тестированию, даже если у вас нет никаких знаний в IT. После прохождения курса сможете начать свою карьеру, обладая навыками ручного тестирования, автоматизации на Java, а также имея опыт работы с веб-приложениями.

Тестировщик ПО

Тестировщик программного обеспечения — одна из пяти самых востребованных специальностей в сфере IT, согласно статистике сайта hh.ru. Чтобы стать хорошо оплачиваемым специалистом, достаточно знаний из школьной программы. Вы освоите интересные навыки, которые высоко ценятся во всех успешных компаниях. На работе будете незаменимы и уникальны. Поэтому оплата труда высокая даже у начинающего тестировщика.

Научитесь работать с Java и автоматизировать тестирование Web UI и бэкенда на Java.

Основы тестирования ПО

Курс «Основы тестирования ПО» от GeekBrains ориентирован на тех, кто желает стартовать в карьере тестировщика программного обеспечения. На обучении будут рассматриваться особенности написания тест-кейсов, тест-комплектов, оформления багов и отчетов о результатах тестирования. Прохождение курса включает в себя девять занятий из теоретических знаний и практических заданий. По окончании обучения вы сможете начать работу в проекте по IT-разработке.

Тест-анализ

Веб-разработка создает сложные продукты в виде систем, сайтов и приложений. Для того, чтобы их протестировать, недостаточно сопоставить желаемый и текущий результат. Необходимо использовать лучшие сценарии для каждого отдельно взятого ПО, которые помогут выявить максимально возможное количество багов за короткий промежуток времени. Для решения таких задач надо владеть техниками анализа информационных продуктов.

Курс создан для начинающих тестировщиков, у которых есть базовые знания в этой профессии и кто хочет погрузиться в нее глубже, чтобы успешно начать карьеру в сфере интернет-технологий. На обучении будут рассмотрены методы анализа ПО и визуализации функционала, вы изучите способы определения нужного числа тестов и концепции стратегии в тестировании.

После прохождения курса вы сможете мыслить, как профессиональный тестировщик, уметь выполнять анализ продукта и создавать успешные сценарии для тестирования. Обучение включает в себя восемь практических занятий.

Что делает тестировщик

Тестировщику дают продукт и требования к нему (документацию). Он всё это изучает и сопоставляет. Придумывает, как это всё тестировать. Его задача — проверить, чтобы продукт исполнял возложенные на него обязанности по документации, а потом — проверить всякие нештатные ситуации и предложить улучшения.

Само тестирование происходит по множеству разных сценариев. Например, так:

Тестировщик открывает продукт как пользователь и проходит все стандартные сценарии — как будет происходить у 80% всех людей. Все баги фиксирует.

Можно попробовать взломать продукт: вместо имени ввести код; добавить в корзину бесконечное количество товаров; добавить в корзину −1 (минус один) товар; добавить в корзину больше 40 тысяч товаров (и перегрузить переменную счётчика товаров); поискать в строке поиска «Войну и мир» (полный текст).

Можно представить, что у пользователя дефектное устройство: например, ввод происходит бесконечно быстро или вместо русских букв в поле ввода вставляются картинки. Как тогда поведёт себя программа? Все находки фиксируются в багтрекере.

Какие-то из этих тестов можно автоматизировать: пишется специальная программа, которая симулирует действия пользователя и сравнивает результаты с эталоном. Другие тесты обязательно проходятся ручками.

Отдельная кухня — это то, как тестировщик фиксирует баги и доносит их до разработчика. Ведь одно дело сказать «Я нашёл ошибку», и совсем другое — сделать так, чтобы разработчик тоже смог её найти и исправить. Поэтому хороших тестировщиков учат грамотно описывать баги.

В некоторых компаниях тестировщик предлагает улучшения продукта с точки зрения логики, интерфейса или текста. Раз человек пользуется продуктом много и часто, есть смысл его послушать.

Обязанности тестировщика ПО (чем занимается тестировщик?)

QA специалист занимается решением таких вопросов:

  • изучает технические документы;
  • уточняет пожелания заказчика;
  • определяет возможные риски;
  • пишет тестовые документы и описывает идеи по повышению качества продукта (т.н. тест-кейсы);
  • занимается, собственно, тестированием приложения;
  • находит уязвимые места, документирует обсуждает их с программистами;
  • тестирует продукт после того, как программисты исправили баги;
  • оптимизирует тестировочный процесс;
  • пишет автоматические тесты (automation tests).

Квалификация QA тестировщиков бывает разной:

  • стажер Trainee;
  • новичок Junior со стажем 1-6 месяцев, знакомый с базовыми понятиями QA (тест-планами и тест-кейсами, дефектами Severity и Priority), умеющий выполнять простые операции в SQL;
  • средний уровень Middle с опытом до 3 лет, умеющий тестировать продукты самостоятельно и обучать стажеров/новичков;
  • высший уровень Senior, способный справляться с технически сложными задачами и тестировать приложения разными методами.

Как и где научиться профессии?

Как я уже говорила, для успешной работы тестировщиком необходимы специальные знания и навыки. Если у вас есть базовое образование по программированию, то вы сможете самостоятельно научиться тестировать ПО. В противном случае, вам необходимо получить дополнительные знания. Это несложно, многие онлайн-университеты и школы смогут предложить вам пройти курсы, на которых вы научитесь проводить ручные и автоматические тесты с нуля. Предлагаю вам ознакомиться с некоторыми из них:

1. «Профессия Тестировщик» от SkillBox

SkillBox – образовательный онлайн-портал, участник проекта Skolkovo, обладатель премии Рунета за 2018 и 2019 годы.

  • Чему научитесь: ручному и автоматическому тестированию сайтов и приложений;  техникам тест-дизайна; программированию на языке Java; веб-верстке.
  • Формат обучения: практические видеоуроки, самостоятельные задания с проверкой куратора, защита дипломного проекта; всего 586 уроков, сгруппированных в 185 тематических блоков.
  • Преимущества: обучение на практике; помощь в трудоустройстве; отсрочка платежа на 3 месяца; шаблоны тест-планов, кейсов, сценариев и чек-листов.
  • Длительность обучения: четкий срок зависит от выбранных модулей, в среднем от 1 года.
  • Кому подойдет: новичкам и начинающим тестировщикам.
  • Стоимость: от 93 000 рублей, возможна рассрочка от 3 900 рублей в месяц.

2. «Тестировщик программного обеспечения» от SkillFactory

SkillFactory – онлайн-школа интернет-профессий с опытом 5 лет на рынке, участник проекта Skolkovo, лидер на рынке онлайн-образования в сегменте Data Science.

  • Чему научитесь: автоматизации на Python; основам тест-дизайна; написанию собственных тест-кейсов; пользоваться баг-трекером и многому другому.
  • Формат обучения: курс-симулятор (обучение в игровом формате с полным погружением в профессии); всего 336 учебных часов; вебинары с разбором важных тем и ответами на вопросы.
  • Преимущества: обучение с нуля; практическая программа; опыт тестирования; помощь ментора; преподаватели – практики с опытом более 5 лет; именной сертификат о прохождении профессиональной подготовки; есть возможность получить обратно часть оплаты (если прошли курс не полностью по какой-либо причине).
  • Длительность обучения: 8 месяцев.
  • Кому подойдет: для новичков, начинающих IT-специалистов.
  • Стоимость: около 60 000 рублей единовременно или в рассрочку на 12 месяцев по 4 950 рублей.

3. «Тестировщик» от Нетологии

Нетология – онлайн-университет для тех, кто хочет реализовать себя в профессии в сфере маркетинга, дизайна, программирования и аналитики, с опытом более 9 лет на рынке онлайн-образования.

  • Чему научитесь: освоите 12 инструментов тестировщика и методы ручного и автоматического тестирования; изучите язык программирования Java и английский для начинающих разработчиков.
  • Формат обучения: онлайн-вебинары по вечерам по 2-3 раза в неделю; домашние задания с проверкой и работой над ошибками;
  • Преимущества: обучение с нуля; диплом о профессиональной подготовке установленного образца; для лучших учеников предложат собеседование в Альфа-банке; преподают специалисты ведущих компаний; помощь в составлении резюме; возможность получить налоговый вычет.
  • Длительность обучения: 6 месяцев.
  • Кому подойдет: начинающим тестировщикам, специалистам из техподдержки.
  • Стоимость: 46 740 рублей при единовременной оплате или в рассрочку по 3 895 рублей на 12 месяцев без переплат.

Кто такие тестировщики

Начем с того, что QA-инженер — одна из самых недооценённых профессий в нашей индустрии. Зарплаты тестировщиков обычно намного меньше, чем зарплаты программистов. Соответственно, эта сфера меньше привлекает талантливых людей. А если уж они и попадают в неё, то стремятся как можно быстрее продвинуться в разработку или управление проектами, чтобы зарабатывать больше.

Всё это приводит к тому, что найти хорошего тестировщика гораздо сложнее, чем хорошего программиста. При этом количество технических знаний, необходимых QA-инженеру, никак не меньше, чем разработчику. Кроме того, тестировщик должен обладать набором уникальных скилов, которых зачастую нет у кодеров. Поэтому хороший QA-специалист сегодня на вес золота.

Чтобы понять эту мысль, давайте разберём, как в теории должен происходить процесс разработки.

  • Идеальный product-manager создает максимально детализированный спек продукта и передаёт его идеальному дизайнеру.
  • Идеальный дизайнер, в свою очередь, рисует продуманные до мельчайших деталей UI- и UX-мокапы.
  • Техлид компании распределяет работу между разработчиками.
  • Идеальные разработчики в кратчайшие сроки (и, разумеется, без багов) имплементируют спек, тщательно проверяя и документируя свой код.
  • Идеальные QA-инженеры пишут тест-план на основе детального спека и сверяются с UI-диаграммами, полученными от дизайнера.
  • Проверка продукта становится тривиальной задачей и он выходит в продакшн.

Если это описание вызвало у вас слёзы умиления, то я с вами. Потому что хороших продюсеров вообще очень мало, а тех, кто способен написать детальный спек, — единицы. Программисты редко видят картину настолько, чтобы уже на стадии имплементации замечать в спеках ошибки. Особенно если они не находятся внутри одного конкретного модуля, над которым сейчас работают.

Другие классификации видов тестирования

Чаще всего используется разбиение на три уровня, это

  1. модульное тестирование,
  2. интеграционное тестирование,
  3. системное тестирование.

Под модульным тестированием обычно подразумевается тестирование на достаточно низком уровне, то есть тестирование отдельных операций, методов, функций.

Под системным тестированием подразумевается тестирование на уровне пользовательского интерфейса.

Иногда используются также некоторые другие термины, такие, как «компонентное тестирование», но я предпочитаю выделять именно эти три, по причине того, что технологическое разделение на модульное и системное тестирование не имеет большого смысла. На разных уровнях могут использоваться одни и те же инструменты, одни и те же техники. Разделение условно.

Если посмотреть на какое-нибудь типичное веб-приложение, то можно заметить, что оно представляет собой своеобразную матрешку.

Оно состоит из клиентской и серверной части, клиентская часть включает в себя помимо браузера некоторый набор java-скрипт-библиотек, каждая из них состоит из набора функций.

Серверная часть, в свою очередь, еще может быть разделена на несколько крупных кусков. Один выполняется на сервере приложений, другой выполняется на стороне базы данных, на сервере приложений имеется целый ряд библиотек. Некоторые из них разработаны самостоятельно, некоторые уже готовые используются.

Библиотеки состоят из классов, классы состоят из методов, на стороне баз данных тоже есть пакеты, состоящие из хранимых процедур.

Само по себе приложение тоже может являться частью какой-то более крупной информационной системы.

В этой матрешке мы должны понять, где, на каком уровне у нас должно находиться модульное тестирование, а на каком должно находиться системное тестирование. И найти еще место для интеграционного.

Глядя на эту матрешку мы можем понять, что разделение на системное и модульное тестирование является чисто условным.

То есть у нас система состоит из каких-то модулей. Модули в свою очередь состоят из других более мелких модулей. Эти мелкие модули состоят еще из более мелких, и так далее.

 И так, получаем в результате:

Классификацию по целям удобно выполнять с использованием «магического квадрата», который был изначально придуман Брайаном Мариком и потом улучшен Эри Тенненом.

В этом магическом квадрате все виды тестирования располагаются по четырем квадрантам в зависимости от того, чему в этих тестах больше уделяется внимания.

По вертикали — чем выше располагается вид тестирования, тем больше внимания уделяется некоторым внешним проявлениям поведения программы, чем ниже он находится, тем больше мы внимания уделяем ее внутреннему технологическому устройству программы.

По горизонтали — чем левее находятся наши тесты, тем больше внимания мы уделяем их программированию, чем правее они находятся, тем больше внимания мы уделяем ручному тестированию и исследованию программы человеком.

В частности, в этот квадрат можно легко вписать такие термины как приемочное тестирование, Acceptance Testing, модульное тестирование именно в том понимании, в котором оно чаще всего употребляется в литературе. Это низкоуровневое тестирование с большой, с подавляющей долей программирования

То есть это все тесты программируются, полностью автоматически выполняются и внимание уделяется в первую очередь именно внутреннему устройству программы, именно ее технологическим особенностям.

В правом верхнем углу у нас окажутся ручные тесты, нацеленные на внешнее какое-то поведение программы, в частности, тестирование удобства использования, а в правом нижнем углу у нас, скорее всего, окажутся проверки разных нефункциональных свойств: производительности, защищенности и так далее.

Так вот, исходя из классификации по целям, модульное тестирование у нас оказывается в левом нижнем квадранте, а все остальные квадранты — это системное тестирование.

Есть ли у начинающих Manual QA какие-либо мифы о профессии, которые развеиваются с началом реальной работы?

Мне кажется, что да, мифы существуют. Такие выводы я могу сделать на основании некоторых выражений, которые слышу от кандидатов во время интервью. Вот некоторые из них:

а) «Я хочу стать тестировщиком, потому что мне нравится «ломать» софт». На самом деле, когда осознаешь всю ответственность своей задачи по контролю качества, когда вместе со всей командой вкладываешься в развитие продукта, огромное удовольствие получаешь от того, что приложение «не ломается», с какой бы ты стороны ни зашел, какие бы проверки ни проводил.

б) «Я бы хотел «потрогать», «пощупать», «поиграть» с определенными технологиями, приложениями». Возможно, со стороны работа тестировщика и может показаться похожей на игру или поверхностное знакомство с продуктом. На самом же деле тестирование – это сложный и трудоемкий процесс, требующий от специалиста определенного уровня подготовки, терпения и усидчивости. Мы не «трогаем» объект тестирования, не «играем» с ним, мы разбираем его по винтикам, досконально изучаем и снова собираем, чтобы получить полное представление о его работе и соответственно дать оценку его качеству. 

Чем тестировщик отличается от QA-специалиста

QA (от англ. Quality Assuranse) представляет собой совокупность мероприятий, охватывающих все этапы разработки, выпуска и эксплуатации программного обеспечения. Это активности на всех этапах жизненного цикла ПО, которые предпринимаются для обеспечения требуемого уровня качества выпускаемого продукта.

В чем же состоят различия между QA и тестировщиком подробнее рассмотрим в сравнительной таблице:

QA-инженер

Тестировщик

Фокусируется по большей части на процессах и средствах, чем на самом тестировании продукта

Фокусируется на тестировании продукта

Процессно-ориентированный подход

Продуктно-ориентированный подход

Подмножество процессов Software Test Life Cycle – цикла тестирования ПО

Подмножество процессов QC 

Обратите внимание, что из всего этого у нас вытекает еще одно определение. QC (от англ. Quality Assurance) – процесс проверки качества, который обеспечивает соответствие продукта ранее установленным требованиям

Другими словами, это процесс, который обеспечивает ожидаемое качество продукта.

QC фокусируется на тестировании путем выполнения программ с целью определения дефектов с использованием утвержденных процессов и средств. Вместе с этим он является подмножеством QA.

Тестирование – это часть QC, а QC – часть QA.

QA обеспечивает правильность процесса, а QC предполагает контроль соблюдения требований. Тестировщик же, напротив, обеспечивает сбор данных, которые вносятся в документы, созданные в ходе работы QC.

Выводы:

  • тестирование позволяет определить работоспособность продукта: правильно ли он был разработан, были ли использованы необходимые инструменты и так далее;
  • QA обеспечивает соответствие всех этапов разрабатываемого ПО – от планирования и создания до выпуска готового продукта.

Опиши основные обязанности Manual QA Engineer. Что представляет из себя работа тестировщика-мануальщика и как выглядит его типичный трудовой день?

В отношении типичного трудового дня – он может разниться в соответствии с фазой проекта или спринта. Но в целом обязанности Manual QA можно свести к следующему:

  • анализ требований – тестировщик должен четко понимать, что должно делать ПО и как оно должно работать, а также способствовать тому, чтобы у всех членов команды было одинаковое представление об этом;
  • составление тестовой документации – для самого тестировщика это уверенность в том, что баги не будут пропущены, для других участников процесса – прозрачность и возможность иметь представление о том, какие проверки проводятся;
  • непосредственно функциональное и нефункцинальное тестирование продукта;
  • оформление баг-репортов и отчетов о тестировании.

Можно сказать, что типичный трудовой день Manual QA включает в себя по чуть-чуть все эти активности.

Заключение

Профессия тестировщика – это отличный выбор для тех, кто хочет уйти в IT-сферу. Глубоких знаний на начальном этапе не потребуется, но нужно будет много учиться.

А вот если вы планируете стать QA-инженером, то здесь базовых знаний не хватит. Потребуется сначала поработать тестировщиком, чтобы полностью углубиться в сферу QA. 

Гостем нового выпуска подкаста «Быть» стал Ваня Морщагин, руководитель QA-направления в Timeweb. В видео вы узнаете, чем тестировщик отличается от QA-инженера, какие ветки развития есть в quality assurance в целом, нужен ли вуз и куда можно расти из QA. Послушать подкаст можно на Apple Podcasts, Яндекс.Музыка и Spotify. 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector