Тестирование мобильных приложений: устройства - это еще не все |
29.02.2016 16:10 |
Автор: Тревор Аткинс (Trevor Atkins) Оригинал статьи: http://thinktesting.com/articles/mobile-application-testing-all-about-devices/ Перевод: Ольга Алифанова При разработке стратегии тестирования мобильных приложений важно учитывать, что, конечно, устройства - это еще не все, но вам придется учесть ВСЕ устройства! Суть в том, что протестировать абсолютно все комбинации устройств и операционных систем просто невозможно. И что теперь, не тестировать? Тоже не вариант. Вот немного визуализации: § http://opensignal.com/reports/2015/08/android-fragmentation/ § https://www.fiksu.com/resources/ios_trackers Созданная нами стратегия должна быть умной и вдумчивой, и базироваться на исследованиях, анализе и здравом смысле. Она должна в конечном итоге привести нас нас к "достаточно хорошему" качеству продукта, соответствующего целям бизнеса. Нам нужно подходить к ней с умом.
Не все тестируемое одинаково полезно Неважно, тестируем мы приложение для публичного или внутреннего использования - мы должны собрать информацию о наших пользователях и их потребностях. Оперативные данные и конкретные требования к системе, определяющие, какие устройства и ОС должны поддерживаться, очень помогают расставить приоритеты при планировании тестирования.Понимание наших пользователей, профилирование их самих и основных сценариев использования - тоже важные моменты для стратегии. На основании этой информации и требований мы можем определить критерии для расстановки приоритетов, выбирая платформы тестирования. Платформа = конкретное устройство + жизнеспособная операционная система, подходящая для этого устройства. Чтобы достичь целей тестирования, нужно провести разумное и достаточное количество тестов на разумном и достаточном количестве платформ. Объединяя требования к поддерживаемым платформам с профилями пользователей и шаблонами их поведения, мы можем создать матрицу наборов платформ и усилий по тестированию для каждой из них. Вот как могла бы выглядеть такая матрица на примере трех групп: Затем нужно определить типы и уровни тестирования для каждой группы: Примечание: мы можем еще больше снизить усилия по тестированию, практически не повышая риски. Проанализировав наши группы, мы можем выделить похожие подгруппы или платформы. Если они очень сильно схожи, можно выбрать одну из платформ и тестировать только на ней, как на представителе своей категории. Мысли по поводу "размножения" процессов Чтобы грамотно распределить усилия команды тестирования, нужно также понимать, что количество устройств и операционных систем может сильно осложнить определенные стадии процесса. К примеру, мы пытаемся локализовать баг, который вернули как "невоспроизводимый". Или приступаем к тесту фикса. Как нам поступать? 1. Проверить все платформы на наличие этого бага? 2. Проверять только ту, на которой баг был обнаружен? 3. Проверить другую, похожую, платформу? 4. Проверить одну похожую и одну непохожую? 5. Или какой-то другой вариант? Конечно, чем больше платформ мы будем проверять при каждом обнаруженном баге, тем больше сил это потребует. Но чем меньше устройств мы проверим - тем выше риск что-то упустить. Баланс инструментов и автотестов. Другой пример ситуации, когда большое количество потенциальных платформ требует тщательного анализа - это выбор инструментов и подход к автоматизации тестирования. В идеале автоматизация бережет наше время, "магически" гоняя тесты на разных платформах - возможно, даже делая это одновременно. Тем не менее, эмуляторы устройств и симуляторы ОС - это не реальные, физические устройства, у них есть свои недостатки, которые неминуемо повлияют на результаты тестирования. Чтобы достичь наилучших результатов и снизить риски, нужно сбалансировать тестирование на реальных и виртуальных устройствах, уравновесить ручные и автоматические тесты, и использовать набор из общедоступных, open source, платных и разработанных самостоятельно решений. Обучение тестированию мобильных приложений Объем информации о тестировании мобильных приложений - а это и полезные советы, и инструменты, и требования к дизайну, и прочие фишки, касающиеся современных и устаревших устройств - постоянно меняется и пополняется. Наши команды должны быть готовы тестировать на большом количестве платформ и прописывать результаты тестов внятно и четко, чтобы дать разработчикам достаточную информацию для исправления бага. Конечно, чем больше платформ мы поддерживаем, тем большими знаниями должен обладать каждый тестировщик. Наша стратегия тестирования должна включать в себя информацию о том, какие знания нам необходимы, какие нужно передавать и поддерживать в явном виде, и как этого добиться. Заключение Да, надо учитывать все устройства. Но это совершенно не означает, что надо пытаться проверить абсолютно все на максимальном количестве платформ, до которого мы сможем дотянуться. Огромное количество разнообразных устройств и операционных систем требует умного подхода к тестированию мобильных приложений, который минимизирует риски, одновременно максимально повышая качество. |