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

В этой статье я вам расскажу важные аспекты, о которых стоит помнить постоянно.
Первостепенным аспектом, о котором я хочу говорить, является то, что тестирование — это не абстрактный процесс, оторванный от реального мира.

В первую очередь тестировщик должен четко понимать для чего мы вообще создаем приложение. Какую задачу пользователя приложение будет решать? Этот момент кажется очевидным. Но на деле все не так просто.
В какой-то момент времени у тестировщика появляется много тестов. В одном нужно граничные значения проверить, в другом - как приложение отображается в разных браузерах. А в третьем, специальные символы, вроде %^&(<>!!.

И в итоге, за всеми этими тестами и проверками “замыливается глаз”. И работа превращается в рутинное выполнение задач. Тестировщики начинают потихоньку проводить тестирование в отрыве от реальности. О чем я сейчас говорю? Я говорю о том, что в первую очередь мы всегда должны помнить про ЦЕЛЬ, ради которой приложение создавалось. И все проверки строить вокруг этой цели, придавая процессу тестирования осознанность.
Пожалуйста, запомните это слово. Осознанность. Наша работа не должна быть механической, она должна быть творческой и осознанной.

Позвольте привести пример из моего опыта.

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

В какой-то момент времени я стала замечать, что часть людей из нашей команды не особо понимает, а что вообще будет делать тот или иной компонент системы в разрезе действий конечного пользователя. Что вообще конечный пользователь может сделать в нашей системе? Как потенциально может ее использовать? Какие особенности могут быть? На что обратить внимание? Ведь для того, чтобы качественно проверить систему, нужно максимально хорошо понимать ее сущность и варианты использования НАСТОЯЩИМ пользователем. Ни тестировщиком, ни разработчиком, и даже ни менеджером. А именно тем человеком, который этот продукт будет покупать и использовать.

Здесь сразу вспоминается фраза: чтобы найти преступника, нужно мыслить как преступник.
Так вот, в тестировании очень похоже: чтобы понять, ЧТО конечный пользователь будет делать в приложении, надо мыслить как конечный пользователь.

Понимание этого аспекта - фундаментальная основа тестирования. В примере своей команды я решила помочь коллегам и стала организовывать воркшопы, на которых другие команды рассказывали как именно настоящие пользователи используют нашу систему. И это сработало!

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

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

Не тестируйте ради тестирования. Тестируйте ради проверки того, что приложение действительно решает задачу пользователя.

И старайтесь мыслить как настоящий пользователь. Если такого понимания нет - обратитесь к руководству, бизнес аналитику, менеджеру. И помните, что пока вы на 100% не понимаете для чего нужно приложение, качественно его проверить не получится. Наша цель не просто тестировать, а делать это с пониманием и страстью, чтобы создавать действительно качественные продукты.