Упорядочиваем виды тестирования – Agile Testing Quadrants
January 26, 2012 | Posted by Andrey Rebrov under Статьи |
Пока готовлю следующий пост из серии про автоматизацию, захотелось поделиться интересным, на мой взгляд, материалом из книги Agile Testing: A Practical Guide for Testers and Agile Teams.
Так вот, видов тестирования очень и очень многое: нагрузочное, ad hoc, sanity, black box, white box и так далее. И долгое время я не встречал хорошей и понятной, по моему мнению, системы, которая бы содержала нормальную группировку всех этих видов, а так же давала объяснение, когда и зачем какие нужно их использовать. И буквально на днях прочитал про Agile Testing Quadrants (ATQ), про которые и хочу рассказать.
Идея данной систематизации изначально принадлежит Brian Marick, а затем была доработана Lisa Crispin, которая является одним из авторов упомянутой книги. По ссылкам можно найти их записи про ATQ.
Собственно сама система выглядит вот так:
Как видно, классическая диаграмма 2*2. Итак, по одной из осей тесты делятся на бизнес-ориентированные и технологически-ориентированные, по другой оси – на тесты для поддержки команды и для “критики продукта”. Сразу хочу отметить, что нумерация ничего не говорит о том, когда нужно проводить эти тесты.
Пройдем по каждому из секторов.
Сектор Q1 представляет собой такую известную практику, как TDD. Все просто: сначала тесты, потом код. И эти тесты в первую очередь ответственность команды разработки. Все эти тесты обязательно должны запускаться через CI, для постоянной проверки качества кода. Все это расписано во многих источниках, для тех, кто еще не практиковал TDD, хочу посоветовать вот эту ссылку.
Сектор Q2 содержит в себе более высокоуровневые тесты, которые уже имеют отношение к бизнесу. Успешное прохождение этих тестов является обязательным, чтобы говорить о завершенности какого-либо функционала. Потому что мы можем говорить, что тот или иной функционал сделан, когда он решает одну из поставленных бизнес-пользователями задач. На этом уровне в основном тестируется внешняя оболочка приложения: интерфейс, API, веб-сервисы и так далее. С другой стороны, этот сектор включает в себя тестирование прототипов, мокапов, дизайна и так далее. Часто для обозначения тестов, входящих используют термин приемочное тестирование, хотя это не совсем верно, так как тесты из секторов Q3 и Q4 так же стоит отнести к приемочному тестированию.
Тесты из сектора Q3 подразумевают обязательное участие экспертов в доменной области, экспертов по usability, пользователей и так далее. Так уж часто бывает, что реализованный функционал на самом деле не решает проблемы заказчика, или же что-то было понято неправильно командой разработкой. Опять же, могли возникнуть новые аспекты работы с доменными объектами или выяснилось, что спроектированный интерфейс не удобен пользователям. Как раз тут и вступают в дело тесты, предназначенные для “критики” продукта. Сразу оговорюсь, что слово “критика” здесь имеет положительный оттенок. Само собой, что данное тестирование может быть только ручным, потому что ни один скрипт не может выявить обозначенных проблем, хотя мы, конечно, можем использовать вспомогательные средства, например, для загрузки данных.
И, наконец, последний сектор Q4, который говорит о тех тестах, которые не проверяют решение задач бизнеса, а говорят о том, насколько же хорошо написано наше приложение, используя такие термины как безопасность, производительность, устойчивость, масштабируемость и так далее. Данные тесты помогут, как проверить соблюдение нефункциональных требований, если они есть, так и понять, насколько успешно спроектировано приложение уже на ранних этапах. Эти тесты сильно помогают избежать проблем в будущем. Понятно, что для проведения подобных проверок, нужно использовать специальные инструменты, которых представлено на данный момент очень много.
Таким образом, Agile Testing Quadrants являются неким чек-листом, показывающим, что мы идем в верном направлении, что наши процессы в достаточной степени автоматизированы и можем заниматься ручными исследовательскими тестами. И самое главное, Agile Testing Quadrants покажут, насколько успешен наш продукт, с точки зрения бизнеса.