👨‍🔧️ Основы профессии тестировщика с нуля за 10 минут

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

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

Тестирование – это проверка, насколько ожидания разработчиков продукта соответствуют реальности.

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

Процесс тестирования.
Процесс тестирования.

Существует три уровня тестирования:

  1. Модульное (или компонентное) тестирование, когда проверяется только какая-то часть ПО: отдельная функция, класс, модуль программы. Стандартно оно проводится через вызов кода. Зачастую тестирование на этом уровне осуществляется самим разработчиком. Модульное тестирование от компонентного отличается тем, что в компонентном используют реальные объекты и драйверы, а в модульном – конкретные значения.
  2. Интеграционное тестирование – процесс исследования ПО, когда проверяются интерфейсы между компонентами или подсистемами. К интеграционному тестированию можно отнести также проверку взаимодействия двух систем в заданных точках. Например, передачу данных из одной системы в другую.
  3. Системное тестирование – проверка соответствия системы требованиям заказчика. Исследуются функциональные и нефункциональные требования к системе в целом, выявляются дефекты и непредусмотренные сценарии. Например, что будет, если в поле, в которое вводится два знака, попробовать ввести три, букву вместо цифры и т.д.
Системное тестирование проводят по базе требований, под каждое из которых создается тестовый случай (тест-кейс) . Тестирование может идти и по базе случаев использования, когда по каждому из них определяются сценарии, для которых создаются кейсы.

Классификация видов тестирования

Как видите, классов не так много, но в каждом из них можно выделить несколько разных видов тестирования.

Перечислим основные:

  • Функциональное тестирование – проверка, что ПО правильно решает пользовательские задачи.
  • Тестирование производительности позволяет оценить быстродействие ПО при заданной нагрузке. Тестирование производительности проводится до и после оптимизации. Его целью является проверка и выявление факторов, которые влияют на производительность ПО.
  • Нагрузочное тестирование предполагает оценку ПО при плановой, повышенной и пиковой нагрузке. Ресурсы системы конечны и такое тестирование позволяет избежать связанных с нагрузкой инцидентов после ее внедрения.
  • Стресс-тест – проверка работы ПО в критических условиях: миграция данных из другой системы в больших объемах, загрузка большого количества данных, нехватка памяти или дискового пространства. Также проверяется, как будет работать ПО, когда им одновременно начнет пользоваться большое количество пользователей.
  • Тестирование стабильности – проверка реакции ПО на взлом, попытки хищения данных и т.д.
  • Тестирование совместимости – проверка реакции ПО на окружение, заданные условия использования другими системами и проч.
  • Тестирование black box или тестирование черного ящика проводится только через интерфейсы пользователя.
  • Тестирование white box или тестирование белого ящика – тестирование с доступом к исходному коду программы. Этот способ позволяет оценить реакции внутри ПО на те или иные события, более тонко и точечно выявить ошибки или неоднозначные реализации логических цепочек.
  • Альфа-тестирование – имитация реальной работы с ПО, чтобы оценить его в максимально приближенных к реальным условиях.
  • Бета-тестирование проводится группой по основным параметрам с целью проверки наличия в ПО минимального количества ошибок.
  • Регресс-тест – проверка ранее найденных ошибок. После разработки и доработки проверяется, что ни одна из них не появилась вновь.
  • Дымовой тест – проверка «А запускается ли ПО?». Smoke testing проводят, когда отдельные компоненты нужно собрать в один продукт. Бывает, что по отдельности каждая компонента работает стабильно и корректно, а вместе – нет.
  • Ручное тестирование – тестирование, при котором не используются доп. инструменты, для проверки проводится только имитация действий пользователя.
  • Автоматизированное тестирование – тестирование с использованием специальных программных средств. Автоматизированное тестирование экономит время и ресурсы, а также увеличивает надежность ПО.
  • Динамический анализ кода – анализ исходного текста программы в процессе ее выполнения. В этом случае проблемы в коде обнаруживаются по мере их появления.
  • Статический анализ кода проводится без реального выполнения исследуемых программ. Он позволяет обнаружить дефекты еще до того, как код будет готов к запуску. Статический анализ также называю аудитом кода.

Как видите, в рамках тестирования могут идти самые разные процессы на различных уровнях. Управляют ими специалисты, которых называют тестировщиками.

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

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

Обязанности тестировщика

  1. контроль качества разрабатываемых продуктов;
  2. выявление и анализ ошибок, возникающих при работе с ПО;
  3. разработка тестов, тест-кейсов;
  4. тестирование;
  5. анализ результатов тестирования;
  6. классификация ошибок;
  7. сопровождение процесса ликвидации найденной ошибки;
  8. документирование всего процесса.

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

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

Стек технологий тестировщика:

У каждого инженера по QA есть свой уникальный опыт и собственный стек технологий – набор инструментов, которые он использует в работе, включая языки программирования, СУБД и прочее.

Перечислим наиболее распространенные варианты:

Языки разметки и программирования:

  • HTML/CSS
  • Python
  • SQL
  • Java/JavaScript

Фреймворки:

  • Selenium
  • Allure

Системы автоматизации:

  • Jenkins

ПО для управления проектами:

  • Jira
  • Redmine

Библиотеки модульного тестирования:

  • Nose
  • SimpleTest
  • Jest
  • Jasmine
  • Chai
  • JUnit
  • Nunit
  • Boost Test
  • Watir

Серверы, для запуска легковесных оболочек:

  • Selenoid
  • Docker

Это примерный список: важно понимать, что в каждом проекте будет уникальная комбинация стека технологий, отвечающая индивидуальным требованиям. Какой-нибудь веб-проект может работать, например, с таким стеком: Java + Html elements + Selenoid + Allure + Jenkins + Readmine.

***

Список того, чем может владеть и что может изучать тестировщик огромен, начиная c английского и языков программирования, именно поэтому профессия становится такой гибкой и востребованной. Только постоянно развиваясь, инженер по QA может стать дорогим и уникальным специалистом. Начните с малого, постоянно практикуйтесь и развивайте уникальные компетенции. Удачи вам в освоении этой интересной профессии!

МЕРОПРИЯТИЯ

Комментарии 0

ВАКАНСИИ

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

BUG