Очень немногие люди за пределами IT-индустрии (и даже внутри нее) имеют четкое представление о том, за что отвечает тестировщик программного обеспечения. О QA-инженерах существует слишком много заблуждений и мифов. В этой статье мы развенчаем несколько из них. Тестирование — это бесперспективная отрасль или отличная возможность начать карьеру в IT? Может ли команда работать без тестировщиков? Давайте в этом разберемся.
- Тестирование программного обеспечения (testing) и обеспечение качества (QA engineering) — это одно и то же
Тестировщики программного обеспечения и инженеры по обеспечению качества — это две разные профессии, но их постоянно путают. Работодатели не исключение — они совершают ту же ошибку, она случается даже в описании вакансий. Что ж, человеку свойственно ошибаться, но давайте выясним, в чем разница между тестировщиками и QA-инженерами.
В английской версии терминологии систем менеджмента качества нет слова «тестировщик» или «тестирование». Можете сами в этом убедиться, перейдя по ссылке на сайт ISO (примерно в этот момент вы уже начинаете засыпать от скуки, не беспокойтесь — мы не будем утомлять вас терминами). На сайте упоминается обеспечение качества и контроль качества. Так, а что же с тестированием? Неужели придется признать, что мы все время неправильно использовали слово?
Спешим вас успокоить — со словом «тестирование» все в порядке. Тестирование — это часть QA, а QA является более широким понятием. Тестирование — это только один из способов обеспечения качества продукта. «Один из» здесь ключевая фраза. То есть тестирование не является единственным способом обеспечения качества. Каждый метод обеспечения качества даст свой результат. Выбор метода зависит от целей QA-инженера. Тестирование также называют контролем качества.
Инженеры по обеспечению качества (QA) помогают командам разработчиков предоставлять качественный продукт как можно быстрее и с минимальными денежными затратами. Тестировщики проверяют качество продукта на последнем этапе его разработки. Их задача состоит в проверке продукта и предоставлении бизнесу и разработчикам информации о том, соответствует ли продукт заявленным требованиям. Надеюсь, нам удалось прояснить ситуацию.
- Автоматическое тестирование скоро полностью вытеснит ручное
Убеждение, что автоматизированное тестирование заменит ручное и, в конечном итоге, вытеснит самих тестировщиков, очень распространено. Многие тестировщики уверены, что автоматизация — это не только конечная цель, но и единственный способ развития для тестировщика. Это часть более крупного мифа, согласно которому искусственный интеллект в скором времени оставит нас всех без работы.
Но именно люди до сих пор находят ошибки даже в самых сложных системах. Искусственный интеллект не может достичь такого уровня изобретательности, а миллиарды людей способны на это. Автоматизированные системы выполняют простые рутинные действия, которые могут показаться человеку скучными. Однако на данный момент они не заменят человеческий разум и могут выполняться только под контролем человека.
- Тестирование — это скучно
Бытует мнение, что создание подробного плана тестирования — дело длительное и однообразное. В какой-то степени это правда: избежать рутины невозможно в любой работе. Но кто эти люди, утверждающие, что тестирование — это скучно? Нет, ну серьезно! Ладно, решать простые задачи бывает скучновато. Но тестирование заключается в поиске новых подходов и улучшении результатов работы. Что может быть увлекательнее этого?
Написание сценариев требует постоянного творчества, автоматизация требует творчества. Чем больше инструментов вы используете, тем интереснее ваш подход. Хороший тестировщик больше похож на хакера. Ему нужно залезть в голову человека, создавшего этот продукт. А это одно из интереснейших заданий. Скучно? Ха! А что тогда не скучно?
- Тестировщики просто ищут ошибки
Основная задача тестировщика действительно состоит в том, чтобы выявлять ошибки. Однако круг обязанностей тестировщика намного шире. Его работа чем-то напоминает труд детектива: он идет по пятам за программистом, отслеживая ошибки. Но недостаточно просто проверить программу на наличие ошибок. Конечная цель тестировщика убедиться в том, что программа соответствует требованиям заказчика. А это значит, что будет много промежуточных тестов. Тестировщик ищет ошибки на каждом этапе разработки программного обеспечения. Только тогда у покупателя появляется реальный шанс на получение желаемого товара.
Фактически, тестировщики находятся в центре разработки программного обеспечения. Они — важнейшая составляющая всех этапов жизненного цикла программного обеспечения. Именно тестировщики несут ответственность за качество продукта; они знают, как его улучшить и какой продукт можно считать достаточно хорошим. Цель тестировщика созвучна стратегическим целям компании. Вот почему хороший тестировщик должен обладать аналитическими навыками и уметь работать с огромными объемами данных. Тайм-менеджмент и планирование также очень важны в работе тестировщика. Из всего вышесказанного можно сделать вывод, что речь идет не только об отслеживании ошибок.
- Тестируется только готовый продукт
Когда тестирование проводится в самом конце, на этапе, когда продукт уже готов, поздно выявлять серьезные ошибки. А это значит, что весь проект придется переделывать — огромный стресс для всех. Гораздо удобнее отслеживать ошибки по мере их возникновения. Для этого нужно проверять задания на соответствие заявленным требованиям в момент их выполнения. DevOps и Agile поддерживают такой подход. То есть тестировщики тестируют не только готовый продукт, но также вовлечены в сам процесс разработки.
- Тестирование — это слишком дорого
Согласно еще одному вредному мифу, тестирование — это слишком дорого. Ладно, если вам кажется, что это действительно дорого, попробуйте посчитать, во сколько вам обойдется одна необнаруженная ошибка. Продукт не будет работать так, как предполагалось. Какие это будет иметь последствия? Скорее всего, катастрофические. Иногда приходится объяснять заказчику, почему тестирование — это важно. Это утомительно, но необходимо. Экономия денег и даже времени не является достаточным аргументом в пользу отказа от тестирования.
Потенциальные риски всегда намного выше. На кону не только сам продукт, но и репутация компании. Пост-релизные исправления стоят в два раза дороже, чем тестирование. Не пренебрегайте тестированием — это может иметь ужасные последствия для качества продукта. Самые дорогие ошибки являются результатом незначительного недосмотра. Это легко предотвратить, а тестирование — это ваш главный инструмент.
- Тестирование — это сложно
Некоторые люди считают, что тестирование — это слишком сложно. Они руководствуются тем, что оно приближено к программированию и необходимо освоить слишком много инструментов. Тестировщик должен владеть автоматизацией, дизайном тестов, уметь настраивать фреймворк. Более того, все время появляется что-то новое — новая среда, новый инструмент. Количество того, что нужно знать, все время увеличивается.
Некоторые люди наоборот утверждают, что тестирование — это легко, и даже человек без образования или подготовки может работать в этой отрасли. Мы же скажем, что тестирование — это навык, его можно тренировать и развивать. Единственное, что вам для этого нужно, это терпение и настойчивость.
Вывод
Если вы погуглите «мифы о тестировании», то найдете гораздо больше. Тестирование занимает слишком много времени, разработчики ненавидят тестировщиков, всегда и во всем виноват тестировщик. Вот всего лишь несколько примеров. Не верьте своему страху; страх — плохой друг. Он вводит в заблуждение, лишает вас уверенности, загоняет в сомнения. В тестировании нет ничего слишком сложного, оно не сверхдорогое, автоматизация не вытеснит ручное тестирование, а работу тестировщика не может выполнять машина (по крайней мере, пока). Полагайтесь на свои знания; выберите курс, который укрепит ваше чувство уверенности в себе. Мы будем рады вам помочь — свяжитесь с нами. Давайте вместе разрушать мифы. Тестирование — это всегда вызов, но как же приятно с ним справляться!