- Что такое Правило Парето
- 80% пользователей используют лишь 20% функций
- 80% прибыли компании обеспечивают лишь 20% клиентов
- 80% багов находятся в 20% модулей
- Правило Парето применимо во многих сферах тестирования
“Все любят работать с малыми усилиями и заниматься лишь любимыми делами, но не у всех получается. Люди тратят время на все подряд, и мало внимания обращают на вещи, приносящие реальный результат.
Сосредоточиться на важном — ключ к успеху в любой профессии вообще, а не только в тестировании.
Правило Парето 80/20 — компактный и важный принцип, улучшающий продуктивность тестировщика, упрощающий его рабочие процессы. Здесь обсудим этот чудесный принцип, и его применение в тестировании софта.
Ведь можно тратить очень мало усилий, и при этом получать очень приличные результаты.
Что такое Правило Парето
Принцип Парето, также известный как “Правило 80/20”, (цитируя близко к оригиналу в его “энциклопедической» формулировке) гласит, что «примерно 80% результатов происходят из 20% случаев» (так называемые “жизненно важные малые”).
Итальянский экономист Вильфредо Парето в конце XIX века заметил, что в его саду 20% самых крепких растений дают около 80% всего урожая. Позже он сформулировал ту же закономерность применительно к экономике: в то время в небогатой Италии 80% дохода всех итальянцев приходилось лишь на 20% итальянских семей. Позже он распространил этот принцип еще шире, как оказалось принцип отлично применим во многих областях человеческой деятельности, а в первую очередь в экономике и в общественно-политической жизни.
Не всегда эта пропорция соблюдается с точностью: иногда 90/10, 70/30, или 60/40. Это скорее “общее” правило, а не “жесткое”. Главное в нем то, что “многие вещи в нашей жизни распределены не равномерно, а сосредотачиваются” в неких более-менее узких “кластерах”, на которые стоит обращать внимание в первую очередь. Знание этой закономерности помогает экономистам, социологам, а среди ИТ-специалистов QA-инженерам, проще говоря тестировщикам.
80% пользователей используют лишь 20% функций
Не все функции имеют одинаковую важность для клиентов. Они ценят некоторые функции в программе гораздо больше чем другие.
“Лишь 20% функций приносят клиентам 80% ценности в продукте, с их точки зрения.“
Нужно определить “топовые” 20% функций на сайте (или в приложении), которые использует 80% пользователей.
- Для этого нужно вглядываться в Google-аналитику, возможно строить хит-мапы, анализировать сессии, чтобы понять что реально нравится пользователям на сайте или в приложении.
- Применяй эти данные для создания некой “смарт-стратегии автоматизации”. Сосредоточение на отдельных функциях обеспечит ~80% прибыли от автоматизации тестов, по правилу Парето.
- Анализ поведения пользователей даст понимание, чем интересуется “усредненный пользователь”, и позволит определить проблемы, мешающие пользователям пользоваться приложением “на всю мощь”. Сосредоточение на 20% функций — действительно важных — сильно уменьшит количество “траблов” с пользователями, а значит нагрузку на службу поддержки.
80% прибыли компании обычно приносят лишь 20% клиентов
Во всяком бизнесе есть клиенты более ценные. Они приносят большую часть прибыли, (или просто лучше относятся к компании, очень лояльны ей, тем и ценны). Тестировщик должен примерно “прикидывать” поведение самых ценных и лояльных клиентов, и стараться удовлетворить их в первую очередь.
- Знай потребности своих пользователей и какие проблемы они хотят решить.
- Знай типичные use-cases этих ценных и лояльных пользователей и подражай их поведению в своих тест-кейсах и наборах автотестов, чтобы стать хорошим тестировщиком.
- Пытайся получить подробный фидбек от самых ценных пользователей по продуктам и сервисам. Понимай, что они любят и не любят, что их восхищает и злит.
- У некоторых “невезучих” пользователей проблем возникает больше чем у других. Анализируй тикеты из поддержки, это поможет понять причины самых частых проблем, и найти какие-то паттерны улучшения тест-кейсов и автоматических наборов.
80% багов находятся в 20% модулей
Небольшое количество модулей производит больше всего багов; и ты скорее всего уже это знаешь по своей работе. Баги, по некоторым причинам, имеют тенденцию “кучковаться” в небольшом количестве модулей. Обычно это сложные комплексные модули или необкатанные, “с сюрпризами”. Это явление известно как кластеринг дефектов, и это один из Семи Главнейших Принципов Тестирования (здесь подробнее).
- Тестерам в своей работе желательно основываться на данных (так называемая data-driven-концепция тестирования), получаемых от пользователей, и создавать метрики для поиска таких дефектных кластеров.
- Далее применять эти данные для оценки рисков при планировании будущих тестов и в будущих продуктах
- Концентрируй свое время и усилия на этих сферах в первую очередь, и это поможет найти максимум багов, уменьшить время и стоимость поиска.
- Автоматизируй тестирование, чтобы оценить устойчивость таких кишащих багами модулей.
Пример
Например, на этом чарте ясно видно, что дефекты сгруппировались лишь в модулях. В данном случае надо начать тестирование модулей Library, Stats, и Search, и продукт будет избавлен от ¾ дефектов.
Когда началась планомерная “очистка” дефектных кластеров, количество багов будет падать, и модуль перестанет быть опасным. Появится время перейти к другим кластерам, “тихим”, где ошибок может и мало, однако могут быть критическими.
Правило 80/20 применимо во многих сферах тестирования
- 80% багов находят с помощью лишь 20% тест-кейсов — это правило поможет при присвоении приоритетов кейсам и в автоматизации.
- 80% продуктивности обеспечивается работой лишь 20% тестировщиков — это для оценки продуктивности в команде.
- 80% времени QA-команды тратится на устранение багов в 20% кода — для концентрации усилий команды на правильных вещах.
- 80% тестовых задач требуют применения лишь 20% твоих скиллов — применяй это правило для “шлифовки” правильных скиллов и продвижения в карьере.
Правило Парето диктует тратить больше времени на вещи, приносящие больше всего эффективности. Можно и нужно избавиться от многих вещей, не дающих должного результата. Человеку свойственно “залипать” на вещах не дающих результата, однако субъективно приятных. Перед тем как начать работу, спроси себя — вот эта задача, она в тех самых 20% результативных, или в тех 80%? ”