При любом удобном случае я люблю подчеркивать, что исчерпывающее тестирование невозможно.
Этот принцип тестирования позволил мне сэкономить много времени и нервных клеток. А также помогал работать меньше, но эффективнее. В принципе, именно этого от вас и потребует большинство заказчиков и работодателей — просто быть эффективнее. Если когда-нибудь вы услышите требование «протестировать все» — вас это должно смутить, это нереально. Более того, в этом нет никакой нужды!
Умная приоритизация — это черта, отличающая новичка от профессионала. Молодое поколение тестировщиков очень часто гонится за количеством пройденных тест-кейсов, несмотря на их приоритетность. Однако зарплату вам платят не по доллару за единицу пройденных тестов. Главная ваша задача — убедиться, что продукт отвечает требованиям и выполняет свои функции, что он является оптимальной доступной версией самого себя в конкретный момент времени.
Этот принцип я продвигаю на курсах тестирования, которые я веду.
Понимание этого баланса приходит с опытом, однако некоторые общие принципы все же можно выделить:
Приоритизация должна происходить согласно запросу и потребностям заказчика
Процесс разработки — создание инструмента, который должен выполнять определенные функции.
Сам по себе он не имеет никакой ценности, разве что научно-экспериментальной. Поэтому вы всегда должны ориентироваться на потребности бизнеса и синхронизировать свою работу с коллегами из других команд, заказчиком и т.д. Если вы не понимаете, какой приоритет в задаче, начните с анализа зоны ее воздействия.
Например, при тестировании интернет-магазина, сначала проверьте, можно ли сделать главное — совершить покупку. Ведь если это невозможно, продукт не выполняет своего прямого назначения, что гораздо критичнее для владельцев бизнеса, чем неправильная сортировка отзывов.
Сначала проверяйте положительные сценарии
Поломать что угодно — не такая уж сложная задача. Однако прежде чем искать в продукте недостатки и придумывать нестандартные подходы к тестированию, попробуйте проверить, сработает ли он, если вы все сделаете правильно.
Пользователи все же используют ваш продукт для чего-то, а значит мотивированы делать все правильно, чтобы получить какой-то результат. Они постараются делать все правильно. Наша цель — удовлетворить потребности той преобладающей части пользователей, которые преследуют цель, чем помешать тем единицам, которые почему-то решат попробовать что-то нестандартное. Поэтому отдавайте предпочтение тестированию реального сценария работы с продуктом.
Сохраняйте гибкость
Приоритизация задач должна помогать вам, а не загонять в тупик.
Процесс разработки — динамическая вещь, поэтому вполне адекватно пересматривать актуальность своих тест-кейсов. Более того, на каждом проекте случаются непредсказуемые вещи, требующие немедленного внимания команды, в том числе тестировщиков. Советуйтесь с коллегами, старайтесь не изолировать себя в области тестирования и всегда держать руку на пульсе жизненного цикла вашего продукта.
Работайте с рисками
Просто задавайте себе простой вопрос — «А на что это вообще влияет?».
Сначала проверяйте самые критические точки — вещи, которые могут блокировать работу вашего продукта. К мелким правкам, типа изменения оттенка кнопки, переходите в последнюю очередь. Сначала проверьте, работает ли она вообще. Также полезно знать стоимость каждой ошибки, это напрямую определяет ее критичность.
Вывод
Главная цель любой приоритизации — уменьшить затраты, время и усилия.
В общем, каждый проект очень уникален, и система приоритизации в тестировании почти всегда будет похожа на ту, которую используют для оценки важности задач в целом.
Важнейший месседж этой статьи состоит в том, что вы всегда должны согласовывать свою работу с теми ценностями и потребностями, которые транслирует ваш заказчик. Тестируйте то, что важно для него, а не для вас. Старайтесь представить себя конечным пользователем и оценить, что именно имело бы для вас высокую приоритетность, а на что вы бы и не обратили внимание.