Перед каждым разработчиком ПО рано или поздно встает задача оценки качества выпускаемого продукта. Зачастую руководители небольших проектов считают непозволительной роскошью прибегать к услугам профессиональных тестировщиков. Ведь, на первый взгляд, кто, если не сам разработчик или пользователь может наилучшим образом найти недостатки в программе? По сути, в этом случае все исследование сводится к бета-тестированию («Бе́та-тести́рование (англ. betatesting) – интенсивное использование почти готовой версии продукта (как правило, программного или аппаратного обеспечения) с целью выявления максимального числа ошибок в его работе для их последующего устранения перед окончательным выходом (релизом) продукта на рынок, к массовому потребителю»).
Практика использования клиентов – потребителей продукта в качестве тестировщиков в последнее время стала достаточно популярной. Мы постараемся оценить очевидные на первый взгляд плюсы и минусы бета-тестирования и тестирования специалистами. Все ли из них оказываются «плюсами» или «минусами» при ближайшем рассмотрении?
Плюсы и минусы бета-тестирования
Плюсы:
1. Обратная связь.
Неоспоримым достоинством бета-тестирования является получение реальной обратной связи с пользователями продукта. Для этого применяются различные инструменты: сбор отзывов, анкетирование, периодическое вовлечение реальных бизнес-пользователей в процесс тестирования.
Действительно, в ряде случаев только пользователи могут провести проверку ПО на выявление наиболее удобных, наиболее интересных или, наоборот, наиболее неприемлемых модулей и функций. Получив такие отзывы, разработчики могут оперативно доработать продукт с учетом высказанных пожеланий: поменять логику системы, отредактировать тестовые сценарии.
Дефекты ПО также выявляются при использовании редко встречающихся окружений. Таким образом, при выборе стратегии бета-тестирования следует учитывать, что наилучший результат будет достигнут при условии привлечения большого количества пользователей с разным окружением. Прекрасным примером такой работы является стратегия известной компании Google. Используя мощное оборудование, компания систематизирует и классифицирует отзывы десятков тысяч пользователей, доводя свои программные продукты до совершенства.
2. Экономия средств.
Плюсом бета-тестирования, на первый взгляд, является его невысокая стоимость. Действительно, в идеале мы получаем тестовое покрытие без дополнительных вложений. Чаще всего метод бета-тестирования используется в области игровой индустрии. Опыт многих фирм-разработчиков подтверждает экономическую целесообразность этого метода. Снижение общих затрат компании может быть достигнуто и при использовании бета-тестов в качестве инструмента продвижения системы. Бесплатное тиражирование бета-версий обеспечивает повышенный интерес конечных пользователей к итоговой версии продукта.
Но всегда ли всё складывается так удачно? Как показывает практика, отсутствие грамотной стратегии бета-тестирования может привести к печальным результатам. Рассмотрим это на реальных примерах.
Не так давно некая компания, выпускающая компьютерные игры, разместила бета-версию в свободном доступе. Целью акции было получение баг-репортов от пользователей. Дело сразу не заладилось: отзывов поступало очень мало. Разработчикам пришлось предложить бонусы в виде необходимых внутриигровых артефактов за каждый оставленный баг-репорт. Только после этого шага была, наконец, получена необходимая информация. В результате такой «беспроигрышной» стратегии компания потратила гораздо больше времени, чем планировала. Более того, она понесла дополнительные расходы на «содержание» всей команды разработки во время ожидания результатов.
Другой свежий пример: один японский разработчик выдал в бета-тестирование широко известную игру для мобильных устройств. Каково же было удивление пользователей, когда оказалось, что у них не всегда получалось даже просто запустить игру на своих устройствах. Мало того: участники бета-тестирования преждевременно распространили в сети информацию об игре, что нарушило планы кампании. Фактически, «экономия» привела к коммерческому провалу запуска игры. При этом компания, как и в предыдущем случае, потратила сверхплановые время и средства.
Описанные ситуации показывают, что бета-тестирование, спланированное без привлечения опытных специалистов, далеко не всегда приводит к экономии средств.
Минусы:
1. Низкая квалификация тестировщиков.
Важно помнить, что основные участники бета-тестирования – это добровольцы из числа обычных пользователей будущего продукта. Эти люди не всегда обладают даже минимальными техническими навыками, позволяющими дать качественную оценку ПО. Конечно, о чёткой локализации и понятном описании бага при бета-тестировании можно даже не вспоминать – этим всё равно понадобится заниматься штатным тестировщикам.
2. Неполное тестовое покрытие.
Некую аналогию бета-тестирования можно увидеть в легендарном фильме «Операция «Ы»…». По сюжету перед «бандой» стоит задача – инсценировать ограбление склада, на котором «все уже украдено до вас». В качестве «тестового стенда» используется гараж, переоборудованный так, чтобы получить характеристики реального склада («Продуктив»).Банда подбирает отмычки и проводит «тестовые сценарии» по проникновению и имитации ограбления. В целом, операция должна пройти успешно, НО… «Трус», натренированный «на кошках», в ответственный момент натыкается на альтернативный сценарий: «А где бабуля?» – «Я за нее». В итоге операция «Ы» оказывается проваленной. Практика показывает, при тестировании непрофессионалами часть функционала всегда остается не охваченной.
Плюсы и минусы тестирования специалистами
Теперь постараемся сформулировать основные плюсы и минусы работы с профессиональными тестировщиками.
Плюсы:
Плюсов работы с опытной командой – великое множество, мы остановимся лишь на некоторых из них.
1. Комплексный подход к тестированию.
Очевидно, главный плюс, интересующий всех, – это высокое качество тестирования, достигаемое с помощью максимального охвата всех стадий работы. Дефекты, пропущенные в таких приложениях, как, к примеру, десктопное или мобильное ПО, приводят к огромным финансовым потерям как самого разработчика, так и его клиентов. Возможность составления планов и согласования тестового покрытия с бизнес-аналитиками дает уверенность в минимизации материальных рисков. Тестировщики участвуют в процессе определения состава релиза, проверяют надежность процедуры как полного отката версии, так и частичных изменений и преобразования данных.
2. Отчётность о результатах тестирования.
По результатам работы специалистов заказчик получает не только список пройденных сценариев, но и набор отчетов, в которых содержатся заключения о качестве выпущенного продукта и узких местах ПО, а также предложения по доработкам. На основании таких отчетов производитель имеет возможность оперативно принимать дальнейшее решение по продукту. Все необходимые исправления и изменения излагаются так, что разработчики могут сразу приступать к их реализации.
3. Высокое качество тестирования, основанное на опыте специалистов.
Возвратимся к примеру «Операции «Ы». Квалифицированные специалисты никогда бы не упустили альтернативные сценарии, и исход мероприятия мог быть совсем другим. Опыт – великая вещь! При этом команда тестировщиков несет полную ответственность за свою работу, чего никак нельзя сказать об участниках бета-тестирований.
Минусы:
К минусам привлечения специалистов чаще всего относят «понятие двух «Д»: «дорого и долго». Далеко не каждая компания может себе позволить расширять штат и нанимать сотрудников-тестировщиков на постоянную основу, особенно если речь идет о стартапах. Поэтому в настоящее время большой популярностью пользуется аутсорсинг. Он дает возможность привлечь команду специалистов на конкретный проект.
Другая тенденция – переход от традиционных методов разработки и тестирования (Waterfall) к гибким (Agile). Джанет Грегори и Лиза Криспин опубликовали прекрасную работу, детально описывающую место разработчиков и тестировщиков в Agile-проектах. Однако, не следует забывать, что любой тестировщик должен обладать минимальными техническими навыками и уметь хорошо ориентироваться в предметной области.
С другой стороны, приведенные в этой статье примеры показывают, что надежды на экономию времени и средств от использования «усеченного» бета-тестирования зачастую оказываются несбыточными. А значит, «долго и дорого» – это всего лишь расхожий штамп, далеко не всегда подтверждаемый на практике.
Заключение
Итак, без качественного тестирования вы однозначно рискуете выдать клиенту продукт с багами. Но качественное тестирование также подразумевает получение информации о соответствии выпускаемого продукта ожиданиям конечных пользователей. Вам нужно самостоятельно принять решение о том, какой способ тестирования необходимо использовать на вашем проекте, либо применить стратегию, сочетающую оба подхода. Мы же надеемся, что эта статья поможет вам сделать грамотный выбор.