| Квадрант тест-автоматизации: новый взгляд на ваши тесты |
| 16.12.2025 00:00 |
|
Как и многие работающие в области тестирования программного обеспечения, а именно в автоматизации, я рано познакомился с концепцией пирамиды автоматизации тестирования. Хотя тест-сообщество много лет критикует эту модель, я все же время от времени ей пользуюсь. Я считаю, что эта модель всё ещё в определённой степени полезна: тем, кто в тестировании относительно недавно, можно не только пояснить понятия охвата и уровней тестирования, но и, что еще важнее, побудить их к размышлениям и обсуждениям правильного баланса между различными типами тестов. В конце концов, в какой-то момент они неизбежно столкнутся с этой моделью, и я предпочёл бы, чтобы они узнали о ней в правильном контексте. Однако недавно я начал иначе думать и говорить о классификации автоматизированных тестов,- теперь у меня другая ментальная модель, и я решил, что может быть полезно поделиться этой моделью с вами. Обратите внимание, что всякий раз, когда я использую слово «тест» в оставшейся части этой статьи, я имею в виду автоматизированный тест / проверку, которая подтверждает или опровергает ожидания относительно поведения нашего продукта. Не думаю, что эта модель так же хорошо применима к исследовательскому тестированию (но буду рад, если меня опровергнут). Зачем нужна другая модель? Несмотря на то, что пирамида автоматизации тестирования всё ещё полезна в определённых контекстах, в ней, на мой взгляд, отсутствует несколько важных моментов:
Итак, что же взамен? Моя нынешняя ментальная модель (классификации) тестовСначала сделаем небольшой шаг назад: зачем мы используем автоматизацию? Зачем мы используем инструменты, помогающие в тестировании? Мой ответ таков: потому что мы хотим получать и передавать ценную информацию о состоянии нашего продукта и потенциальных рисках наиболее эффективным способом. Исходя из этого, в автоматизации тестирования ключевую роль играют два фактора: информация, а именно ценная информация, и эффективность, то есть количество ресурсов, которые нам нужно затратить, чтобы эту информацию получить. С учётом этих двух вещей сейчас моя ментальная модель для бесед об автоматизированных тестах выглядит так:
Эту модель можно назвать квадрантом автоматизации тестирования. По своей сути она очень проста, и да, в ней отсутствует множество нюансов. Именно поэтому это и называется моделью. Теперь позвольте пояснить, почему она выглядит именно так и какой ход мыслей за ней стоит. На горизонтальной оси находится ценность информации. Как тестировщики, мы занимаемся тем, что выявляем и предоставляем информацию – а именно информацию о состоянии нашего продукта. Однако не вся информация одинаково значима: одни её части важнее других. Тесты, которые выявляют и предоставляют ценную информацию, по своей сути более ценны, чем тесты, которые выявляют и предоставляют менее значимую информацию. Кроме того, ценность информации неразрывно связана с риском. Информация, относящаяся к проблемам с высоким уровнем риска, более ценна, чем информация, относящаяся к проблемам с низким уровнем риска. Под информацией подразумевается подтверждение или опровержение предположений, убеждений или ожиданий относительно состояния или поведения продукта, который мы создаём. Поскольку мы говорим об автоматизации, основное внимание будет сосредоточено на подтверждении заранее сформулированных, закодированных ожиданий через проверки, но автоматизация не ограничивается выполнением проверок и демонстрацией того, что нечто способно работать. Ах да, и ценность информации не ограничивается самой информацией и тем, что она говорит вам о состоянии продукта, — она также включает надёжность этой информации. Нет смысла в тестах, которые говорят, что что-то сломано, если этому тесту нельзя доверять. На вертикальной оси у нас эффективность. При прочих равных более эффективные тесты обычно предпочтительнее менее эффективных. Так как время обычно равно деньгам, эффективность включает время на чтение, написание, выполнение и сопровождение теста, а также время, необходимое для анализа первопричины в случае сбоя. Помимо времени, мы также можем учитывать стоимость аппаратного и программного обеспечения, необходимого для написания и выполнения теста, а также другие факторы, связанные с эффективностью. Обратите внимание, что в отличие от пирамиды автоматизации тестирования я исключаю из уравнения охват или размер теста как таковой. E2E-тесты могут быть более эффективными или менее эффективными, и информация, которую они дают, может быть более или менее ценной. То же самое относится к модульным и интеграционным тестам. И да, и эта модель также применима к автоматизированному нагрузочному тестированию, тестированию безопасности и другим видам автоматизации тестирования. Все они могут производить более или менее ценную информацию и выполняться более или менее эффективно. Итак, теперь, когда вы понимаете логику этой модели и аспекты тестов, которые в ней учитываются, давайте посмотрим, как можно использовать этот квадрант автоматизации тестирования себе во благо. Используйте квадрант автоматизации тестирования для оценки вашей текущей ситуацииЕсли вы решите воспользоваться этой моделью, сперва я рекомендую разместить ваши тесты где-то в одном из квадрантов. Конечно, точное место будет различаться для разных типов тестов и даже для отдельных тестов. В этом, если спросите меня, и есть преимущество модели: её можно применять как ко всему набору тестов, так и к отдельным видам тестов и даже к отдельным тест-кейсам. В идеале большинство ваших тестов должно находиться где-то в правом верхнем квадранте, то есть это эффективные тесты, которые дают ценную информацию. Все ли ваши тесты будут справа сверху? Скорее всего, нет, но это не обязательно плохо. Помните, что сейчас мы просто оцениваем нашу текущую ситуацию. Тесты в правом нижнем квадранте, например, всё ещё дают ценную информацию, просто не очень эффективно. Возможно, написание или выполнение тестов занимает много времени. Возможно, требуется значительная подготовка зависимых систем. Возможно, есть и другие причины, почему ваш тест не так эффективен, как хотелось бы. Тем не менее, они дают ценную информацию, поэтому, вероятно, будет в ваших интересах сохранить их. Когда мы переходим к двум левым квадрантам, ситуация становится немного сложнее. Тесты в левом верхнем квадранте можно писать и выполнять эффективно, но информация, которую они дают, не очень ценна. Я не хочу сказать, что такие тесты не стоит писать, но рекомендую отдать им гораздо более низкий приоритет по сравнению с тестами на правой стороне квадранта и работать над ними только тогда, когда у вас есть время и ресурсы. Или, если вы хотите быть строже, вообще не тратить на них время. Что касается тестов в левом нижнем углу квадранта: я настоятельно рекомендую полностью прекратить тратить на них время. Совсем. Не пишите новые тесты, попадающие в эту часть квадранта, и серьёзно задумайтесь об удалении существующих тестов здесь. Они, скорее всего, стоят вам больших временных и ресурсных затрат на написание и выполнение, при этом не приносят значимой отдачи. Проиллюстрируем вышесказанное картинкой: Используйте квадрант автоматизации тестирования, чтобы улучшить свою автоматизациюПосле того как вы оценили свою текущую ситуацию — для отдельного теста, группы связанных тестов или даже для всего набора тестов, — вторым шагом будет определить, что надо сделать, чтобы приблизить некоторые или все ваши тесты к правому верхнему углу квадранта, перемещая их вверх, вправо или и туда, и туда одновременно. Перемещение тестов вверх означает повышение эффективности существующих тестов таким образом, чтобы это не повлияло на ценность информации, которую они предоставляют, негативно. Как именно это сделать, выходит за рамки этой статьи, а конкретные шаги сильно зависят от контекста, но вот несколько предложений:
Перемещение тестов вправо означает улучшение тестов, которые дают малоценную или ненадёжную информацию. Вот несколько примеров того, что вы можете для этого предпринять:
Опять же, это очень общий и далеко не полный список предложений. В следующей статье я разберу разные реалистичные примеры и покажу, как применять эти техники на реальных тестах, чтобы перемещать их выше и / или вправо в квадранте автоматизации тестирования. Эта статья — лишь первое знакомство с моделью квадранта автоматизации тестирования, и здесь ещё есть много такого, что предстоит разобрать. Тем не менее, я с большим нетерпением жду вашей обратной связи и комментариев. Тем временем я работаю не только над статьей с реальными примерами, но и над совершенно новым докладом об этой модели, который планирую представить на мероприятиях, митапах и конференциях в 2025 году. Возможно, и на вашей конференции тоже? |