Тестирование, вероятно, является одной из самых горячих тем в разработке программного обеспечения. Все согласны с необходимостью качественного тестирования и определенного количества тестов (или покрытия кода). Но каков масштаб, цель и задача ваших тестов? В какой среде вы должны их запускать и как управлять зависимостями?
Ниже представлены некоторые из вопросов, на которые мы попытались ответить, предоставив стратегию тестирования для наших мобильных приложений.
Проблематика: работа с контекстом и зависимостями
Определение точного объёма и среды для ваших тестов должно быть первым шагом в этом процессе. Представьте, что вы тестируете свое приложение электронной коммерции вручную. Вы хотите протестировать процесс заказа, включая услугу оплаты, предоставляемую сторонней компанией? Или вы хотите сосредоточиться только на коде, разработанном вашей командой, исключая сам платежный сервис?
Однозначно правильного ответа нет. Но эти два идентифицированных теста не должны происходить одновременно и определенно не будут стоить одинаковых затрат (с точки зрения реализации и удобства обслуживания).
На основе пирамиды тестирования, представленной Мартином Фаулером, мы определили собственную пирамиду, состоящую из 5 уровней:
Для каждого уровня мы определили:
Цели тестирования: какие компоненты на самом деле тестируются и какова цель тестирования?
Объемы тестирования: будут увеличиваться на каждом этапе пирамиды. Будут делать ваши тесты более зависимыми от локальных и внешних зависимостей.
Типы тестов: техника реализации тестов
У каждого уровня теста есть свои особенности
В этом разделе мы пройдемся по каждому уровню пирамиды, снизу вверх