Разделы портала

Онлайн-тренинги

.
Распространенные поисковые запросы, часть 1: почему тестирование значимо?
11.01.2021 00:00

Автор: Ли Хокинс (Lee Hawkins)
Оригинал статьи
Перевод: Ольга Алифанова

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

Первый по популярности запрос – "Почему тестирование значимо?" (вместе с похожими запросами "почему тестирование необходимо", "почему тестирование нужно", "почему тестирование важно для разработки ПО", и "почему тестирование значимо в жизненном цикле разработки ПО").

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

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

Дабы определиться с терминами – мое любимое определение тестирования сформулировано Майклом Болтоном и Джеймсом Бахом.

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

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

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

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

Закончим рядом причин, по которым я считаю тестирование значимым.

Тестирование значимо, так как:

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