Чем занимаются тестировщики
Ломают софт и доказывают команде, что он сделан некорректноТестировщики (а также инженеры по тестированию и QA-инженер) — это специалисты, которые тестируют софт, отлаживают код, улучшают его качество, прогнозируют появление ошибок. QA (quality assurance) — обеспечение качества. Это часть разработки управляет качеством продукта.
В QA входит направление QC (quality control) — контроль качества. QC-инженеры контролируют качество продукта на этапе разработки и поддержки.
Инженеры по тестированию делятся на две категории: мануальные тестировщики и автотестеры. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически.
Это деление условное, потому что автоматизаторы умеют тестировать программы вручную, а многие мануальные тестировщики осваивают языки программирования и начинают писать автоматические тесты.
Есть специалисты, которые занимаются нагрузочным тестированием, тестированием производительности систем. Пентестеры (penetration testers) проверяют софт на уязвимости. Еще существует исследовательское тестирование, UX-тестирование. Среднестатистическая QA-команда состоит частично из мануальных тестировщиков, частично из автоматизаторов. А их руководитель часто обладает навыками тест-дизайна, тест-менеджмента и управления процессами обеспечения качества
Артем Кострюков, генеральный директор компании Test ITЧем занимаются тестировщики
Это зависит от подхода в разработке. Классический вариант выглядит следующим образом. Разработчики пишут код. Тестировщик его проверяет. Если что-то пошло не так, отправляет на доработку. В подходе TDD (test-driven development), или разработка через тестирование, сначала тестировщики пишут тест, а потом разработчики — код.
В любом подходе задачи QA:
- Анализ и планирование. Тестировщика подключают к работе еще на стадии планирования продукта. Он анализирует требования и следит за тем, чтобы документация была непротиворечивой, а пожелания заказчика корректно описаны.
- Тестирование. На основе документации QA-инженер проверяет приложение по шагам и составляет отчеты об ошибках. Их называют баг-репортами.
- Работа с обратной связью от пользователей. После запуска продукта о его дефектах будут сообщать пользователи. На стадии поддержки тестировщик реагирует на отзывы. Он воспроизводит ошибки и передает их на исправление.
Тестировщики — это командные игроки. Существуют примеры, когда они подключались к разработке UI, изучали мокапы интерфейсов. Их работа позволила заранее отсечь нефункциональные варианты. Хороший UX-дизайнер, скорее всего, тоже знает, как пользователь взаимодействует с приложением. Но люди, которые работают в тестировании и поддержке, чаще сталкиваются с проблемами пользователей на практике
Артем Кострюков, генеральный директор компании Test ITНапример, мы решили поменять в нашем сервисе регистрацию через Facebook (запрещена в РФ), на регистрацию через GitHub. Хороший тестировщик задумается: если в нашем сервисе пользователь был залогинен через Facebook, система сохранила его аватарку из соцсети. Если он перелогинился через GitHub, надо ли будет менять аватарку или нет? QA-инженер должен обращать внимание на неочевидные мелочи
Артем Кострюков, генеральный директор компании Test ITЦель — сломать софт
Задача тестировщика — это проверить все возможные и даже невозможные сценарии поведения пользователя при работе с программным продуктом. Если ПО работает неправильно, он фиксирует ошибку и возвращает ее в отдел разработки.
Тестирование не должно показывать, что программное обеспечение соответствует требованиям. Задача QA — сломать софт и доказать разработчикам и команде, что он сделан некорректно
Дмитрий Тучс, глава QA-отдела в Dodo EngineeringНужно ли знать языки программирования
Тестировать интерфейс можно без знания языков программирования. Но тестировщику будет сложно писать автоматизированные тесты, если он не знает языков программирования. Это касается тестирования API, баз данных и микросервисов.
Современный тренд на «войти в айти» приводит к печальному результату. Многие новички приходят просто отработать и получить зарплату по принципу «дайте задачу, я ее сделаю, отстаньте от меня». Я это называю «делать минимальный объем работы, чтобы тебя не уволили». С такими людьми классный продукт не сделаешь.
Тестировщик — это всегда QA-инженер. Слово «инженер» используется не просто так. Востребованные QA-инженеры хорошо разбираются во многих смежных областях: разработке, базах данных, понимают, как работает Kafka.
Существует миф о том, что QA-инженеры — это дешевая сила, которую нанимают, чтобы не отвлекать дорогостоящих разработчиков. Сейчас в тренде крутые специалисты, но их мало.
Дмитрий Тучс, глава QA-отдела в Dodo EngineeringЗадачи QA
Въедливый тестировщик может раздражать разработчиков. Его немного боятся — сейчас он опять что-то найдет. В команде не должно быть практики, когда разработчик отдает сырой код: я написал, а ты протестируй.
Бизнес считает, что можно нанять дешевого QA-инженера, который будет проверять за разработчиком. А разработчик не будет отвлекаться на тесты и быстрее работать.
Парадокс в том, что этот подход работает, только если в компании работает опытный тестировщик. Только такой специалист быстро вынесет мозг разработчикам. И они перестанут отдавать ему сырой код. Разработчики не смогут работать, если им будет приходить десятки баг-репортов.
Начинающие тестировщики в такой ситуации боятся что-то сказать разработчикам. И в итоге мы видим баги на проде.
Дмитрий Тучс, глава QA-отдела в Dodo Engineering