- Описание
- Кому поручают
- Стадии альфы
- Лучшие практики
- В крупной компании
- Схема
- Выгоды
- Альфа, бета, гамма, дельта
Коротко
Альфа-тестирование — начальное сквозное приемочное тестирование продукта (приложения), которое подтверждает, что базовые требования выполнены и приложение работает корректно в целом, и можно переходить на следующий этап (бета-тестирование).
Обычно такое тестирование выполняется персоналом ИТ-компании, по возможности — в неких специальных, «лабораторных» условиях. Альфа-тест подтверждает, что продукт уже рабочий (примерно на 70-80-90%).
До альфа-тестирования в цикле разработки проводят юнит-тесты отдельных функций и модулей и smoke-тесты всей системы; далее альфа-тестирование продукта дает возможность оценить его эффективность и пригодность с более высокой позиции.
Главная разница между альфа- и бета-тестированием: исполнители. Альфа-тесты проводят сотрудники компании, она предоставляет для этого тестовое окружение; бета-тесты проводят реальные пользователи в реальном окружении, чаще всего собственном (на своем компьютере/смартфоне).
Главная цель альфа-тестов: найти как можно больше явных/грубых/критических багов до того как продукт поступит на рынок, всем пользователям.
Альфа-тестирование может выполняться по принципу и черного ящика, и белого; «тестирование по белому ящику» позволяет «заглянуть вовнутрь» продукта, тщательно изучая происходящее в нем в процессе тестирования. Альфа-тестирование «черного ящика» оценивает приложение без знания его кода.
Поскольку альфа-тестирование проводится до запуска продукта на рынок, когда еще остается время, методика белого ящика является предпочтительной, так как дает намного больше информации по внутренним проблемам; это позволяет вовремя устранить их. Разработчики могут решить эти проблемы раньше, и обновить сам продукт и тестовое окружение; подготавливая к более тщательному тестированию на последующих стадиях.
На следующей после «альфы» стадии (бета-тестирование) часто проводится тестирование безопасности, совместимости и взаимосвязей приложения (dependability) — весьма важные и сложные этапы; приложение уже должно быть готово к ним на 99%. На «альфе» часто ставится задача найти самые большие «подводные камни», самые серьезные функциональные баги, а также проблемы юзабилити.
Кому поручают альфа-тесты
Стандартные этапы в небольшом проекте:
- Начальный этап выполняется сотрудниками компании (разработчиками и/или тестировщиками) с применением программных дебаггеров (отладчиков). Цель на этом этапе: найти дефекты как можно раньше и самые критические. На этой стадии обычно находят множество ошибок и дефектов, узкие места в функциональности, неполную документацию, и прочие мелкие и крупные проблемы
- Следующий этап выполняет выделенная команда тестировщиков (и разработчиков), по методике как черного, так и белого ящика.
Итак, альфа-тестирование организовывается QA-отделом, и к процессу могут подключать сотрудников других отделов в качестве тестировщиков, чтобы собрать больше фидбэка; они сосредотачиваются на разных аспектах приложения и требованиях. Задачи распределяют QA-менеджеры, пытаясь добиться полного покрытия use-кейсов и ускорить процессы.
Участники альфа-тестирования регистрируют найденные дефекты в баг-трекинговой системе и обсуждают прогресс с менеджерами. Продукт не допустят к релизу, пока альфа-тестирование не проявило самые явные, критические баги.
Стадии альфа-тестирования
Как мы уже знаем, альфа-тесты выполняются перед бета-тестами, ближе к концу цикла разработки.
Альфа-тестирование сложных продуктов выполняется в три этапа:
- Пре-альфа, предварительная/подготовительная стадия. Краткая обзорная сессия тестирования для проверки, готова ли система «в общем» к основному этапу альфы.
- Собственно альфа-тестирование. Этот этап может быть достаточно долгим и затратным, ведь это по сути сквозной приемочный стресс-тест всех функций продукта.
- Пост-альфа, завершающий этап. Выделенная группа разработчиков устраняет найденные проблемы, а тестировщики продолжают искать их.
Итак, альфа-тестирование анализирует поведение системы и пользовательские ощущения от продукта (customer experience), не допуская появления на рынке продукта с грубыми дефектами.
Лучшие практики
- Фиксировать каждую проблему в письменной форме; даже если не хватает времени и решено отложить проблему (например оставить небольшой дефект в юзабилити «как есть»), нужно регистрировать все замеченные проблемы. Команда вернется к ним, когда будет время, или уже после релиза.
- Не полагаться на бета-тестирование. Хотя бета-тестеры способны найти ошибки, пропущенные на альфа-этапе, и таки находят, в этом никогда нельзя быть уверенным. Чем больше модулей/юз-кейсов проверено на альфе, тем в лучшем состоянии продукт будет передан бета-тестерам, и они не будут «завалены» дефектами.
- Хорошо изучить требования и спецификации до начала процесса. Сотрудник, которого определили в «альфа-команду», обязательно должен ознакомиться как минимум с функциональными требованиями до начала тестирования.
- Сотрудник, сообщивший о баге, может проконтролировать процесс — валидировать устранение бага. Нельзя 100% полагаться на разработчиков.
- Установить и поддерживать взаимопонимание в команде. Все участники альфа-тестирования должны убедиться, что продукт готов к «бете», и менеджеры должны убедить команду, что те кто нашел много дефектов — будут вознаграждены.
- Неайтишные сотрудники компании. Из-за того что люди с айтишным бэкграундом могут быть (и обычно бывают) более толерантны к чужим ошибкам (особенно к проблемам в юзабилити) чем обычные юзеры, полезной практикой является включение в команду какого-то минимального количества сотрудников других отделов, выступающих в качестве «продвинутых пользователей»; у них как правило непредвзятый взгляд на ИТ-продукты.
- Мониторить customer experience. Команде может казаться что «все отлично работает», а на самом деле продукт неюзабельный с точки зрения пользователей; поэтому тест-кейсы на альфе должны покрывать всю функциональность, end-to-end.
- Специальные встречи (буткемпы) с командами маркетинга и продаж. Альфа-тестирование это хороший повод ввести маркетологов в курс дела, ознакомить с последней версией продукта, который маркетологи будут продвигать клиентам. У маркетологов и сейлсов будет полное видение, они смогут эффективнее работать с продвижением продукта, если сами как-то поучаствовали в его создании.
- Это же относится к «сапортам» (службе customer support) — отличная возможность для них поучаствовать в улучшении продукта. Сотрудников поддержки полезно ознакомить с «внутренностями» продукта, который они обслуживают. Это повысит их квалификацию.
В крупной компании
Как уже сказано, альфа-тесты лучше всего выполнять в тестовой лаборатории, если компания достаточно большая. Проджект-менеджер работает с командами разработки и QA, прописывает задачи и ожидаемые результаты. В таком процессе могут быть опущены/отложены такие не всегда обязательные этапы как тестирование надежности/инсталляции/документации и пр.
Для больших тестовых сценариев понадобится качественный тест-план, поскольку альфа-тестирование может включать большое количество действий, в том числе сопроводительных, типа регистрации множества проблем, быстрого устранения ошибок, повторные проверки, многократные циклы проверок и так далее.
Хорошая практика: собрать как можно больше дополнительной информации и как можно раньше, особенно что касается юзабилити, «вида и ощущения» продукта (look and feel), навигации, и других важных вещей, без которых приложение нефункционально.
В некоторых компаниях принято по завершению «альфы» отправлять клиенту отчет о текущем состоянии продукта.
Cхема действий
Итак, руководство собрало команду для альфа-тестирования.
- На первом этапе ей нужно ознакомиться с архитектурными спецификациями и хорошо понять функциональные и нефункциональные требования.
- Далее пишется детализированная стратегия тестирования, покрывающая все сценарии.
- На основе стратегии и плана тестирования создаются тест-кейсы.
- Когда тест-кейсы выполнены и дефекты найдены, эти дефекты регистрируют и передают разработчикам для устранения.
- Проводится повторное тестирование; цикл повторяется до устранения всех проблем (в идеале).
Чем полезно альфа-тестирование
- Улучшение качества продукта на раннем этапе
- Повышение опытности команды, ее гибкости в разных проектах
- Сокращение времени выхода на рынок
- Общее улучшение качества сравнительно малыми усилиями
Итак, можно сказать, что альфа-тестирование это приемочная проверка работающего прототипа приложения; в процессе нужна хорошая тестовая стратегия, качественные тест-кейсы, и разумеется опыт.
Альфа, бета, гамма тестирование — сравнение
Но, кроме альфы и беты, существует еще гамма (и даже дельта-тестирование!). Чем они отличаются?
Гамма-тестирование: финальный этап. Последняя проверка критических функций, исправление оставшихся небольших дефектов и прием пользовательских идей для будущих версий.
Альфа | Бета | Гамма | |
---|---|---|---|
Зачем? | Валидировать продукт со всех точек зрения, подготовить к бете | Получить фидбек пользователей, подготовить к релизу | Гарантировать выполнение самых важных требований |
Когда? | В конце процесса разработки | После альфа-тестирования | После бета-тестирования |
Кто? | Команда разработчиков и тестировщиков | Группа конечных пользователей | Группа конечных пользователей |
Результат? | Баги, блокеры, пропущенные функции | Идеи по улучшению функциональности, юзабельности, совместимости | Идеи на следующие версии |
Что дальше? | Бета-тестирование | Гамма-тестирование | Финальный релиз (gold-релиз) |
Дельта-тестирование: специфическая форма тестирования в Agile-методологии. Тестирование части релиза — только его модифицированных частей (модулей). «Дельта» — когда времени на регрессионное не хватает, когда нужно быстрее релизить, и нет рисков сбоев из-за обновления в модуле.
Gold-релиз, он же Final — окончательная версия продукта, которая уходит клиентам.